Вниз
Скачать: CL | DM;

Вопрос про надпись на 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
4-1077107477
AlexM
2004-02-18 15:31
2004.04.25
Выделение текста - запретить!


3-1080713288
AVP_opck
2004-03-31 10:08
2004.04.25
как вставить с помощью компонентов IBX дату в поле типа TIME


14-1081176951
Digitman
2004-04-05 18:55
2004.04.25
Роль полит.лидеров в становлении/крахе отеч.комп.индустрии


1-1081264515
Norfolk
2004-04-06 19:15
2004.04.25
Запись TStrings в файл


7-1077698501
LK
2004-02-25 11:41
2004.04.25
Измерение в микросекундах




   Наверх