Макет компонента компилируется, устанавливается и после пересборки Лазарь валится с ошибкой StackOverflow
- Код: Выделить всё
unit ColorGroup;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls;
type
{ TColorGroup }
TColorGroup = class(TPanel)
private
FColorBorder: TColor;
FFone: TColor;
{ Private declarations }
FLabel:TLabel;
FShape:TShape;
procedure SetColorBorder(AValue: TColor);
procedure SetFone(AValue: TColor);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property ColorBorder:TColor read FColorBorder write SetColorBorder;
property Fone:TColor read FFone write SetFone;
end;
procedure Register;
implementation
procedure Register;
begin
{$I colorgroup_icon.lrs}
RegisterComponents('Lex',[TColorGroup]);
end;
{ TColorGroup }
procedure TColorGroup.SetColorBorder(AValue: TColor);
begin
if FColorBorder=AValue then Exit;
FColorBorder:=AValue;
end;
procedure TColorGroup.SetFone(AValue: TColor);
begin
if FFone=AValue then Exit;
FFone:=AValue;
end;
constructor TColorGroup.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
TColorGroup.BorderWidth:=0;//скрываем рамку
TColorGroup.BorderStyle:=bsNone;
FLabel:=TLabel.Create(Self); //создание компонент
FShape:=TShape.Create(Self);
FLabel.Caption:=TColorGroup.Caption;
FLabel.Left:=20;// чтобы не начинался с самого угла
FLabel.Top:=0;
FLabel.AutoSize:=true;
Flabel.Color:=TColorGroup.ColorBorder;//чтобы он стал как бы частью рамки
FLabel.Visible:=True;
FShape.Left:=0;
FShape.Top:=FLabel.Height+3;// для расположения под меткой.
FShape.Height:=TColorGroup.Height-FLabel.Height-3;
FShape.Width:=TColorGroup.Width;
end;
destructor TColorGroup.Destroy;
begin
inherited Destroy;
end;
end.
Ах да, после замены лазаря старой версией текст модуля оказывается заменен на автоматически создаваемый шаблон.
Добавлено спустя 1 минуту 54 секунды:
pupsik писал(а):TShape а он может иметь дочерние компоненты???
Судя по докам, можно постараться
pupsik писал(а):кустом контрол в подмогу...
можно ссылкой?