Показать сообщение отдельно
  #1  
Старый 24.12.2011, 01:55
Ankor Ankor вне форума
Новичок
 
Регистрация: 19.08.2011
Сообщения: 68
Версия Delphi: XE2, XE3
Репутация: 10
По умолчанию Помогите исправить модуль обводки текста (Label)

Здравствуйте уважаемые программисты.
Спасибо за ваш форум, очень толковый, и хорошо объясняют!
Вот решил обратиться к вам, так как автор модуля помочь не может.

Есть модуль 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(слева), то всё работает.
Вложения
Тип файла: rar Обводка Label.rar (93.0 Кбайт, 14 просмотров)
Ответить с цитированием