Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Performance von FindComponent

  Alt 25. Jun 2004, 15:10
Warum verwendet jeder FindComponent????
Du hast doch schon einen Array of TComponent -> TCustomForm.Components[] !!!

Ein simples:
Delphi-Quellcode:
  XYZ := TABC.Create(Self);
  fXYZ_cID := XYZ.ComponentID;
Über die ID kannst du jetzt immer auf deine Komponente zugreifen.

FindComponent MUSS durch den Array iterieren, um die Komponente nach Namen zu finden. Hast du die ID sparst du dir das Ganze.(außerdem sieht der Code sonst irgendwie Newbie-like aus. )

Zitat von Barnti:
Allerdings könnte es sein, dass je nach Cast-Operator (TmysqlQuery(Dm_Datenbank.FindComponent)) das ganze noch optimiert wird. Vielleicht ist dann FindComponent etwas schneller...?!
Das bezweifele ich ernshaft.

p.s.: FindComponent ist auch nicht sooo langsam.
Schließlich ist es mit Sicherheit nur eine simple Iteration durch den Array Components á la:
Delphi-Quellcode:
for i := 0 to pred(ComponentCount) do
  if Components[i].Name = lSearchName then
  begin
    result := Components[i];
    break;
  end;
  Mit Zitat antworten Zitat