Вопрос Как выполнять разные команды отталкиваясь от прогресса установки.

Статус
В этой теме нельзя размещать новые ответы.

Nemko

Дилетант
Модератор
MISHAWIN, еще раз, можно создать все лейблы в массиве:
var
Label: array [0..10] of TLabel
Потом обращаться по идентификатору:
Либо создать процедуру и ей передавать Index затем в теле процедуры обрабатывать оператором case of все Index'ы.
А обращаться к объявленной переменной в виде строки нельзя.
 

MISHAWIN

Новичок
MISHAWIN, еще раз, можно создать все лейблы в массиве:
Потом обращаться по идентификатору:
Либо создать процедуру и ей передавать Index затем в теле процедуры обрабатывать оператором case of все Index'ы.
А обращаться к объявленной переменной в виде строки нельзя.
Понятно, спасибо, этоя и хотел услышать, я думал всё просто, а тут вот оно как заморочено, я создаю лейблы через визард форм дизайнер, поэтому создавать через массив не вариант, буду смотреть, что за case of.
 

Nemko

Дилетант
Модератор
MISHAWIN, грубый пример:
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
var
  Labels: array [0..5] of TLabel;
  Button: array [0..5] of TButton;

procedure IndexProc(Index: Integer);
begin
  case Index of
    0: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    1: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    2: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    3: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    4: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    5: Beep;
  end;
end;

procedure ButtonClicks(Obj: TObject);
begin
  if Obj is TButton then IndexProc(TButton(Obj).Tag);
end;

procedure InitializeWizard;
var
  i: Byte;
begin
  with WizardForm do begin
    OuterNotebook.Hide;
    Bevel.Hide;

    for i:= 0 to 5 do begin
      {}
      Labels[i]:= TLabel.Create(nil);
      with Labels[i] do begin
        AutoSize:=False;
        Caption:= IntToStr(i);
        ParentColor:= False;
        Transparent:= False;
        Color:= clGray;
        SetBounds(10, 20+i*26, 40, 24);
        Parent:= WizardForm;
      end;
      {}
      Button[i]:= TButton.Create(nil);
      with Button[i] do begin
        Caption:= IntToStr(i);
        SetBounds(60, 20+i*26, 40, 24);
        OnClick:= @ButtonClicks;
        Parent:= WizardForm;
        Tag:= i;
      end;
    end;
  end;
end;
я создаю лейблы через визард форм дизайнер
Думаю, придется познать дзен, рано или поздно, на "визард форм дизайнер" далеко не "укатишь" ;)
 
Последнее редактирование:

MISHAWIN

Новичок
MISHAWIN, грубый пример:
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
var
  Labels: array [0..5] of TLabel;
  Button: array [0..5] of TButton;

procedure IndexProc(Index: Integer);
begin
  case Index of
    0: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    1: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    2: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    3: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    4: if Labels[Index].Visible then Labels[Index].Hide else Labels[Index].Show;
    5: Beep;
  end;
end;

procedure ButtonClicks(Obj: TObject);
begin
  if Obj is TButton then IndexProc(TButton(Obj).Tag);
end;

procedure InitializeWizard;
var
  i: Byte;
begin
  with WizardForm do begin
    OuterNotebook.Hide;
    Bevel.Hide;

    for i:= 0 to 5 do begin
      {}
      Labels[i]:= TLabel.Create(nil);
      with Labels[i] do begin
        AutoSize:=False;
        Caption:= IntToStr(i);
        ParentColor:= False;
        Transparent:= False;
        Color:= clGray;
        SetBounds(10, 20+i*26, 40, 24);
        Parent:= WizardForm;
      end;
      {}
      Button[i]:= TButton.Create(nil);
      with Button[i] do begin
        Caption:= IntToStr(i);
        SetBounds(60, 20+i*26, 40, 24);
        OnClick:= @ButtonClicks;
        Parent:= WizardForm;
        Tag:= i;
      end;
    end;
  end;
end;

Думаю, придется познать дзен, рано или поздно, на "визард форм дизайнер" далеко не "укатишь" ;)
Посмотрел, ужаснулся, в общем спасибо за ответы, тему можно закрывать.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху