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/)
-   -   TTabsheet FindComponent funktioniert nicht (https://www.delphipraxis.net/163816-ttabsheet-findcomponent-funktioniert-nicht.html)

ATS3788 17. Okt 2011 18:36

TTabsheet FindComponent funktioniert nicht
 
Delphi-Quellcode:
 _TabSheet := TTabSheet.create(_PageControl);
  _TabSheet.Parent := _PageControl.Parent;
  _TabSheet.PageControl := _PageControl;
 _TabSheet.Show;

   _TabSheet.Name := NewExpName;
  _TabSheet.Caption := _TabSheet.Name;

_TabSheet := (FindComponent(_TabSheet.Name) as TTabSheet);

 if _TabSheet <> nil then
 beep;

end;   end;
Bei folgendem Testcode bekomme ich bei FindComponent
nur ein nil. Wo ist mein Fehler, bei amderen Komponenten
habe ich keine Probleme

DeddyH 17. Okt 2011 18:41

AW: TTabsheet FindComponent funktioniert nicht
 
Zitat:

Delphi-Quellcode:
_TabSheet.Parent := _PageControl.Parent;

Dann musst Du auch FindComponent des Parents aufrufen.

Sir Rufo 17. Okt 2011 18:44

AW: TTabsheet FindComponent funktioniert nicht
 
Delphi-Quellcode:
 _TabSheet := TTabSheet.create(_PageControl.Owner);
Try this ;)

Sir Rufo 17. Okt 2011 18:46

AW: TTabsheet FindComponent funktioniert nicht
 
Zitat:

Zitat von DeddyH (Beitrag 1130910)
Zitat:

Delphi-Quellcode:
_TabSheet.Parent := _PageControl.Parent;

Dann musst Du auch FindComponent des Parents aufrufen.

Delphi-Quellcode:
FindComponent
basiert doch auf dem Owner Verhältnis.
Delphi-Quellcode:
FindControl
basiert auf dem Parent Verhältnis
und beide Suchen sind nicht rekursiv
War mir jedenfalls so

DeddyH 17. Okt 2011 18:48

AW: TTabsheet FindComponent funktioniert nicht
 
Sicher bin ich da gerade auch nicht, da hilft nur Probieren.

[edit] Stimmt, Owner, nicht Parent. [/edit]

Sir Rufo 17. Okt 2011 18:50

AW: TTabsheet FindComponent funktioniert nicht
 
Zitat:

Zitat von DeddyH (Beitrag 1130915)
Sicher bin ich da gerade auch nicht, da hilft nur Probieren.

Das ist so :)

Der Owner muss mindestens TComponent sein aber der Parent muss mindestens TControl sein

DeddyH 17. Okt 2011 18:53

AW: TTabsheet FindComponent funktioniert nicht
 
Hab' s doch schon editiert. Ändert aber nichts an der Tatsache, dass er wohl FindComponent des falschen Controls aufruft :zwinker:

[edit] Muss der Parent nicht sogar TWinControl sein? [/edit]

ATS3788 19. Okt 2011 16:13

AW: TTabsheet FindComponent funktioniert nicht
 
Sir Rufo und DeddyH danke

_TabSheet := TTabSheet.create(_PageControl.Owner);

Hat funktioniert

Bummi 19. Okt 2011 16:21

AW: TTabsheet FindComponent funktioniert nicht
 
Deines funktioniert auch, Du musst nur an der richtigen Stelle wieder suchen
Delphi-Quellcode:
_TabSheet := (_PageControl.FindComponent(_TabSheet.Name) as TTabSheet);
wenn Du als Owner _PageControl verwendest
Delphi-Quellcode:
 _TabSheet := TTabSheet.create(_PageControl);


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