Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
7. Jun 2019
Ach ja, das Dictionary müsste natürlich ebenso gepflegt werden und bei Änderungen in der Komponentenliste sowie Umbenennung einzelner Komponenten aktualisiert werden. Ich glaube kaum, daß der Aufwand durch den geringen Geschwindigkeitsvorteil gerechtfertigt ist.
Ein solches Dictionary wäre eventuell dann von Vorteil, wenn es Komponenten mit unterschiedlichen Ownern enthält.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
7. Jun 2019
Falsch! Die Liste wird nur beim ersten Aufruf von FindComponent neu aufgebaut und danach lediglich gepflegt (Insert, Remove, ChangeName).
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
6. Jun 2019
Das tut FindComponent auch gar nicht (mehr). Beim ersten Aufruf wird eine nach Namen sortierte Liste aller Komponenten erzeugt, auf die dann über eine binäre Suche zugegriffen wird. Das mag zwar noch marginal langsamer sein, als ein Zugriff in einem TDictionary, aber das schlägt vermutlich gar nicht ins Gewicht. Man spart sich eben den zusätzlichen Verwaltungsaufwand.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
4. Jun 2019
Das wäre dann diese:
var
btn: TButton;
I: Integer;
begin
for I := 1 to <anzahl button> do begin
btn := FindComponent('btn' + I.ToString) as TButton;
btn.caption := 'asdf';
btn.hint := 'einHint';
btn.enabled := false: