![]() |
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
Willst du nur wissen ob sie eine Eigenschaft Namens "PopupMenu" haben, oder willst du die Eigenschaft auslesen/setzen?
|
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
Zitat:
Und was sagt getProValue? |
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
ich versuche zu setzen und zu lesen, wenn ich z.b Tbutton ans object gebe dann klappt es, aber ich will es pauschal für alle haben die PopUpMenu können
Delphi-Quellcode:
fComponent:= AOwner;
fPopUpMenuCreated := not Assigned(fComponent.PopUpMenu); if fPopUpMenuCreated then begin fPopUpMenu := TPopUpMenu.Create(self); fPopUpMenu.Name := CompName('PopUpMenu'); fComponent.PopUpMenu := fPopUpMenu; end else begin fPopUpMenu := fComponent.PopUpMenu; end; |
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
Zitat:
|
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
Hallo Zusammen,
was haltet ihr denn von folgendem Ansatz: 1. neue Klasse erstellen
Delphi-Quellcode:
2. Function zum überprüfen erstellen
type
TMyControl = class (TControl) public property PopupMenu; end;
Delphi-Quellcode:
Probier mal aus.
function hasPopup(Sender :TObject) :boolean;
begin if Sender is TControl then result := assigned((Sender as TMyControl).PopupMenu); end; Gruß Frank |
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
danke der ansatz sieht fein aus,
leider bekomme ich beim
Delphi-Quellcode:
eine zugriffsverletzung
result := assigned((Sender as TMyControl).PopupMenu);
sonst hätte ich das so gemacht:
Delphi-Quellcode:
fComponent:= AOwner;
fPopUpMenuCreated := not hasPopUp(fComponent); if fPopUpMenuCreated then begin fPopUpMenu := TPopUpMenu.Create(self); fPopUpMenu.Name := CompName('PopUpMenu'); (fComponent as TMyControl).PopupMenu := fPopUpMenu; end else begin fPopUpMenu := (fComponent as TMyControl).PopupMenu; end; |
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
Vielleicht so:
Delphi-Quellcode:
const Propname='Popupmenu';
... if ispublishedprop(fcomponent,Propname)and (proptype(fcomponent,Propname)=tkClass) then begin fpopupmenu:=TPopupmenu(getordprop(fcomponent,PropName)); if not assigned(fpopupmenu) then begin fpopupmenu:=TPopupmenu.create(self); fPopUpMenu.Name := CompName('PopUpMenu'); setordprop(fcomponent,Propname,integer(fPopupmenu)); end; ... |
Re: Besitzt eine Komponente eine bestimmte Eigenschaft???
super sirius
jetzt klappt es wunderbar!!! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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