Das GetHandle() kannst du dir sparen, da diese Funktion nichts macht als den Member zurück zu geben. Einfach bei der Property nach dem Read direkt FHImageButton angeben.
Zitat von
EWeiss:
Die wird als uses in uSkin eingebunden
uses uImageButton;
Die Controls sollen nur aus dieser Klasse heraus verwaltet werden.
Was ich damit meine ist ich will sie nicht nochmal zusätztlich in der MainUnit mit einbinden
wie muss ich die Klasse dann in uSkin einbinden damit ich nur über die Engine auf das Control zugreifen kann.
Zur zeit läuft es so
Delphi-Quellcode:
BugButton: TSkinImageButton;
PlayButton: TSkinImageButton;
LeftButton: TSkinImageButton;
RightButton: TSkinImageButton;
HelpButton : TSkinImageButton;
geht aber nur wenn ich, wie schon gesagt die uImageButton in uMainApp mit einbinde.
Dann binde in uSkin die uImagebutton ein und halte dort die Instanzen in der uSkin. Dann braucht uMainApp nur noch uSkin und kann über diese auf die Button Instanzen zugreifen.
Aber wenn du in uMainApp auf Eigenschaften der uImageButton zugreifen willst oder anderes mit denen machen willst (z.B. auch einen TypeCast), dann brauchst du auch die uSkinButton in der uMainApp. Die Uses Anweisungen werden nicht über die Units "vererbt". D.h. wenn uMainApp die uSkin einbindet und diese wiederrum uImageButon, dann kenn uMainApp nicht automatisch uImageButton - ganz im Gegenteil, diese muss dort nochmals explizit eingebunden werden.