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 Eigene Komponente: property mit verschiedenen Typen (https://www.delphipraxis.net/98404-eigene-komponente-property-mit-verschiedenen-typen.html)

Weazy 26. Aug 2007 22:23


Eigene Komponente: property mit verschiedenen Typen
 
Ich habe soeben mit der Komponenten Entwicklung angefangen. Das funktioniert ja auch schon ganz gut, doch wie kann ich ein property hinzufügen, welches z.B strings, integers und ein paar booleans beinhaltet?

Delphi-Quellcode:
type
  TMeinKomponent = class(TComponent)
  private
    fFilename:string;
    fReady:boolean;
  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Filename:string read fFilename;
    property Ready:boolean read fReady;
end;

mkinzler 26. Aug 2007 22:25

Re: Eigene Komponente: property mit verschiedenen Typen
 
Verwende Subclassing.

Weazy 26. Aug 2007 22:39

Re: Eigene Komponente: property mit verschiedenen Typen
 
sähe das dann etwa so aus?

Delphi-Quellcode:
type
  TMeinProperty= class
  private
    fA:string;
    fB:boolean;
    fC:integer
  protected
  public
  published
    property A: string read fA write fA;
    property B: boolean read fB write fB;
    property C: integer read fC write fC;
end;

type
  TMeinKomponent = class(TComponent)
  private
    fFilename:string;
    fReady:boolean;
    fSpezial:TMeinProperty
  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Filename:string read fFilename;
    property Ready:boolean read fReady;
    property Spezial:TMeinProperty read fSpezial write fSpezial;
end;

cruiser 26. Aug 2007 23:07

Re: Eigene Komponente: property mit verschiedenen Typen
 
fast.. du musst von TPersistant ableiten

und natürlich: im Constructor initiieren und im Destructor freigeben

Weazy 26. Aug 2007 23:14

Re: Eigene Komponente: property mit verschiedenen Typen
 
was meinst du genau mit initieren und frei geben?

cruiser 26. Aug 2007 23:21

Re: Eigene Komponente: property mit verschiedenen Typen
 
Im Constructor von TMeinKomponent ein:

Delphi-Quellcode:
fSpezial := TMeinProperty.Create;
und im Destructor die Ressourcen freigeben:

Delphi-Quellcode:
FreeAndNil(fSpezial);

Weazy 26. Aug 2007 23:32

Re: Eigene Komponente: property mit verschiedenen Typen
 
und was muss ich bei meiner propertyclass bei create einfügen?

cruiser 27. Aug 2007 11:22

Re: Eigene Komponente: property mit verschiedenen Typen
 
Müssen musst du nix... die Defaultwerte wären gut, aber sonst ist dir da freie hand gelassen. Ist im Grunde ja nur ein Konstrukt um Properties zu verschachteln.

stahli 27. Aug 2007 11:40

Re: Eigene Komponente: property mit verschiedenen Typen
 
Im Constructor solltest Du noch angeben:

fSpezial := TMeinProperty.Create;
fSpezial.SetSubComponent(True); // !!!

damit die IDE Deine Einstellungen aus dem Objektinspektor auch dauerhaft speichert...

Stahli

Weazy 27. Aug 2007 14:11

Re: Eigene Komponente: property mit verschiedenen Typen
 
Danke!!! Jetzt funktioniert entlich alles!!! :-)


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