Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pro/contra FindComponent (https://www.delphipraxis.net/33166-pro-contra-findcomponent.html)

glkgereon 2. Nov 2004 14:41


Pro/contra FindComponent
 
ich hab jetzt schonma ein paar negative kommentare zum befehl findcomponent gesehen/gehört/gelesen

was ist an dem befehl schlecht/nicht optimal?

was kann man sonst benutzen?

mirage228 2. Nov 2004 14:44

Re: Pro/contra FindComponent
 
Hi,

falls man FindComponent in längeren Schleifen verwendet ist da z.B. ineffektiv, da die Komponente immer wieder neu gesucht wird. Da wäre es einfacher vor der Schleife einmalig FindComponent auszuführen und das Ergebnis einer Variable zuzuweisen. Falls man mehrere Komponenten hat, kann man auch einmalig ein Array anlegen.
Dynamische Komponenten kann man in diesem Fall auch als Feld in den private/public Bereich der Form unterbringen, sodass man immer drauf zugreifen kann. Oder fall es mehrere sind, in einem Array.

mfG
mirage228

Dax 2. Nov 2004 14:46

Re: Pro/contra FindComponent
 
An FindComponent ist nichts direkt schlecht, nur es ist eben Teil der VCL, und nicht alle Programmierer wollen die VCL nutzen. Dann gibt es da noch das Problem mit der Geschwindigkeit.. wenn du viele Komponenten auf deinem Formular hast, kann FindComponent schon mal ziemlich Zeit brauchen.

Robert_G 2. Nov 2004 15:13

Re: Pro/contra FindComponent
 
Zitat:

Zitat von glkgereon
was ist an dem befehl schlecht/nicht optimal?

Es vergleicht den Name der Komponenten -> Stringvergleiche gehören mit zu den langsamsten Operationen (jedenfalls unter Win32 ;) ) überhaupt. ;)
Zitat:

Zitat von glkgereon
was kann man sonst benutzen?

Du kannst die 2 Arrays Controls bzw. Components eines ContainerControls verwenden.
Delphi-Quellcode:
for i := 0 to pred(ControlCount) do
  if Controls[i] is SomeControlClass then
    DoSomething();


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz