![]() |
Zur Laufzeit erzeugte Komponenten finden
Hallo,
ich erzeuge zur Laufzeit ein Richedit folgendermaßen:
Delphi-Quellcode:
um auf einzelne zur Laufzeit erzeugte Komponenten zugreifen zu können versuche ich mit folgendem Code diese zu finden:
procedure TForm1.Button1Click(Sender: TObject);
var RE:TRichEdit; begin RE := TRichEdit.Create(nil); RE.Parent := form1; RE.Name := 'test'; end;
Delphi-Quellcode:
Doch damit werden mir nur die bereits in der IDE erstellten Komponenten angezeigt, nicht die zur Laufzeit erzeugten.
procedure TForm1.Button2Click(Sender: TObject);
var i:integer; Component: TComponent; begin for i := 0 to form1.ComponentCount - 1 do begin Component := form1.Components[i]; If( form1.Components[i] is TRichEdit ) Then showmessage(Component.Name); end; end; Wo ist mein Denkfehler. Danke im voraus. Ingo |
Re: Zur Laufzeit erzeugte Komponenten finden
Moin!
abgesehen von deinem Code dürfte dir ![]() |
Re: Zur Laufzeit erzeugte Komponenten finden
@IB-Software: Warum erstellst du ein Control und wirfst dann dessen Pointer fort, nur um ihn nachher wieder suchen zu müssen? Das ist doch ziemlich unlogisch. Speicher die Referenz, bei mehreren in einer Liste.
Wenn du trotzdem solche Abscheulichkeiten wie FindComponent benutzen willst, solltest du als Owner der Komponenten deine Form angeben. |
Re: Zur Laufzeit erzeugte Komponenten finden
Zitat:
Delphi-Quellcode:
Dann klappt es auch FindComponent :P
procedure TForm1.Button1Click(Sender: TObject);
var RE:TRichEdit; begin RE := TRichEdit.Create(Form1); RE.Parent := form1; RE.Name := 'test'; end; |
Re: Zur Laufzeit erzeugte Komponenten finden
Danke an alle.
Jetzt klappts auch bei mir. Ingo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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