Вопрос Тень текста

XLASER

Новичок
Доброе время суток! Подскажите пожалуйста как сделать тень на текст? Заранее благодарю.
 

sergey3695

Ветеран
Модератор
Держи
Код:
//////////////////////// TLabelExNew ////////////////////////

type
  TNewLblExt = record LblExt:array[0..1]of TLabel; end;
var
  i: integer;

function TNewLblExtCreate(AParent:TWinControl;FontName:String;FontStyle:TFontStyles;aLeft,aTop,aWidth,aHeight:integer;aAlignment:TPopupAlignment;AAutoSize,aWordWrap:Boolean):TNewLblExt;
begin
for i:= 0 to 1 do begin
  Result.LblExt[i]:= TLabel.Create(AParent);
with Result.LblExt[i] do begin
  Parent := AParent;
  Alignment := aAlignment;
  Transparent := True;
  WordWrap := aWordWrap;
  AutoSize := AAutoSize;
if not aAutoSize then begin
  Height:= aHeight;
end;
#ifdef Shadow
  Left:= aLeft-ScaleX(i*1);
  Top:= ATop-Scaley(i*1);
#else
  Left:= aLeft;
  Top:= ATop;
#endif
  Width:= aWidth;
  ParentFont := False;
with Font do begin
  Style:= FontStyle;
if FontName <> '' then Name:= FontName;
end;
end;
end;
end;

procedure TNewLblSize(var Line: TNewLblExt; Size: integer);
begin
  for i:=0 to 1 do Line.LblExt[i].Font.Size:= Size;
end;

procedure TNewLblVisible(var Line: TNewLblExt; Auto:Boolean);
begin
  for i:=0 to 1 do Line.LblExt[i].Visible:= Auto;
end;

procedure TNewLblExtOnClick(var Line: TNewLblExt; Event: TNotifyEvent);
begin
  for i:=0 to 1 do Line.LblExt[i].OnClick:= Event;
end;

procedure TNewLblExtCaption(var Line: TNewLblExt; Text: String);
begin
  for i:=0 to 1 do Line.LblExt[i].Caption:= Text;
end;

procedure TNewLblExtColor(var Line: TNewLblExt; BackColor, TextColor: TColor);
begin
  Line.LblExt[0].Font.Color:= BackColor;
  Line.LblExt[1].Font.Color:= TextColor;
end;

//////////////////////// TLabelExNew ////////////////////////
Код:
; Шрифт лейблов
#define Font  "Tahoma"
; Цвет лейблов
#define Color  "$FFFFFF"
//...
// Процедура для создания текста с тенью
#include "TLabelExNew.iss"
//...
var
    SelectSteam: TNewLblExt;
const
  Font = '{#Font}';
  Color = {#Color};
//...
  SelectSteam:=TNewLblExtCreate(WizardForm,Font,[],ScaleX(73),ScaleY(177),ScaleX(75),ScaleY(58),taLeftJustify,False,False);
  TNewLblExtColor(SelectSteam, clblack, Color);
  TNewLblSize(SelectSteam, 8);
  TNewLblExtCaption(SelectSteam,'Steam версия')
  TNewLblExtOnClick(SelectSteam, @Select1);
//...
// SelectDirPage
  TNewLblVisible(SelectSteam,False);
// пример катать влом. и так должно быть понятно.
 

XLASER

Новичок
sergey3695, Мне надо тень на текст применить к Приветствие, Финишь и т.п.
Пробовал дублировать скрипт.
Код:
Welcome1:= TLabel.Create(WizardForm);
with welcome1 do
Begin
AutoSize:= False;
   WordWrap:= True;
   SetBounds(ScaleX(100), ScaleY(30), ScaleX(600), ScaleY(190));
   Transparent:=True;
   Alignment := taCenter;
   Font.Name:= 'Georgia';
   Font.Size:= 16;
   Font.Color:=$000000;
   Font.Style:=[fsBold];
   OnMouseDown:=@LabelOnMouseDown;
   Parent:=WizardForm;
   Caption:=CustomMessage('Welcome1');
end;
//============================Íà÷àëî Òåíè========================
Welcome2:= TLabel.Create(WizardForm);
with welcome2 do
Begin
AutoSize:= False;
   WordWrap:= True;
   SetBounds(ScaleX(98), ScaleY(28), ScaleX(600), ScaleY(190));
   Transparent:=True;
   Alignment := taCenter;
   Font.Name:= 'Georgia';
   Font.Size:= 16;
   Font.Color:=$FFFFFF;
   Font.Style:=[fsBold];
   OnMouseDown:=@LabelOnMouseDown;
   Parent:=WizardForm;
   Caption:=CustomMessage('Welcome1');
end;
Но при таком скрипте как бы тень появляется на всех страницах инсталлятора. Можно здесь что то изменить что бы отображалось на одной странице которая мне нужна?
 

sergey3695

Ветеран
Модератор
XLASER, а в чем проблема-то
Код:
procedure CurPageChanged(CurPageID: Integer);
begin
Welcome1.Hide;
Welcome2.Hide;
if CurPageID = wpWelcome then
begin
Welcome1.Show;
Welcome2.Show;
end;
end;
Самое главное вопрос стоял как сделать,а не как отобразить на определенной странице.
 
Последнее редактирование:

XLASER

Новичок
sergey3695, Это у меня написано, но всё равно отображается на всех страницах. Всю голову сломал уже. И не знаю что с этим делать! Что ещё можно сделать?
 
Последнее редактирование:

sergey3695

Ветеран
Модератор
XLASER, ну может скрипт с файлами выложить или в лс кинуть. я гадать не собираюсь.
 
Сверху