DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: runx1680
今日帖子: 27
在线用户: 21
导航: 论坛 -> 信息交换 斑竹:huadugaojian,sunyesy,huangjacky  
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 13:29:44
标题:
Firemonkey 效率为啥这么低 浏览:1814
加入我的收藏
楼主: 如题,插入一个动态控件半天时间。
----------------------------------------------
将Delphi进行到底!
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/7/31 13:39:42
1楼: 因为EMB 知道你不喜欢他,所以,他也不喜欢你。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 13:55:21
2楼: 啊啥意思啊,到底能不能优化呢
----------------------------------------------
将Delphi进行到底!
作者:
男 bjzhq ( oce) ★☆☆☆☆ -
盒子活跃会员
2018/7/31 13:59:26
3楼: 1楼意思是LZ没有掌握好 firemonkey
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/7/31 14:01:39
4楼: 不,我的意思是,到了楼主手里,就一定会出问题,因为 EMB 是看人下菜碟的。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 14:05:48
5楼: 请各位赐教。
----------------------------------------------
将Delphi进行到底!
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 14:07:39
6楼: 我用一个scorllbox,里边可能需要插入很多的label,label设置align为top,新的插入到最顶端,这样,我拖动窗体,就卡的要死了。
----------------------------------------------
将Delphi进行到底!
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 14:09:23
7楼: 比如我滚动scrollbox的滚动条,也卡的很。
----------------------------------------------
将Delphi进行到底!
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/7/31 14:12:15
8楼: 标题和内容不符。
无视。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2018/7/31 15:48:53
9楼: 贴代码啊,类似的问题我在国外论坛上看到过,其实是因为使用不当引起的。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 15:51:03
10楼: 好滴
----------------------------------------------
将Delphi进行到底!
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 15:51:27
11楼:  for I := 0 to ScrollBox1.Content.ChildrenCount-1 do
  begin
    if CompareStr(ScrollBox1.Content.Children[I].TagString,pMsg^.sSenderID) = 0 then
    begin
      //ScrollBox1.Content.RemoveObject(I);
      ScrollBox1.Content.Children[I].Free;
      //oLabel := TTMSFMXHTMLText(ScrollBox1.Content.Children[I]);
      break;
    end;
  end;

  //增加一个Session Item;
  oLabel := TTMSFMXHTMLText.Create(nil);
  oLabel.Parent := ScrollBox1;
  oLabel.AutoOpenURL := True;
  oLabel.DisplayHTML := True;
  oLabel.URLUnderline := True;
  oLabel.AutoSize := True;
  oLabel.Align := TAlignLayout.Top;

  with pMsg^ do
  begin
    nSbWidth := 250;
    nBlankWidth := nSbWidth - Round(oLabel.Canvas.TextWidth(cDateStr))- 20;
    nSnWidth := Round(oLabel.Canvas.TextWidth(sSenderName));
    sBlankStr := GetBlankStr(oLabel, nBlankWidth-nSnWidth);

    oLabel.Text := Format('<b><font color="#F37122">%s</font></b><font color="#00000">%s%s</font><br><br><font color="#00000">%s</font><br><hr color="#FFFFFF"><br>',
          [sSenderName, sBlankStr, sDate, sContent]);
    oLabel.TagString := sSenderID;
  end;
