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/)
-   -   Delphi Verständisfrage zu Komponentenvererbung von Typen (https://www.delphipraxis.net/135753-verstaendisfrage-zu-komponentenvererbung-von-typen.html)

BAMatze 17. Jun 2009 08:53


Verständisfrage zu Komponentenvererbung von Typen
 
Hallo und Guten Morgen an alle DP´ler,

Mal eine kleine Verständnisfrage zu meinen Komponenten. Weiß auch nicht ob die Überschrift so passend gewählt ist, bin gern bereit dies natürlich anzupassen, wenn dies gewünscht wird.
Mein Problem ist nun, dass ich eine Komponente habe, bei der ich einen Zahlentyp vorgeben kann (auch als Property freigegeben):

Delphi-Quellcode:
type TZahltyp = (ZtGanzzahl, ZtposGanzzahl, ZtGleitkommazahl, ZtposGleitkommazahl);

Type TLabZahlEdit = Class(TWinControl)
  private
    ...
    procedure SetZahlTyp(cWert: TZahlTyp);
    function GetZahltyp: TZahltyp;
    ...
  protected
    ...
  published
    ....
    property Zahltyp: TZahltyp read GetZahltyp write SetZahltyp;
    ...
  public
    constructor create(AOwner: TComponent); override;
    destructor destroy;
end;
Dies funzt auch wunderbar, wenn ich die Komponente im Package installiert habe, kann ich zwischen den Zahltypen im Objektinspektor auswählen. Wenn ich allerdings diese Komponente in einer anderen Komponente dynamisch erzeuge und dort der erzeugten Komponenten einen Zahlentyp übergeben will, ala:

Delphi-Quellcode:
    DynamischErzeugteKomponente.Zahltyp := ZtposGanzzahl;
Wird mir gesagt, dass ZtposGanzzahl ein unbekannter Bezeichner ist. Auch wenn ich in der neuen Komponente die Typendeklaration wie in der vorherigen Komponente vornehmen kommt ein Fehler (ala AlteKomponente.Zahltyp ungleich NeueKomponente.Zahltyp). Ich denke ich habe nur irgendwo diese Deklaration vergessen anzugeben und deswegen diesen Ärger. Kann mir jemand sagen, wo ich die Typ-Deklaration korrekter Weise angeben muss, damit ich die Fehlermeldung vermeiden kann?

Vielen Dank
BAMatze

jaenicke 17. Jun 2009 08:57

Re: Verständisfrage zu Komponentenvererbung von Typen
 
Du musst die Unit, in der ZtposGanzzahl deklariert ist, in der Unit eingebunden haben, wo du das benutzt. Wenn du jetzt eine Komponente in Unit A hast und eine andere Komponente in Unit B diese verwendet, dann hast du vermutlich dort wo du die Komponente aus Unit B benutzt auch nur Unit B eingebunden. Die Deklaration steht aber in Unit A, also musst du die auch einbinden.

// EDIT:
Wenn du die Komponente aufs Formular legst, werden AFAIK die für die im Objektinspektor sichtbaren (published) Propertys nötigen Units automatisch eingebunden. Ganz genau weiß ich da gerade nicht was da alles passiert.

BAMatze 17. Jun 2009 09:03

Re: Verständisfrage zu Komponentenvererbung von Typen
 
Jup das war es schon. Danke dir


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