Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #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 просмотров)

Последний раз редактировалось Ankor, 24.12.2011 в 01:57.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter