Ветеран
Сообщения: 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;
|