AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Besitzt eine Komponente eine bestimmte Eigenschaft???

Besitzt eine Komponente eine bestimmte Eigenschaft???

Ein Thema von dot · begonnen am 7. Nov 2007 · letzter Beitrag vom 8. Nov 2007
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#11

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 7. Nov 2007, 15:33
Willst du nur wissen ob sie eine Eigenschaft Namens "PopupMenu" haben, oder willst du die Eigenschaft auslesen/setzen?
Chris
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 7. Nov 2007, 15:37
Zitat von Deep-Sea:
Willst du nur wissen ob sie eine Eigenschaft Namens "PopupMenu" haben, oder willst du die Eigenschaft auslesen/setzen?
Er will ja eben schauen, ob ein PopUpmenu existiert.
Und was sagt getProValue?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
dot

Registriert seit: 10. Okt 2007
39 Beiträge
 
#13

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 7. Nov 2007, 15:37
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;
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#14

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 7. Nov 2007, 15:39
Zitat von dot:
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
Naja, und zum Prüfen ob es die Eigenschaft gibt, nimmst du IsPublishedProp, zum setzen SetPropValue und zum lesen GetPropValue.
Chris
  Mit Zitat antworten Zitat
Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#15

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 7. Nov 2007, 16:05
Hallo Zusammen,

was haltet ihr denn von folgendem Ansatz:

1. neue Klasse erstellen

Delphi-Quellcode:
type
  TMyControl = class (TControl)
    public
      property PopupMenu;
  end;
2. Function zum überprüfen erstellen

Delphi-Quellcode:
function hasPopup(Sender :TObject) :boolean;
begin
  if Sender is TControl then
    result := assigned((Sender as TMyControl).PopupMenu);
end;
Probier mal aus.

Gruß


Frank
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat
dot

Registriert seit: 10. Okt 2007
39 Beiträge
 
#16

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 7. Nov 2007, 16:22
danke der ansatz sieht fein aus,

leider bekomme ich beim

    result := assigned((Sender as TMyControl).PopupMenu); eine zugriffsverletzung

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;
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 7. Nov 2007, 17:51
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;
...
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
dot

Registriert seit: 10. Okt 2007
39 Beiträge
 
#18

Re: Besitzt eine Komponente eine bestimmte Eigenschaft???

  Alt 8. Nov 2007, 09:10
super sirius

jetzt klappt es wunderbar!!!

  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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