Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Komponente mit Drop-Down Property (https://www.delphipraxis.net/144002-komponente-mit-drop-down-property.html)

J Kadison 27. Nov 2009 18:19


Komponente mit Drop-Down Property
 
Hallo!

Ich möchte eine Komponente erstellen, bei der ich z. B. folgendes im ObjectInspector habe:
Code:
[OI]
  + heigth: integer;
  + width: integer;
  - Verbindung
    + IP: String[15];
    + Connected: Boolean;
  + Enabled: Boolean;
[/OI]
Also ich möchte die zwei Propertys IP und Connected in einen ausklappbaren Unterpunkt auslagern.
Wie ist sowas denn möglich?

Andreas L. 27. Nov 2009 18:31

Re: Komponente mit Drop-Down Property
 
Wenn alle ausklappbaren Eigenschaften Boolean sein sollen kannst du ein "set of" verwenden. Ansonsten musst du entweder einen Record oder ein Objekt definieren.

Delphi-Quellcode:
TConnection = record
  IP: String[15];
  Connected: Boolean;
end;

// oder

TConnection = class(TPersistent) //oder TObject, TComponent, etc.
private
  FIP: String[15];
  FConnected: Boolean;
published
  property IP: String[15] read FIP write FIP;
  property Connected: Boolean read FConnected write FConnected;
end;

//Die Integration in deine Kompo geht dann ganz einfach als Eigenschaft
TMeineKompo = class(...)
private
  FConnection: TConnection;
published
  property Connection: TConnection read FConnection write FConnection;
end;
//falls du dich für eine Klasse bzw. Objekt entscheidest musst du dieses natürlich im constrcutor und destructor der Kompo entsprechend initialisieren/zerstören

J Kadison 27. Nov 2009 18:54

Re: Komponente mit Drop-Down Property
 
Hey!

Das mit dem Record bekomme ich zwar nicht zum laufen, aber das erstellen eines Objektes funktioniert so wie ich es will!

Danke!


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