----------------------------------------------
将Delphi进行到底!
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 15:53:13
12楼: 大概意思就是,如果以前存在的那么删除了,重新建立这个label,但是呢,在建立过程中,设置label的parent会卡,设置aligin会开,设置text会开,看了下,是因为delphi那个doalign耗时啊。
----------------------------------------------
将Delphi进行到底!
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/7/31 16:11:17
13楼: beginXXX;
endXXX;
也可能是 XXX开头。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2018/7/31 16:32:29
14楼: 我一哥们说怀疑做FMX的都是做Java转过来的,我觉得也象。写代码一点也不注意效率。执行起来慢悠悠的。
要是我手下写这样的代码,我肯定骂他们一顿。赶快给我做速度优化,别给出去丢脸。
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2018/7/31 16:43:03
14楼: 你拖一下,就全部删了重新建一次?
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/7/31 17:03:31
15楼: 根据楼主的发言记录,楼上的提问,很关键。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 17:05:42
16楼: 我动态显示数据,每一条数据一个label,如果以前存在有的话,那么删除以前的label,然后新建label。
----------------------------------------------
将Delphi进行到底!
作者:
男 zwjchinazwj (蒲石) ▲▲▲▲▲ -
普通会员
2018/7/31 17:42:02
17楼: 早都没脸了,还有什么可丢的。
----------------------------------------------
-
作者:
男 runzi_111 (xuelanghua) ▲▲▲▲▲ -
普通会员
2018/7/31 18:36:47
18楼: 够狠啊,兄弟们。
----------------------------------------------
将Delphi进行到底!
作者:
男 blueflag (昆了) ★☆☆☆☆ -
盒子活跃会员
2018/7/31 21:13:27
19楼: 动态显示数据,有很多种方法,楼主的这种方法确实不适用了些..
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2018/7/31 21:27:28
20楼: 看样子是你在拖动/滚动时不停的删除创建Label,导致速度上不去。你可以加个全局或窗体一级的变量,比如FCreateCount: Integer,在TTMSFMXHTMLText.Create(nil)处执行Inc(FCreateCount),然后你可以将这个值显示出来,比如显示到标题栏,通过这样的手段,你就可以发现这个值在不停的快速增大,也就容易发现速度慢的原因了。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 偶的生活博客  偶的技术军事博客
作者:
男 yugong23 (yugong23) ▲▲△△△ -
注册会员
2018/7/31 22:01:02
21楼: 该用 BeginUpdate 和 EndUpdate的地方一定要用。 尤其大的循环, 类似成批更新,
类似disableControls EnableControls这样。
----------------------------------------------
-
作者:
男 yugong23 (yugong23) ▲▲△△△ -
注册会员
2018/7/31 22:07:21
22楼: 这几年都在用FMX, 对VCL的东西只维护, 新的全用FMX,不尽快,做出的东西漂亮。不知大家是否有同感
----------------------------------------------
-
作者:
男 feiyanm (feiyanm) ▲▲▲△△ -
注册会员
2018/8/1 9:47:35
23楼: 我来顶17楼的...
不说实话吧,如鲠在喉,血气逆流...
说实话吧,一堆XX围着你骂:你水平不行,你不会用,你不懂得感恩...
最后,只能呵呵呵呵...
更多时候,都是我TMD敲了一大段一大段的文字,然后想了想,算了,还是点右上角那个X比较爽...
心痛,滴血,打碎牙自己咽的感觉不是每个人都会有的.
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
作者:
男 glwang (glwang) ★☆☆☆☆ -
盒子活跃会员
2018/8/1 10:37:59
24楼: 楼要歪的节奏
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/8/1 10:53:47
25楼: 我就知道,你们问楼主的内容,楼主一律无视。
所以,我 1 楼就没打算问楼主。
楼主不配合,不歪楼,还能干吗?
----------------------------------------------
(C)(P)Flying Wang
作者:
男 testerhook (CaptainHook) ▲▲▲▲▲ -
普通会员
2018/8/2 10:45:00
26楼: 同样的问题有很多解决办法,为什么死抓住一点呢?
使用双缓存的方式来实现用户看起来的实时更新不就行了嘛。
----------------------------------------------
-
作者:
男 hs_kill (lzl_17948876) ▲▲▲▲▲ -
普通会员
2018/8/2 11:14:27
27楼: 为什么要不断的删除/创建控件, 直接复用改值不好么?
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/8/2 12:48:30
28楼: 楼主无法或者不想回答各位的问题,已经弃楼而逃。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 bdl1 (bdl1) ▲▲▲△△ -
注册会员
2018/8/2 19:19:06
29楼: 27楼说的对
----------------------------------------------
-我的新浪博客
作者:
男 bdl1 (bdl1) ▲▲▲△△ -
注册会员
2018/8/2 19:20:20
30楼: 武大侠也来了
----------------------------------------------
-我的新浪博客
作者:
男 majx (skin) ▲▲▲▲▲ -
普通会员
2018/8/3 3:51:01
31楼: 鄙视楼主这样的人,你自己水平差却说Firemonkey 效率低。遇到问题要多看看Help,Help你看完了吗?即使你看完了,你也可能还是不会用;以后担问题你应该说,你怎么这么笨,很简单的事情都做不来,给FireMonkey丢脸。
----------------------------------------------
majx
作者:
男 ghostking (ghostking) ★☆☆☆☆ -
盒子活跃会员
2018/8/3 7:49:30
32楼: 这种处理方式确实不对。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲△ -
普通会员
2018/8/3 11:50:08
33楼: 31 楼 和 23 楼 应该是一伙的。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 feiyanm (feiyanm) ▲▲▲△△ -
注册会员
2018/8/3 12:33:11
34楼: 躺Qiang中。。。。
我现在竟然莫名其妙的有同伙了,你说是该庆祝呢还是庆祝呢?看来对D不满的人竟然不止我一个,荣幸之至!!!我一直以为全世界只有我一个异类对D不满意且一堆抱怨的!同伙们,大家一定要顶住啊!!!
常理说,事出反常必有妖,D都混到这种地步了,竟然还有一堆不愿正视事实的吹鼓手,你要说一切都好,难道是在挑战智商下限吗?
就事论事,爱它就得接受它的缺点,但这不能成为宠溺的借口!
算了,干我鸟事。。。
==========
这些也都是实话,也像前面说的一样,打了很长很长一段,仅仅因为一个Qiang字给吃掉了,所以,我其实是很喜欢右上角的那个叉叉的。。。
再加一句声明吧:就事论事,如有得罪的地方,请各位大神海涵。。。
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
作者:
男 abencat (远离delphi的人) ★☆☆☆☆ -
盒子活跃会员
2018/8/3 22:18:01
35楼: 直接动态列表中画布中画吧  一万个速度也是飞起来
----------------------------------------------
-
作者:
男 chscheese (chscheese) ★☆☆☆☆ -
盒子活跃会员
2018/8/22 3:13:03
36楼: 楼主的做法然我想起了早年间模仿做的扫雷——创建了n*n个speedbutton......
很——卡
----------------------------------------------
-
作者:
男 locet (locet) ▲▲△△△ -
注册会员
2018/8/26 6:22:41
37楼: 我发现大家说了几个层次的技术,楼主的是最简单但欠缺考虑直接问人了,各个大侠呢说的又太高级

下面是我没测试过,只是考虑说,你的效率大部分不是在创建上面的问题,是Align的问题,过程自己可以想象一下,然后呢这个操作你完全可以把一个label定位到顶上,移动位置就好,而不需要又创建又对齐的,更笨的方式就是scorllbox外面套一个panel,label就top,scorllbox就client

画的方式太高级,可能并不合适一部分人,核心还是能重复利用的重复利用...
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行31.25毫秒 RSS