Здравствуйте уважаемые программисты.
Спасибо за ваш форум, очень толковый, и хорошо объясняют!
Вот решил обратиться к вам, так как автор модуля помочь не может.
Есть модуль LabelShadowUnit, который делает обводку(контур) текста Label.
Но если поставить св-ва у Label: Alignment - taCenter, то обводка остаётся слева, если WordWrap, то тоже не переносится как надо.
Как унаследовать эти св-ва(Alignment и WordWrap), посмотрите пожалуйста, выкладываю код модуля и проект:
Код:
unit LabelShadowUnit;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
type
TLabel2 = class(TLabel);
TLabel = class(TLabel2)
procedure AddShadow(x: integer = 3; y: integer = 1; colorr : integer = 0);
procedure AddShadowText(widthh : byte = 1; colorr : integer = 0);
procedure ClearShadow;
end;
implementation
{ TLabel }
procedure TLabel.AddShadow(x: integer = 3; y: integer = 1; colorr : integer = 0);
begin
with TLabel.Create(self) do begin
parent:=self.Parent;
font:=self.Font;
Top:=self.Top+y;
Left:=self.Left+x;
Font.Color:=colorr;
caption:=self.Caption;
transparent:=true;
end;
self.Transparent:=true;
self.BringToFront;
end;
procedure TLabel.AddShadowText(widthh: byte; colorr: integer);
begin
ClearShadow;
// прямоугольник
self.AddShadow(widthh,0, colorr);
self.AddShadow(-1*widthh,0, colorr);
self.AddShadow(0,widthh, colorr);
self.AddShadow(0,-1*widthh, colorr);
// по бокам
self.AddShadow(widthh,widthh, colorr);
self.AddShadow(-1*widthh,-1*widthh, colorr);
self.AddShadow(-1*widthh,widthh, colorr);
self.AddShadow(widthh,-1*widthh, colorr);
end;
procedure TLabel.ClearShadow;
begin
self.DestroyComponents;
end;
end.
Если свойство Alignment у Label1 поставить taLeftJustify(слева), то всё работает.