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

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

Аватара для Johny777

Ветеран


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

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


Цитата t16bz:
Нужно сделать чтобы перед появлением WizardForm появлялась, например Forma1, и только после ее закрытия появлялась WizardForm »
пример 1:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo



[  code]
function CreateFormAtFirst: boolean;
var
  fForm: TForm;
begin
  fForm := TForm.Create(nil);
  with fForm do
  begin
    ClientWidth := ScaleX(360);
    ClientHeight := ScaleY(487);
    Position := poScreenCenter;
    BorderStyle := bsDialog;
    Caption := 'Лучший зпголовок'

    
    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(75),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonCancel);
      ModalResult := mrCancel;
      Cursor := crHand;
    end;

    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(155),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonOK);
      ModalResult := mrOk;
      Cursor := crHand;
    end;
    
    Result := ShowModal = mrOk;
    Free; 
  end;
end;


function InitializeSetup(): Boolean;
begin
  Result := CreateFormAtFirst;
end;


пример 2:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo



[  code]
procedure InitializeWizard();
var
  fForm: TForm;
begin
  fForm := TForm.Create(nil);
  with fForm do
  begin
    ClientWidth := ScaleX(360);
    ClientHeight := ScaleY(487);
    Position := poScreenCenter;
    BorderStyle := bsDialog;
    Caption := 'Лучший зпголовок'


    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(75),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonCancel);
      ModalResult := mrCancel;
      Cursor := crHand;
    end;

    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(155),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonOK);
      ModalResult := mrOk;
      Cursor := crHand;
    end;

    ShowModal;
    Free; 
  end;
  
  /// остальной код 
  
end;

в этом примере продолжению выполнения процедуры не даёт команда форме ShowModal;


Ваня!
для тебя родимого как вариант
если б делал выбор стилей сделал бы так:

читать дальше »
Код: Выделить весь код
[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo



[  code]
var
  wAnswer: Byte;
  OK_Button: TButton;
  
procedure sComboBoxOnChange(Sedner: TObject);
begin
  OK_Button.SetFocus;
end;

function AskForStyle(DefStyle:Byte;sQuestion,sStyle1,sStyle2:String):Byte;
var
  sComboBox: TComboBox;
  sForm: TForm;
begin
  sForm := TForm.Create(nil);
  with sForm do
  begin
    ClientWidth := ScaleX(200);
    ClientHeight := ScaleY(70);
    Position := poScreenCenter;
    BorderStyle := bsDialog;
    Caption := sQuestion;

    sComboBox := TComboBox.Create(nil)         
    with sComboBox do
    begin
      Parent := sForm;
      SetBounds(ScaleX(5),ScaleY(10),ScaleX(130),ScaleY(21));
        Items.add(sStyle1);
        Items.add(sStyle2);
      Style := csDropDownList;
      Cursor := crHand;
      ItemIndex := DefStyle;
      OnChange := @sComboBoxOnChange;
    end;

    with TButton.Create(nil) do
    begin
      Parent := sForm;
      SetBounds(sForm.ClientWidth - ScaleX(75),sForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonCancel);
      ModalResult := mrCancel;
      Cursor := crHand;
    end;

    OK_Button := TButton.Create(nil)
    with OK_Button do
    begin
      Parent := sForm;
      SetBounds(sForm.ClientWidth - ScaleX(155),sForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonOK);
      ModalResult := mrOk;
      Cursor := crHand;
    end;
    
    sForm.ActiveControl := OK_Button;

    if ShowModal = mrOk then Result := mrOk + sComboBox.ItemIndex else Result := 0;

    Free; 

  end;
end;


function InitializeSetup(): Boolean;
begin
  ///////////////////(стиль по умолчаниб - 0 или 1//// название заголовка окна//// название первого стиля /// название второго стиля)
  /// Функция вернёт число равное 0 - нажали на отмену, 1 - 1 + индекс выбранного айтема(0+1), 2 - индекс выбранного айтема
  wAnswer := AskForStyle(1,'какой стиль юзать?','Стиль 1','Стить 2');
  Result := wAnswer <> 0;
end;


procedure InitializeWizard();
begin
  /// здесь общий код для двух стилей

  if wAnswer = 1 then
  begin
    /// код для первого слитя
  
    MsgBox('будет использован стиль 1', mbInformation, MB_OK);
  end else
  begin
    /// код для вторго слитя

    MsgBox('будет использован стиль 2', mbInformation, MB_OK);
  end;
    
end;

Последний раз редактировалось Johny777, 27-09-2012 в 15:22.

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

Отправлено: 11:33, 27-09-2012 | #1008