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

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

Аватара для Vanadiy777

Ветеран


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

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


Цитата DA-Bro:
Но вот когда их объединяешь лезут ошибки. Не знаю как эту нестыковку поправить.
Как их вот "подружить" друг с другом. »
DA-Bro,

Видимо, объединяете не правильно...

Пробуйте...

Скрытый текст
Код: Выделить весь код
[Setup]
AppName=Test
AppVersion=1.5
DefaultDirName={pf}\Test
DisableWelcomePage=False
OutputDir=.

[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "EN"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "Image\ReadmeRu.rtf"; DestDir: "{tmp}"; Flags: dontcopy
Source: "Image\ReadmeEn.rtf"; DestDir: "{tmp}"; Flags: dontcopy
//Source: "Language\Russian.lng"; DestDir: "{app}\Language"; Languages: RU; Flags: ignoreversion
//Source: "Language\English.lng"; DestDir: "{app}\Language"; Languages: EN; Flags: ignoreversion

[CustomMessages]
EN.text=More detailed
RU.text=Подробнее
EN.text1=Close
RU.text1=Закрыть
EN.text2=About the program
RU.text2=О программе
EN.text3=Website
RU.text3=Сайт
EN.FreeSpace=Free space on disk:
RU.FreeSpace=Доступно места на диске:
EN.NeedSpace=Need space on disk:
RU.NeedSpace=Требуется места на диске:

[_code]
var
  Flag: Boolean;
  WebButton,AboutButton: TNewButton;
  RichEditViewer: TRichEditViewer;
  Readme: AnsiString;
  r: integer;
  NeedSpaceLabel,FreeSpaceLabel: TLabel;
  FreeMB, TotalMB: Cardinal;
  SizeStr: String;
  SizeInt: Integer;
  SymbolNumber: Integer;

function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
end;

function GetSize(): Integer;
begin
SizeStr:= WizardForm.DiskSpaceLabel.Caption;
for SymbolNumber:= 97 to 122 do begin
while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); ///Находим все символы нижнего регистра и удаляем
while (Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr) > 0) do Delete(SizeStr, Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr),1); end; ///Находим все символы верхнего регистра и удаляем
for SymbolNumber:= 192 to 255 do begin
while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); end; ///Находим все символы нижнего регистра и удаляем
while (Pos('.', SizeStr) > 0) do Delete(SizeStr, Pos('.', SizeStr), 1); ///Удаляем точки
Delete(SizeStr, Pos(',', SizeStr), 5) ///Удаляем дробную часть
Result:= StrToInt(Trim(SizeStr)); ///Переводим в число
end;

function CompareNum(FirstNum, SecondNum: Integer): Boolean;
begin
 if FirstNum < SecondNum then Result:= False else Result:= True;
end;

function MbOrTb(Byte: Extended): String;
begin
 if Byte < 1024 then Result:= NumToStr(Byte) + ' Мб' else
 if Byte/1024 < 1024 then Result:= NumToStr(Byte/1024) + ' Гб' else
 Result:= NumToStr(Byte/(1024*1024)) + ' Тб'
end;

/// { Сколько требуется места на диске.procedure GetFreeSpaceCaption }
procedure GetFreeSpaceCaption(Sender: TObject);
var Path: String;
begin
 Path := ExtractFileDrive(WizardForm.DirEdit.Text);
 GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
 FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace}  ') + MbOrTb(FreeMB)
 NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace}  ') + MbOrTb(SizeInt)
 if WizardForm.CurPageID = wpSelectDir then
  begin
    WizardForm.NextButton.Enabled:= CompareNum(FreeMB, SizeInt)
  end;
end;

procedure WebButtonOnClick(Sender: TObject);
begin
  ShellExec('open', 'http://forum.oszone.net/post-2996351-870.html', '','', SW_SHOW, ewNoWait, r);
end;

procedure SettingHideShowOnClick(Sender: TObject);
begin
  Wizardform.NextButton.Enabled := True;
    if Flag = False then begin
      RichEditViewer.Hide;
      Flag:= True;
      AboutButton.Caption := CustomMessage('text');
    end else begin
      RichEditViewer.Show;
      Flag:= False;
      AboutButton.Caption:= CustomMessage('text1');
      Wizardform.NextButton.Enabled:= True;
    end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
    wpWelcome:
    begin
//      Wizardform.NextButton.Enabled:= False;
      RichEditViewer.Hide;
      AboutButton.Caption:= CustomMessage('text');
      Flag:= True;
    end;

    wpSelectDir:
    begin
      GetFreeSpaceCaption(nil)
    end;
  end;
end;

procedure InitializeWizard();
begin
  case ActiveLanguage of
    'RU': begin
      ExtractTemporaryFile('ReadMeRu.rtf');
      LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeRu.rtf', Readme);
    end;
    'EN': begin
      ExtractTemporaryFile('ReadMeEn.rtf');
      LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeEn.rtf', Readme);
    end;
  end;

  WebButton:= TNewButton.Create(WizardForm);
  with WebButton do begin
    Parent := WizardForm.WelcomePage;
    SetBounds(ScaleX(42),ScaleY(250),ScaleX(80),ScaleY(23));
    Caption := CustomMessage('text3');
    WebButton.OnClick := @WebButtonOnClick;
  end;

  AboutButton:= TNewButton.Create(WizardForm);
  with AboutButton do begin
    AboutButton.SetBounds(ScaleX(42),ScaleY(280),ScaleX(80),ScaleY(23));
    AboutButton.Caption:= CustomMessage('text');
    AboutButton.ShowHint:= True;
    AboutButton.Hint:= CustomMessage('text2');
    AboutButton.OnClick:= @SettingHideShowOnClick;
    AboutButton.Parent:= WizardForm.WelcomePage;
    AboutButton.Cursor:= crHand;
    Flag:= True;
  end;

  RichEditViewer:= TRichEditViewer.Create(WizardForm);
  with RichEditViewer do begin
    Parent:= WizardForm.WelcomePage;
    SetBounds(ScaleX(164),ScaleY(0),ScaleX(333),ScaleY(314));
    ScrollBars:= ssVertical;
    ReadOnly:= True;
    RTFText:= Readme;
  end;

  begin
  WizardForm.DiskSpaceLabel.Hide;
   #ifdef NeedSize
   SizeInt:= {#NeedSize}
   #else
   SizeInt:= GetSize;
   #endif

  NeedSpaceLabel := TLabel.Create(WizardForm);
  NeedSpaceLabel.SetBounds(ScaleX(0), ScaleY(198), ScaleX(209), ScaleY(13))
  NeedSpaceLabel.Parent := WizardForm.SelectDirPage;
  NeedSpaceLabel.Transparent:=true;

  FreeSpaceLabel := TLabel.Create(WizardForm);
  FreeSpaceLabel.SetBounds(ScaleX(0), ScaleY(216), ScaleX(209), ScaleY(13))
  FreeSpaceLabel.Parent := WizardForm.SelectDirPage;
  FreeSpaceLabel.Transparent:=true;

  WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;
  WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;
  end;
end;

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...

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

Отправлено: 23:39, 18-11-2022 | #921