![]() |
Neue Kompo mit eigenem Typ
Ich hab ne Komponente geschrieben, die 2 Eigene Typen besitzt. Diese Typen besitzen Variablen die ich unter Private und Eigenschaften die ich als Property unter published deklariert habe.Nachdem ich die Komponenten installiert habe hab ich unter der neuen Eigenschaft auch das "+" gesehen, nur als ich drauf geklickt habe, wurden keine Unterpunkte angezeigt (Wie bei "Font"). Im Quelltext kann ich aber auf die Untereigenschafte zugreifen. Woran liegt das?
|
Re: Neue Kompo mit eigenem Typ
Liefer bitte mal etwas Source. Sonst wird dir kaum einer helfen können.
|
Re: Neue Kompo mit eigenem Typ
Sorry. Hier:
Delphi-Quellcode:
Soll ein Monopoly-Klon werden *g*
unit uMP_Strasse;
interface uses SysUtils, Classes, Controls, ExtCtrls; type TMieten = class(TPersistent) private FMiete:Integer; FMiete1Haus: Integer; FMiete2Haus: Integer; FMiete3Haus: Integer; FMiete4Haus: Integer; FMieteHotel: Integer; published property Miete: Integer read FMiete write FMiete; property Miete1Haus: Integer read FMiete1Haus write FMiete1Haus; property Miete2Haus: Integer read FMiete2Haus write FMiete2Haus; property Miete3Haus: Integer read FMiete3Haus write FMiete3Haus; property Miete4Haus: Integer read FMiete4Haus write FMiete4Haus; property MieteHotel: Integer read FMieteHotel write FMieteHotel; end; TStrassenWerte = class(TPersistent) private FStrassenName:String; FGrundstueckswert: Integer; FHauskosten: Integer; FHotelkosten: Integer; FMieten:TMieten; published property StrassenName: String read FStrassenName write FStrassenName; property Grundstueckswert: Integer read FGrundstueckswert write FGrundstueckswert; property Hauskosten: Integer read FHauskosten write FHauskosten; property Hotelkosten: Integer read FHotelkosten write FHotelkosten; property Mieten:TMieten read FMieten write FMieten; end; TMP_Strasse = class(TImage) private FStrassenWerte:TStrassenWerte; published property StrassenWerte: TStrassenWerte read FStrassenWerte write FStrassenWerte; end; procedure Register; implementation procedure Register; begin RegisterComponents('Monopoloy', [TMP_Strasse]); end; end. |
Re: Neue Kompo mit eigenem Typ
Habe mal in einer Kompo von mir nachgeguckt. Versuche das mal abzukupfern :
Delphi-Quellcode:
Allerdings frage ich mich, wo du das + her haben willst. :gruebel: Das kommt normalerweise nur durch SetSubComponent (true);TlblEdit = class(TEdit) private FAlignment: TAlignment; ... procedure SetAlignment(Value: TAlignment); published ... property Alignment: TAlignment read FAlignment write SetAlignment; procedure TlblEdit.SetAlignment (Value: TAlignment); begin FAlignment := Value; RecreateWnd; end; |
Re: Neue Kompo mit eigenem Typ
Genauso hab ich es doch. Und irgendwas mit SubComponents hab ich nirgends. Das ist der komplette Source
|
Re: Neue Kompo mit eigenem Typ
Zitat:
|
Re: Neue Kompo mit eigenem Typ
Ok. Aber dein TAlignment hat keine Untereigenschaften
|
Re: Neue Kompo mit eigenem Typ
Hallo bo,
wenn Du innerhalb einer Komponente oder einem Nachfahren von TPersistent ein Objekt nutzen möchtest, musst Du dieses auf mit Create erzeugen und mit Free wieder freigeben. D.h. Du muss in Deinen Objekten TStrassenWerte und TMP_Strasse jeweils den constructor und destructor überschreiben. In Deinem Source kann ich das nicht finden. |
Re: Neue Kompo mit eigenem Typ
Doch : links/rechtsbündig und zentriert.
|
Re: Neue Kompo mit eigenem Typ
Mein neuer Code:
Delphi-Quellcode:
TMP_Strasse = class(TImage) private
FStrassenWerte:TStrassenWerte; public constructor Create(AOwner:TComponent);override; destructor Destroy;override; published property StrassenWerte: TStrassenWerte read FStrassenWerte write FStrassenWerte; end;
Delphi-Quellcode:
Da krieg ich beim öffnen des Projekts wo die Kompo schon drin ist:
constructor TMP_Strasse.Create(AOwner:TComponent);
begin FStrassenWerte := TStrassenWerte.Create; end; destructor TMP_Strasse.Destroy; begin FStrassenWerte.free; end; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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 by Thomas Breitkreuz