私のアプリケーションでは、TLabel
オブジェクトランタイムを使用しています。
問題があります。20個のラベルを表すには時間がかかります(約1〜2秒)。
親コンポーネントのDoubleBufferedは役に立ちません。Application.ProcessMessages
壊れた窓を見るのではなく、作成のプロセスを監視することだけが可能です。
// creating a labels in loop
aLabel:=TLabel.Create(scrlbx);
labels.Add(aLabel); // TList for managing.
with aLabel do begin
Left:=pointLeft;
Top:=pointTop;
Caption:='title';
parent:=scrlbx; //TScrollBox
end;
pointTop:=pointTop+20;
後に親の割り当てをループから別のループに移すと、何らかの効果がありますが、問題は解決しません。
for I := 0 to labels.Count-1 do begin
TLabel(labels[i]).Parent:= scrlbx;
end;
beforeを無効にして有効TScrollBox.Visible
にすると、aftelループは効果がありません。
PS:オブジェクトの作成には時間がかかりません。ボトルネックは親の割り当てです。
upd:大量とは約500アイテムを意味します。