导航:
论坛 -> 信息交换
斑竹:huadugaojian,sunyesy,huangjacky
作者:
2018/7/31 13:29:44
标题:
Firemonkey 效率为啥这么低
浏览:3591
加入我的收藏
楼主:
如题,插入一个动态控件半天时间。
----------------------------------------------
将Delphi进行到底!
作者:
2018/7/31 13:39:42
1楼:
因为EMB 知道你不喜欢他,所以,他也不喜欢你。
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/7/31 13:55:21
2楼:
啊啥意思啊,到底能不能优化呢
----------------------------------------------
将Delphi进行到底!
作者:
bjzhq ( oce)
★☆☆☆☆
-
盒子活跃会员
2018/7/31 13:59:26
3楼:
1楼意思是LZ没有掌握好 firemonkey
----------------------------------------------
-
作者:
2018/7/31 14:01:39
4楼:
不,我的意思是,到了楼主手里,就一定会出问题,因为 EMB 是看人下菜碟的。
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/7/31 14:05:48
5楼:
请各位赐教。
----------------------------------------------
将Delphi进行到底!
作者:
2018/7/31 14:07:39
6楼:
我用一个scorllbox,里边可能需要插入很多的label,label设置align为top,新的插入到最顶端,这样,我拖动窗体,就卡的要死了。
----------------------------------------------
将Delphi进行到底!
作者:
2018/7/31 14:09:23
7楼:
比如我滚动scrollbox的滚动条,也卡的很。
----------------------------------------------
将Delphi进行到底!
作者:
2018/7/31 14:12:15
8楼:
标题和内容不符。 无视。
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/7/31 15:48:53
9楼:
贴代码啊,类似的问题我在国外论坛上看到过,其实是因为使用不当引起的。
----------------------------------------------
只有偏执狂才能生存!
作者:
2018/7/31 15:51:03
10楼:
好滴
----------------------------------------------
将Delphi进行到底!
作者:
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进行到底!
作者:
2018/7/31 15:53:13
12楼:
大概意思就是,如果以前存在的那么删除了,重新建立这个label,但是呢,在建立过程中,设置label的parent会卡,设置aligin会开,设置text会开,看了下,是因为delphi那个doalign耗时啊。
----------------------------------------------
将Delphi进行到底!
作者:
2018/7/31 16:11:17
13楼:
beginXXX; endXXX; 也可能是 XXX开头。
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/7/31 16:32:29
14楼:
我一哥们说怀疑做FMX的都是做Java转过来的,我觉得也象。写代码一点也不注意效率。执行起来慢悠悠的。 要是我手下写这样的代码,我肯定骂他们一顿。赶快给我做速度优化,别给出去丢脸。
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
2018/7/31 16:43:03
14楼:
你拖一下,就全部删了重新建一次?
----------------------------------------------
-
作者:
2018/7/31 17:03:31
15楼:
根据楼主的发言记录,楼上的提问,很关键。
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/7/31 17:05:42
16楼:
我动态显示数据,每一条数据一个label,如果以前存在有的话,那么删除以前的label,然后新建label。
----------------------------------------------
将Delphi进行到底!
作者:
2018/7/31 17:42:02
17楼:
早都没脸了,还有什么可丢的。
----------------------------------------------
-
作者:
2018/7/31 18:36:47
18楼:
够狠啊,兄弟们。
----------------------------------------------
将Delphi进行到底!
作者:
2018/7/31 21:13:27
19楼:
动态显示数据,有很多种方法,楼主的这种方法确实不适用了些..
----------------------------------------------
-
作者:
2018/7/31 21:27:28
20楼:
看样子是你在拖动/滚动时不停的删除创建Label,导致速度上不去。你可以加个全局或窗体一级的变量,比如FCreateCount: Integer,在TTMSFMXHTMLText.Create(nil)处执行Inc(FCreateCount),然后你可以将这个值显示出来,比如显示到标题栏,通过这样的手段,你就可以发现这个值在不停的快速增大,也就容易发现速度慢的原因了。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
2018/7/31 22:01:02
21楼:
该用 BeginUpdate 和 EndUpdate的地方一定要用。 尤其大的循环, 类似成批更新, 类似disableControls EnableControls这样。
----------------------------------------------
-
作者:
2018/7/31 22:07:21
22楼:
这几年都在用FMX, 对VCL的东西只维护, 新的全用FMX,不尽快,做出的东西漂亮。不知大家是否有同感
----------------------------------------------
-
作者:
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楼:
楼要歪的节奏
----------------------------------------------
作者:
2018/8/1 10:53:47
25楼:
我就知道,你们问楼主的内容,楼主一律无视。 所以,我 1 楼就没打算问楼主。 楼主不配合,不歪楼,还能干吗?
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/8/2 10:45:00
26楼:
同样的问题有很多解决办法,为什么死抓住一点呢? 使用双缓存的方式来实现用户看起来的实时更新不就行了嘛。
----------------------------------------------
-
作者:
hs_kill (lzl_17948876)
★☆☆☆☆
-
普通会员
2018/8/2 11:14:27
27楼:
为什么要不断的删除/创建控件, 直接复用改值不好么?
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
作者:
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,QQ 613354940
作者:
2018/8/3 7:49:30
32楼:
这种处理方式确实不对。
----------------------------------------------
-
作者:
2018/8/3 11:50:08
33楼:
31 楼 和 23 楼 应该是一伙的。
----------------------------------------------
(C)(P)Flying Wang
作者:
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楼:
直接动态列表中画布中画吧 一万个速度也是飞起来
----------------------------------------------
delphi爱好者
作者:
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 画的方式太高级,可能并不合适一部分人,核心还是能重复利用的重复利用...
----------------------------------------------
-