Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: 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 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
4-1077791877
mr.Tim
2004-02-26 13:37
2004.04.25
TService и Application.ExeName ?


7-1077399444
BBCHa
2004-02-22 00:37
2004.04.25
Завершение чужой проги


4-1077483069
Nick Denry
2004-02-22 23:51
2004.04.25
Menu а-ля Office XP. Ownerdraw.


14-1080981524
karat
2004-04-03 12:38
2004.04.25
Ваше отношение к MS Access?


1-1081414798
BorisMor
2004-04-08 12:59
2004.04.25
Обработыка событий в классах