Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Новый участник


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

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


Добрый день всем.

Можно ли разделить секцию [Tasks] на 2 странички? У меня там сейчас 2 независимые группы exclusive опций. После добавления новых вариантов в одну из групп они перестали помещаться на одну страничку без скроллбара.
Видел в архиве этой темы пример кода по созданию своей странички с чекбоксом и сохранению его состояния в переменной кода. Но остается непонятным как активировать выбранный вариант в группе опций.
Может есть какой-нибудь другой способ разделить группы по страничкам?

Farser21, R.i.m.s.k.y., для сравнения версий я написал себе вот такой велосипед:
Код: Выделить весь код
type
  TVersionInfo = record
    Major, Minor, Release, Build: WORD;
  end;

function GetFileVersion(const FileName: string): TVersionInfo;
var
  VerMS, VerLS: Cardinal;
begin
  if GetVersionNumbers(FileName, VerMS, VerLS) then
  begin
    Result.Major    := VerMS shr 16;
    Result.Minor    := VerMS and $FFFF;
    Result.Release  := VerLS shr 16;
    Result.Build    := VerLS and $FFFF;
  end
  else
  begin
    Result.Major    := 0;
    Result.Minor    := 0;
    Result.Release  := 0;
    Result.Build    := 0;
  end;
end;

function GetInt(var Str: String): Integer;
var
  DotPos: Integer;
begin
  Result := 0;
  DotPos := Pos('.', Str);
  if DotPos > 0 then
  begin
    Result := StrToIntDef(Copy(Str, 1, DotPos - 1), 0);
    Str := Copy(Str, DotPos + 1, Length(Str) - DotPos);
  end
  else
  begin
    Result := StrToIntDef(Str, 0);
    Str := '';
  end;
end;

function StrToFileVer(const FileVerStr: String): TVersionInfo;
var
  LocalStr: String;
begin
  LocalStr := FileVerStr;

  Result.Major    := GetInt(LocalStr);
  Result.Minor    := GetInt(LocalStr);
  Result.Release  := GetInt(LocalStr);
  Result.Build    := GetInt(LocalStr);
end;

function CompareVer(Ver1, Ver2: TVersionInfo): Integer;
// Ver1 > Ver2 ====> result > 0
// Ver1 = Ver2 ====> result = 0
// Ver1 < Ver2 ====> result < 0
begin
  Result := Integer(Ver1.Major) - Integer(Ver2.Major);
  if Result = 0 then
  begin
    Result := Integer(Ver1.Minor) - Integer(Ver2.Minor);
    if Result = 0 then
    begin
      Result := Integer(Ver1.Release) - Integer(Ver2.Release);
      if Result = 0 then
      begin
        Result := Integer(Ver1.Build) - Integer(Ver2.Build);
      end;
    end;
  end;
end;

function InitializeSetup(): Boolean;
var
  BSVer, UpdateVer, MinAppVer: TVersionInfo;
begin
// Проверка на совместимость установленной версии с этим апдейтом
  BSVer := GetFileVersion('MyPath\MyApp.exe');
  UpdateVer := StrToFileVer(ExpandConstant('{#MyAppVersion}'));
  MinAppVer := StrToFileVer(ExpandConstant('{#MinAppVersionForUpdate}'));
  Result := CompareVer(MinAppVer, BSVer) <= 0;
  if not Result then
  begin
    MsgBox(Format(ExpandConstant('{cm:MyAppIsTooOld}'), [BSVer.Major, BSVer.Minor, BSVer.Release, BSVer.Build, MinAppVer.Major, MinAppVer.Minor, MinAppVer.Release, MinAppVer.Build]), mbError, MB_OK);
    Exit;
  end;
  Result := CompareVer(UpdateVer, BSVer) >= 0;
  if not Result then
  begin
    MsgBox(Format(ExpandConstant('{cm:MyAppIsNewer}'), [BSVer.Major, BSVer.Minor, BSVer.Release, BSVer.Build]), mbError, MB_OK);
    Exit;
  end;
// ===============================================================
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:06, 10-03-2014 | #9