Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизВопрос про надпись на Shape Найти похожие ветки
← →
hgd (2004-04-11 14:26) [0]Ребят мне надо на Shape сделать надпись например как на label. По-умолчанию этого нельзя сделать, а можно как бы внутри создать такой компонент объединяющий Shape и Label. И обращяться к нему как-то. Как это сделать.
← →
default © (2004-04-11 15:41) [1]написать наследника TShape со свойством типа TLabel
← →
hgd (2004-04-11 15:52) [2]А можно пример!
Ну мне нужно просто на Shape нужно написать надпись
← →
default © (2004-04-11 16:46) [3]вот основа
TLabelShape = class(TShape)
private
FShapeLabel: TLabel;
protected
procedure SetParent(AParent: TWinControl); override;
procedure Paint; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property ShapeLabel: TLabel read FShapeLabel write FShapeLabel;
end;
constructor TLabelShape.Create(AOwner: TComponent);
begin
inherited;
FShapeLabel := TLabel.Create(AOwner);
// по усмотрению
FShapeLabel.Color := Brush.Color
end;
destructor TLabelShape.Destroy;
begin
inherited;
FShapeLabel.Free
end;
procedure TLabelShape.SetParent(AParent: TWinControl);
begin
inherited;
FShapeLabel.Parent := AParent
end;
procedure TLabelShape.Paint;
begin
inherited;
// по усмотрению
FShapeLabel.Left := Left;
FShapeLabel.Top := Top
end;
дальше сам сообразишь
← →
hgd (2004-04-11 17:38) [4]А что еще нужно написать
← →
default © (2004-04-11 17:55) [5]ну допустим при имзенение фона Shape-а нужно, наверно, как-то менять цвет надписи?!позиционировать метку тоже надо как-то(посередине к примеру)!?учитывать при позиционировании текущую форму Shape-а(прямоуг-ик, круг и тд)?!и ещё что-то при необходимости
если нужно поддерживать цвет фона Shape-а и фона метки одинаковым, то если мы попытаемся поменяем цвет фона метки, то надо это не делать либо менять цвет фона Shape-а на такой же, так что придётся "вторгаться" в код изменения цвета фона метки чтобы менять цвет фона Shape-а и подобное
← →
hgd (2004-04-11 19:54) [6]А как с приведенным тестом работать
← →
default © (2004-04-11 20:59) [7]Self = Form1
var
SL: TLabelShape;
begin
SL := TLabelShape.Create(Self);
SL.Parent := Self;
SL.ShapeLabel.Caption := "sdfssffsfs";
SL.Left := 100;
SL.Top := 200
...
это просто пример, тут есть ещё что нужно сделать(в зависимости от задачи)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c