Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi MDI: Auf Komponente des Childs zugreifen (https://www.delphipraxis.net/37471-mdi-auf-komponente-des-childs-zugreifen.html)

Yan 6. Jan 2005 10:59


MDI: Auf Komponente des Childs zugreifen
 
Hi @all!

Mal wieder eine MDI-Frage. Ich hab' leider in der Suche nicht gefunden. Also:

Wie kann ich von der Haupt-Form auf eine Komponente zugreifen, die auf dem MDI-Child liegt?

Mit ActiveMDIChild komme ich ja an das aktive Fenster. Zumindest der OH nach zu schließen. Aber wie komme ich jetzt an die Komponente?

Vielen Dank schonmal,

Muetze1 6. Jan 2005 14:16

Re: MDI: Auf Komponente des Childs zugreifen
 
Moin!

Da ActiveMDIChild vom Typ TForm ist, musst du erstmal einen typecast auf die Klasse deines MDI Childs machen, diese kennt dann auch deine Komponenten.

MfG
Muetze1

Yan 6. Jan 2005 14:31

Re: MDI: Auf Komponente des Childs zugreifen
 
Aah ja...

Und was heißt das, ich meine das Typecasting?
Könntest du mir das kurz erklären?

Vielen Dank,

franktron 6. Jan 2005 14:35

Re: MDI: Auf Komponente des Childs zugreifen
 
Ganz einfach

Delphi-Quellcode:
  (ActiveMDIChild.FindComponent('Button1') AS TButton).Click;
müssen noch abfragen ob gefunden und so rein.

Yan 6. Jan 2005 14:37

Re: MDI: Auf Komponente des Childs zugreifen
 
Danke! Das hilft mir schon eher weiter. :thumb:

[EDIT]Mein 100ster Beitrag!! :-D[/EDIT]

bigg 6. Jan 2005 14:47

Re: MDI: Auf Komponente des Childs zugreifen
 
Warum rufst du in deinem Beispiel FindComponent auf?

Code:
var Button: TButton;
begin

if Self.MDiChildCount > 0 then
Button := (Self.ActiveMDIChild as TForm2).Button1;

end;
Bei bedarf kann man hier auch noch auf nil prüfen.

Die Muhkuh 6. Jan 2005 15:16

Re: MDI: Auf Komponente des Childs zugreifen
 
Oder:

Delphi-Quellcode:
TMDIFormName(ActiveMDIChild).Button1Click;
@bigg

ich weis. Es ist ja nur der reine Code.

Man kanns auch so machen:

Delphi-Quellcode:
if ActiveMDIChild is TMDIFormName then
  TMDIFormName(AcitveMDIChild).Button1Click;

bigg 6. Jan 2005 15:19

Re: MDI: Auf Komponente des Childs zugreifen
 
Und was ist wenn gar kein Child geöffnet ist?
dann bekommst du nämlich so rote Fehlermeldungen.

PS: Button ist in meinem Beispiel nur ein Zeiger auf TButton :zwinker:


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