Вопрос Расположение StatusLabel

Veskella

Мимокрокодил
Всем привет!) Возник вот такой вопрос: возможно ли расположить по центру StatusLabel (и заодно бегущий под ним список файлов)? Я пробовал использовать код, указанный ниже, но тогда StatusLabel просто исчезает. Если же заменить Caption на свой текст, тогда всё работает, но мне хотелось бы сохранить оригинальные меняющиеся строчки ("Создание папок...", "Распаковка файлов..." и т.д.) вместо использования своей одной статичной надписи (типа "Установка" и всё).
Вот код, который использовал:
Код:
var
Label1: TLabel;

procedure InitializeWizard;
begin
Label1 := TLabel.Create(WizardForm);
  with Label1 do
  begin
    Parent := WizardForm.InstallingPage;
    Caption := WizardForm.StatusLabel.Caption;
    Left := WizardForm.StatusLabel.Left;
    Top := WizardForm.StatusLabel.Top;
    Width := WizardForm.StatusLabel.Width;
    Height := WizardForm.StatusLabel.Height;
    AutoSize:= False;
    WordWrap:= True;
    Alignment:= taCenter;
  end;

WizardForm.StatusLabel.Hide;

end;
 

Avengerz13

Участник
Код:
[Files]
Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy;

[Code]
var
StatusLabel, FilenameLabel: TLabel;

type
TTimerProc=procedure(h:longword; msg:longword; idevent:longword; dwTime:longword);

function WrapTimerProc(callback:TTimerProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: longword; nIDEvent, uElapse: longword; lpTimerFunc: longword): longword; external 'SetTimer@user32.dll stdcall';

procedure OnTimer(h:longword; msg:longword; idevent:longword; dwTime:longword);
begin
FileNameLabel.Caption:=WizardForm.FileNameLabel.Caption
StatusLabel.Caption:=WizardForm.StatusLabel.Caption
end;

procedure InitializeWizard;
begin
StatusLabel:= TLabel.Create(WizardForm);
with StatusLabel do
begin
  Left:= ScaleX(0);
  Top:= ScaleY(0);
  Width:= ScaleX(417);
  Height:= ScaleY(16);
  Transparent:= True;
  AutoSize:= False;
  WordWrap:= True;
  Parent:= WizardForm.InstallingPage;
end;

FilenameLabel:= TLabel.Create(WizardForm);
SetTimer(0,0,0,WrapTimerProc(@OnTimer,4))
with FilenameLabel do
begin
  Left:= ScaleX(0);
  Top:= ScaleY(16);
  Width:= ScaleX(417);
  Height:= ScaleY(16);
  Transparent:= True;
  AutoSize:= False;
  WordWrap:= True;
  Parent:= WizardForm.InstallingPage;
end;
end;
 
Последнее редактирование:

Veskella

Мимокрокодил
С ума сойти... Чего только ни перепробовал, но до этого точно бы не допёр.) Avengerz13, и снова премного благодарю, теперь получилось.)
 
Сверху