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 neue Komponente mit drei Controls (https://www.delphipraxis.net/36071-neue-komponente-mit-drei-controls.html)

mason 15. Dez 2004 14:19


neue Komponente mit drei Controls
 
Hi,

ich möchte mir eine Komponente basteln, auf der drei Controls (DBEdit, Panel, Button) sind. Dafür leite ich ein Objekt von TCustomPanel ab und lege die Controls als Properties nach aussen.

Delphi-Quellcode:
type
  TMyControl = class(TCustomPanel)
  public
    FConnectEdit: TDBEdit;
    FConnectPanel: TPanel;
    FConnectButton: TButton;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property ConnectEdit: TDBEdit read FConnectEdit write FConnectEdit;
    property ConnectPanel: TPanel read FConnectPanel write FConnectPanel;
    property ConnectButton: TButton read FConnectButton write FConnectButton;
  end;
Im Create des Objekts werden die Controls erstellt. Klappt auch soweit alles wie es soll - mein Problem ist Folgendes:
Wenn ich die neue Komponente auf ein Formular lege, und dann per Objektinspektor an den Eigenschaften der Controls rumstelle, bekomme ich die Veränderungen zur Designzeit zwar zu sehen, aber zur Laufzeit kennt das Programm diese Einstellungen nicht mehr.
Kann mir jemand sagen, wo mein Fehler ist?

Danke,
Mason

maximov 15. Dez 2004 16:33

Re: neue Komponente mit drei Controls
 
Zitat:

Zitat von mason
Hi,...Wenn ich die neue Komponente auf ein Formular lege, und dann per Objektinspektor an den Eigenschaften der Controls rumstelle, bekomme ich die Veränderungen zur Designzeit zwar zu sehen, aber zur Laufzeit kennt das Programm diese Einstellungen nicht mehr.
Kann mir jemand sagen, wo mein Fehler ist?

Danke,
Mason

Wenn du die komponenten-properties read-und writebar, dann denkt das streaming system, dass es sich nur um einen link auf eine andere, lose gekoppelte, komponente handelt. Wenn du es readOnly machtst sollte es gehen, denn dann sind die subkomponenten aggregiert und nicht mehr lose.


PS: Willkommen in der DP :dp:

mason 16. Dez 2004 07:33

Re: neue Komponente mit drei Controls
 
Zitat:

Zitat von maximov
Wenn du die komponenten-properties read-und writebar, dann denkt das streaming system, dass es sich nur um einen link auf eine andere, lose gekoppelte, komponente handelt. Wenn du es readOnly machtst sollte es gehen, denn dann sind die subkomponenten aggregiert und nicht mehr lose.

Danke für die schnelle Antwort, funktioniert aber leider nicht. :( Einstellungen in den Controls werden zur Laufzeit immernoch ignoriert, es kommt nichts in der DFM-Datei an.

Zitat:

Zitat von maximov
PS: Willkommen in der DP :dp:

Danke schön - :dp: da scheint was dran zu sein :-D

mason 16. Dez 2004 08:09

Re: neue Komponente mit drei Controls
 
Wen es interessiert: ich hab's! :dancer2:
Direkt nach dem Erstellen eines Controls muss die Prozedur SetSubComponent aufgerufen werden, und schon wird alles gut.
Delphi-Quellcode:
constructor Create(AOwner: TComponent);
begin
  inherited;
  FConnectEdit := TDBEdit.Create(Self);
  FConnectEdit.SetSubComponent(true);
end;


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