Автор: Ronn1e10
Дата сообщения: 19.12.2011 15:35
Вообшем я добился того чего хотел (почти), через библиотеку isUtlits все работает в процессе, но когда открою окно сис требований, его невозможно закрыть. Я одного немогу понять как сделать так как написано дальше. Нужно для начала на странице сис требований (только на ней) удалить все кнопки (далее , назад, отмена), и на их место поставить одну под названием например: ок, выход. Хочеться добиться результата, чтоб при нажатии на ету кнопку можно было возвратиться к процессу установки....
Вот скрипт:
[more]
Код:
[Setup]
AppName=ProgressBar Demo
AppVerName=ProgressBar Demo
DefaultDirName={pf}\ProgressBar Demo
[Languages]
Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: isutils.dll; DestDir: "{tmp}"; Flags: dontcopy
Source: back2.bmp; DestDir: {tmp}; Flags: dontcopy
[Icons]
Name: "{group}\Удалить"; IconFilename: "{app}\unins000.exe"; Filename: "{app}\unins000.exe"
[Code]
Function GetTotalRam: integer; external 'GetTotalRam@files:isutils.dll stdcall';
Function GetVideoName: PANSICHAR; external 'GetVideoName@files:isutils.dll stdcall';
Function GetVideoRam: integer; external 'GetVideoRam@files:isutils.dll stdcall';
Function GetProcessorName: PANSICHAR; external 'GetProcessorName@files:isutils.dll stdcall';
Function GetProcessorFreq: integer; external 'GetProcessorFreq@files:isutils.dll stdcall';
Function GetProcessorCoreCount: integer; external 'GetProcessorCoreCount@files:isutils.dll stdcall';
Function GetSoundCards: integer; external 'GetSoundCards@files:isutils.dll stdcall';
Function GetSoundCardName: PANSICHAR; external 'GetSoundCardName@files:isutils.dll stdcall';
Function GetOsName: PANSICHAR; external 'GetOsName@files:isutils.dll stdcall';
function GetOsNumber: integer; external 'GetOsNumber@files:isutils.dll stdcall';
function GetOsBit: integer; external 'GetOsBit@files:isutils.dll stdcall';
var
Trebovaniya: TNewButton;
Image: TBitmapImage;
RequirementsLbl,ProcessorLbl, ProcessorNameLbl, VideoCardLbl, VideoCardNameLbl, SoundCardLbl,
SoundCardNameLbl, RAMLbl, RAMTotalLbl, SystemLbl, SystemNameLbl: TLabel;
Processor, coreCount, VideoRam, Ram, OpSystem, OpSystemBit:integer;
procedure NewButton1Click(Sender: TObject);
begin
Processor:=2000;
VideoRam:=9964;
Ram:=500;
OpSystem:=513;
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
WizardForm.Bevel.Hide;
ExtractTemporaryFile('back2.bmp');
Image:=TBitmapImage.Create(WizardForm);
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\back2.bmp ');
Image.setbounds(0, 0, ScaleX(497), ScaleY(360));
Image.Parent:=WizardForm;
Image.Stretch:=True;
RequirementsLbl := TLabel.Create(WizardForm);
with RequirementsLbl do begin
AutoSize:=False;
SetBounds(ScaleX(10), ScaleY(45), ScaleX(487), ScaleY(67));
Transparent:=True;
WordWrap:=True;
Alignment := taCenter;
Font.Color:=$FFFFFF;
Font.size:=10;
Font.Style:=[fsBold];
Caption := 'Программа установки обнаружила следующие компоненты';
Parent:=WizardForm;
end;
//================= Начало - Процессор =================//
ProcessorLbl := TLabel.Create(WizardForm);
with ProcessorLbl do begin
AutoSize:=False;
SetBounds(ScaleX(23), ScaleY(102), ScaleX(150), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
Caption := 'Процессор';
Parent := WizardForm;
end;
ProcessorNameLbl := TLabel.Create(WizardForm);
with ProcessorNameLbl do begin
AutoSize:=False;
SetBounds(ScaleX(170), ScaleY(102), ScaleX(300), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
// Font.Style:=[fsBold];
Caption := GetProcessorName+' @' + IntToStr(GetProcessorFreq) + ' MHz';
Parent := WizardForm;
end;
if (GetProcessorFreq*GetProcessorCoreCount) < Processor then
begin
RequirementsLbl.Caption := 'Компоненты, выделенные красным, не удовлетворяют требованиям';
ProcessorNameLbl.font.color:=clred;
end;
//================= Конец - Процессор =================//
//================= Начало - Видеоадаптер =================//
VideoCardLbl := TLabel.Create(WizardForm);
with VideoCardLbl do begin
AutoSize:=False;
SetBounds(ScaleX(23), ScaleY(127), ScaleX(150), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
Caption := 'Видеоадаптер';
Parent := WizardForm;
end;
VideoCardNameLbl := TLabel.Create(WizardForm);
with VideoCardNameLbl do begin
AutoSize:=False;
SetBounds(ScaleX(170), ScaleY(127), ScaleX(300), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
// Font.Style:=[fsBold];
Caption := GetVideoName+' '+inttostr(GetVideoRam)+' Mb';
Parent := WizardForm;
end;
if GetVideoRam < VideoRam then begin
RequirementsLbl.Caption:='Компоненты, выделенные красным, не удовлетворяют требованиям';
VideoCardNameLbl.font.color:=clred;
end;
//================= Конец - Видеоадаптер =================//
//================= Начало - Звуковая карта =================//
SoundCardLbl := TLabel.Create(WizardForm);
with SoundCardLbl do begin
AutoSize:=False;
SetBounds(ScaleX(23), ScaleY(152), ScaleX(150), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
Caption := 'Звуковая карта';
Parent := WizardForm;
end;
SoundCardNameLbl := TLabel.Create(WizardForm);
with SoundCardNameLbl do begin
AutoSize:=False;
SetBounds(ScaleX(170), ScaleY(152), ScaleX(300), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
// Font.Style:=[fsBold];
Caption := GetSoundCardName;
Parent := WizardForm;
end;
if GetSoundCards=0 then begin
RequirementsLbl.Caption:='Компоненты, выделенные красным, не удовлетворяют требованиям';
SoundCardNameLbl.font.color:=clred;
SoundCardNameLbl.Caption := 'Звуковая карта отсутствует';
end;
//================= Конец - Звуковая карта =================//
//================= Начало - ОЗУ =================//
RAMLbl := TLabel.Create(WizardForm);
with RAMLbl do begin
AutoSize:=False;
SetBounds(ScaleX(23), ScaleY(177), ScaleX(150), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
Caption := 'ОЗУ';
Parent := WizardForm;
end;
RAMTotalLbl := TLabel.Create(WizardForm);
with RAMTotalLbl do begin
AutoSize:=False;
SetBounds(ScaleX(170), ScaleY(177), ScaleX(300), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
//Font.Style:=[fsBold];
Caption := IntToStr(GetTotalRam + 1) + ' Mb';
Parent := WizardForm;
end;
if (GetTotalRam+1)<RAM then begin
RequirementsLbl.Caption := 'Компоненты, выделенные красным, не удовлетворяют требованиям';
RAMTotalLbl.font.color:=clred;
end;
//================= Конец - ОЗУ =================//
//================= Начало - Операционная система =================//
SystemLbl := TLabel.Create(WizardForm);
with SystemLbl do begin
AutoSize:=False;
SetBounds(ScaleX(23), ScaleY(202), ScaleX(150), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
Caption := 'Система';
Parent := WizardForm;
end;
SystemNameLbl := TLabel.Create(WizardForm);
with SystemNameLbl do begin
AutoSize:=False;
SetBounds(ScaleX(170), ScaleY(202), ScaleX(400), ScaleY(22));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:=$FFFFFF;
// Font.Style:=[fsBold];
Caption := GetOsName+' '+inttostr(GetOsBit)+' Bit';
Parent := WizardForm;
end;
if OpSystem > GetOsNumber then begin
RequirementsLbl.Caption := 'Компоненты, выделенные красным, не удовлетворяют требованиям';
SystemNameLbl.font.color:=clred;
end;
//================= Конец - Операционная система =================//
end;
procedure InitializeWizard();
begin
Trebovaniya := TNewButton.Create(WizardForm);
with Trebovaniya do begin
Parent := WizardForm.SelectDirPage;
SetBounds(0, 184, 115, 25);
OnClick := @NewButton1Click;
Caption:='Сис Требования'
end;
end;