Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Findcomponent findet nichts (https://www.delphipraxis.net/68820-findcomponent-findet-nichts.html)

hkoestner 5. Mai 2006 23:05


Findcomponent findet nichts
 
Schönen Abend zusammen.

Ich steh mal wieder auf dem Schlauch:

Auf einer Form liegt ein Pagecontrol.
Auf dem Pagecontrol wird zur Laufzeit ein TabSheet erzeugt.
Auf dem TabSheet wird zur Laufzeit eine Scrollbox erzeugt.
Auf der Scrollbox wird zur Laufzeit ein Imagecontrol erzeugt.
Auf dem Imagecontrol werden zur Laufzeit diverse Textfelder, Checkboxen usw. erzeugt.

Wie kann ich denn nun später z.B. auf den Text eines Textfeldes zugreifen.
Ich denke, mit Findcontrol sollte das funktionieren, aber ich bekomm das einfach nicht hin.

Kann mir bitte jemand ein kleines Beispiel zimmern?

Schönen Abend
Horst

SirThornberry 5. Mai 2006 23:12

Re: Findcomponent findet nichts
 
die Funktion welche du benötigst heißt FindComponent.
FindComponent findet allerdings nur die Componenten wo du als Owner die richtige Komponente angegeben hast.

Beispiel:
Delphi-Quellcode:
TestComp := TTestComponent.Create(nil);
TestComp.Name = 'test';
TestComp = TTestComponent(Form1.FindComponent('test')); //TestComp = nil
Delphi-Quellcode:
TestComp := TTestComponent.Create(Form1);
TestComp.Name = 'test';
TestComp = TTestComponent(Form1.FindComponent('test')); //TestComp <> nil
besser ist jedoch einfach die erzeugten Controls in einer Objecteliste zu speichern.

hkoestner 6. Mai 2006 09:52

Re: Findcomponent findet nichts
 
Danke Jens,

soweit war ich schon, (FindComponent war ein Schreibfehler).

Wenn Du Dir mal die Struktur anschaust, was um Himmels willen ist denn der Owner von dem Textfeld.
Wenn ich das Formular dafür angebe findet er trotzdem nichts.

Kannst Du das noch etwas präzisieren?

Horst

Hawkeye219 6. Mai 2006 09:56

Re: Findcomponent findet nichts
 
Hallo Horst,

der Owner ist die Komponente, die du als Argument für den Create-Aufruf übergibst. Beim ersten Beispiel von Jens ist es "nil", bei zweiten Beispiel "Form1". Bei Komponenten, die man zur Designzeit auf dem Formular ablegt, ist es in der Regel das Formular selbst.

Gruß Hawkeye

hkoestner 6. Mai 2006 13:53

Re: Findcomponent findet nichts
 
Danke,

jetzt hab ich's. Die Struktur hat mich etwas verwirrt, da die Felder ja nicht auf der Form liegen sondern auf der Scrollbox. Damit muss zuerst das TabSheet referenziert werden (Owner ist Pagecontrol), dann die Scrollbox (Owner ist das TabSheet) und dann kommt man erst an die Felder.

Vielen Dank für die Hilfe und schönes WE
Horst


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 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