![]() |
Find(Compo oder Prozedur?
Hallo,
vielleicht etwas doofe Frage, aber ich bin immer wieder am überlegen, was ist in der Verarbeitung schneller - Beispiel: Ich hab z.B. 20 Buttons, deren Höhe ich verändern muss. Ich könnete nur zum einen mit ner Procedure machen: Proc Höhe bla bla bla begin But01.Height := 50; But02.Height := 50; usw. end; oder das Ganze mit for x = 1 to usw. dann mit FindComponent... Was ist in der Geschwindigkeit besser? Danke für jeden Tip... Beanbear6 |
AW: Find(Compo oder Prozedur?
Jedes Teil einzeln zu suchen ist mit Sicherheit langsamer. Aber warum speicherst du dir die nicht einmal in einer Liste ab und gehst dann die Liste durch?
|
AW: Find(Compo oder Prozedur?
FindComponent kostet zumindest etwas Zeit, daher ist die andere Variante schneller. Du könntest Dir aber auch einmalig ein Array oder eine Liste (TComponentList z.B.) definieren, das/die zusammengehörigen Controls auf nimmt. Anschließend kannst Du dann in einer Schleife über dieses Array/ diese Liste iterieren.
[edit] 2 L8 :( [/edit] |
AW: Find(Compo oder Prozedur?
Hallo Ihr beiden...
Wie ich das mit ner Liste machen soll - ouou ich weiß nicht wie... Mit Array hab ich schon mal versucht, aber ebenso gescheitert... Bin noch nicht so fit in Delphi... Vielleicht gibts ein kleines Beispiel?? Nur so als Ansatz? Lernen und testen möcht ich dann schon selber :-) Danke erstmal für die erste Info. Gruß Reiner |
AW: Find(Compo oder Prozedur?
Zitat:
Eine einfache Liste zum Dinge dranhängen, wieder rausnehmen und etwas mit allen Dingen darin anstellen ist die
Delphi-Quellcode:
:
TList
|
AW: Find(Compo oder Prozedur?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } FMyButtonList:TList; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i:Integer; begin for I := 0 to FMyButtonList.Count -1 do with TButton(FMyButtonList[i]) do begin Height := 50; Width := 100; end; end; procedure TForm1.FormCreate(Sender: TObject); var i:Integer; begin FMyButtonList:=TList.Create; for I := 0 to ControlCount - 1 do if Controls[i] is TButton then if TButton(Controls[i]).Tag=123 then //oder eine andere Art der Identifizierung FMyButtonList.add(Controls[i]); end; procedure TForm1.FormDestroy(Sender: TObject); begin FMyButtonList.Free; end; end. |
AW: Find(Compo oder Prozedur?
Delphi-Quellcode:
type
TDeinForm = class(TForm) ... private FButtonArray: array[0..9] of TButton; ... end; ... procedure TDeinForm.FormCreate(Sender: TObject); begin FButtonArray[0] := btnIrgendwas; FButtonArray[1] := btnIrgendwasAnderes; ... FButtonArray[9] := btnLetzterButton; end; ... procedure TDeinForm.MachWas; var i: integer; begin for i := Low(FButtonArray) to High(FButtonArray) do FButtonArray[i].Left := 20; end; |
AW: Find(Compo oder Prozedur?
Wow und uuups...
ey vieeelen Dank für Eure Mühe... Bin gleich mal dran das zu lernen und üben und testen... Issja genial :-) Vielen Dank! Gruß Reiner |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz