Witam,
Prawdopodobnie mam prosty problem ale nie potrafię sobie z nim poradzić.
Stworzyłem nowy komponent na bazie TPanelu. Umieściłem w nich Labela.
Kiedy wrzucę nowy komponent na formę, widzę ObjectInspektorze rozwijany Label w ramach nowego komponentu, nadaje właściwość caption do tej labelki. I tu zaczyna się kłopot. Efekt zmiany caption jest widoczny w trakcie projektowania formularza. Po uruchomieniu go nie widac juz tego napisu na labelce..
Oczywice w trakcie programu moge zmienic ten caption, ale czemu nie zbiera tej właściwości, którą wpiszę w OI (tak jak na zwykłej Labelce).
Czy jeśli w nowym komponencie wrzuce istniejący komponent, to nie będzie on (ten subkomponent) pamiętał swoich wartości jakie podam mu w OI ?
z góry dzięki za pomoc, walcze z tym jakiś dobry tydzien i nic.
Poniżej wzór mojego komponentu
unit LPanel;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids,stdctrls, ComCtrls, ExtCtrls;
type
TOpcje = class(TPersistent)
private
FColor1: String;
FColor2: String;
published
property Color1: String read FColor1 write FColor1;
property Color2: String read FColor2 write FColor2;
end;
TLPanel = class(TPanel)
private
FOpcje: TOpcje;
FNapis: TLabel;
protected
public
Constructor Create(AOWner:TComponent);override;
Destructor Destroy;override;
published
property Opcje : TOpcje read FOpcje write FOpcje;
property Napis : TLabel read FNapis write FNapis;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Lech2', [TLPanel]);
end;
Constructor TLPanel.Create(AOWner:TComponent);
begin
inherited Create(Aowner);
FNapis := TLabel.Create(Self);
FNapis.Parent := Self;
FOpcje := TOpcje.Create;
end;
Destructor TLPanel.Destroy;
begin
FOpcje.Free;
FNapis.Free;
inherited destroy;
end;
end.