Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Ivan_009,
ну вот так
with WizardForm do
begin
BorderStyle := bsNone;
end;
только окно таскать не за что будет
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,
но благодаря Лександру у нас есть чудо-процедура (сам у себя в инсталле использую. Очень удобно!)
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[  code]
type
  TANewStatic = record
    Static  : TNewStaticText;
  end;

var
  ANewStatic : array of TANewStatic;

function ReleaseCapture(): Longint; external 'ReleaseCapture@user32.dll stdcall';

procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  SendMessage(WizardForm.Handle,$0112,$F012,0)
end;

procedure AddStaticToArray(st:TNewStaticText);
var
  i:integer;
begin
  i:=GetArrayLength(ANewStatic);
  SetArrayLength(ANewStatic,i+1);
  ANewStatic[i].Static:=st;
  ANewStatic[i].Static.OnMouseDown:=@MouseDown;
end;

procedure StaticChange(c:TWinControl);
var
  i:integer;
begin
  for i:=0 to c.ControlCount-1 do
    if c.Controls[i] is TWinControl then begin
      if c.Controls[i] is TNewStaticText then AddStaticToArray(TNewStaticText(c.Controls[i]));
      if TWinControl(c.Controls[i]).ControlCount>0 then StaticChange(TWinControl(c.Controls[i]));
    end;
end;

procedure InitializeWizard;
var i:integer;
begin
with WizardForm do begin
   /// BorderStyle:=bsNone;

  end;
for i:=0 to 18 do
  begin
    with TLabel.Create(WizardForm) do
    begin
    BringToFront;
      Case i of
      0:Parent := WizardForm;
      1:Parent := WizardForm.OuterNotebook;
      2:Parent := WizardForm.InnerNotebook;
      3:Parent := WizardForm.InnerPage;
      4:Parent := WizardForm.WelcomePage;
      5:Parent := WizardForm.LicensePage;
      6:Parent := WizardForm.PasswordPage;
      7:Parent := WizardForm.InfoBeforePage;
      8:Parent := WizardForm.UserInfoPage;
      9:Parent := WizardForm.SelectDirPage;
      10:Parent := WizardForm.SelectComponentsPage;
      11:Parent := WizardForm.SelectProgramGroupPage;
      12:Parent := WizardForm.SelectTasksPage;
      13:Parent := WizardForm.ReadyPage;
      14:Parent := WizardForm.PreparingPage;
      15:Parent := WizardForm.InstallingPage;
      16:Parent := WizardForm.InfoAfterPage;
      17:Parent := WizardForm.FinishedPage;
      18:Parent := WizardForm.MainPanel;
      end;
      Transparent := True;
      Align := alClient;
      OnMouseDown:=@MouseDown;
    end;
  end;
  StaticChange(WizardForm);
end;

при желании можно не использовать кусок из InitializeWizard
и всем нужным элементам во вкладке "события" дизайнера расширенной версии
в событии OnMouseDown присвоить процедуру MouseDown (картинкам, панелям и пр)
в окнах (ведь Notebook-ам эту процедуру не присвоить) создать на всю страницу или в определённых участках лейблы с параметрами (параметры выделил жирным)
читать дальше »
Код: Выделить весь код
  Label1 := TLabel.Create(WizardForm);
  with Label1 do
  begin
    Name := 'Label1';
    Parent := WizardForm.SelectDirPage;
    AutoSize := False;
    Transparent := True;
    OnMouseDown := @MouseDown;
    Caption := '';
    Left := ScaleX(104);
    Top := ScaleY(112);
    Width := ScaleX(171);
    Height := ScaleY(53);
  end;

а если этот лейбл будет не давать пользоваться некоторыми элементами (SpeedButton-у например), то их нужно в той же вкладке
"дизайн" при щелчке правой кнопкой мыши по ним поднять "на передний план"

Последний раз редактировалось Johny777, 16-05-2012 в 01:59.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:37, 16-05-2012 | #2021