![]() |
verschiedene Komponenten einer Form ansprechen klappt nicht
Hallo,
Bei meinem Programm gibts ein Problem mit der FindComponent Funktion. Ich habe eine MainForm ( Form1 ) in welche ich mit { $INCLUDE AndereDatei.inc } ausgelagerten Code einfüge. So nun habe ich eine Datei, in welcher in einige Komponenten, um genau zu sein 7 TImages, ansprechen will. Dies hab ich mit einer for-schleife und einem variablen String gemacht, wobei ich eine Variable xComponent ( : TComponent ) benutze, um nen EAccessVio. abzufangen...
Delphi-Quellcode:
So das Problem ist nun, dass ich ja, wenn ich in dieser ausgelagerten Datei auf Komponenten des MainForms zugreifen will, immer zuerst z.B. Form1.Label1 verwenden muss.
for i := 1 to 7 do
begin name1 := ('Image'+IntToStr(i)); xComponent := Application.FindComponent(name1); if not Assigned(xComponent) then Exit; if ((xComponent as TImage).Hint = 'Nix') then begin (xComponent as TImage).Picture.LoadFromFile('Bild.bmp'); (xComponent as TImage).Hint := 'Voll'; end; end; Und hier liegt mein Problem. Ich hab schonmal probiert, TForm1.Classname vor die FindComponent Funktion zu setzen, sprich ...
Delphi-Quellcode:
... aber das hat auch nich geklappt, genauso wenig wie 'with Form1 do' davor zu setzen :(
xComponent := Application.FindComponent(TForm1.ClassName + '.' + name1)
kann mir da ma jemand helfen... dankeschön :) Gruß fabiO |
Re: verschiedene Komponenten einer Form ansprechen klappt ni
TForm1.ClassName geht logicher Weise nicht da TForm1 eine Klasse ist, und eine Klasse hat logicher weise auch keine childinstanzen, es kann nur eine instanz childinstanzen haben. Denn die Klasse representiert nur eine Struktur aber nicht den angeforderten Speicher.
Funktioniert eigentlich Application.FindComponent? Ich hätte getippt das es fehl schlägt weil du vermutlich bei keinem Create einer Komponente die ApplicationInstanz als Owner übergibst. Wenn du per Designer dinge auf ein Form gepackt hast kannst du innerhalb der Klasse mit "[Self].FindComponent" auf diese drauf gepackten Komponenten zugreifen, und außerhalb der Klasse mit "FormInstanz.FindComponent" auf die drauf gepackten Komponenten zugreifen. |
Re: verschiedene Komponenten einer Form ansprechen klappt ni
hast recht, wenn ich nochma drüber nachdenk...
bin grade zufällig auch auf ne andere möglichkeit gestoßen...
Delphi-Quellcode:
Naja danke dafür, hat sich ja schnell erledigt :)
(xComponent := (Form1.FindComponent(name1));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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