Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: Sero
Дата сообщения: 05.04.2007 18:50

Цитата:
Кто нибудь знает, как можно добавить надпись в заголовок этого диалога


Использование системных MessageBox(Inno Setup Scripting v.5.0)
Автор: Angel_Smerti
Дата сообщения: 05.04.2007 19:00
Sampron
Отдельное СПАСИБО, пилюля помогла, все пошло правильно!
Автор: NightW0lf
Дата сообщения: 05.04.2007 19:06
Sero

Цитата:
Использование системных MessageBox(Inno Setup Scripting v.5.0)

Спасибо!
Автор: Sero
Дата сообщения: 05.04.2007 21:27
А кто знаком с программой Inno Patch Wizard
http://www.is.tuwien.ac.at/tools/innopatchwizard
Не знаю как пользоваться
Автор: NightW0lf
Дата сообщения: 05.04.2007 21:43
Еще один вопрос:
Как сделать так чтобы при проверки директории {app} перед установкой файлов проверялась на конкретный файл так чтобы в сообщении что выбрана не та директория была у казана именна та которую выбрал юзер?

Вот скрин того что я хочу.
[more=Вот код]

Код:
[code]
function NextButtonClick(CurPage: Integer): Boolean;
var
s: string;
begin
str := GetDateTimeString('ss', #0, #0);
Result := True;
if CurPage = 6 then
begin
if (FileSearch('Compil32.exe', ExpandConstant('{app}')) = '')
then
begin
s := 'Программа "Inno Setup v5.1.11" не найдена в данной директории!'#13#13'Пожалуйста, укажите папку с программу.';
MsgBox(s, mbError, mb_Ok);
Result := False
end;
end;
end;
end.
end;
Автор: serg_aka_lain
Дата сообщения: 05.04.2007 23:59

Цитата:
Сам я незнаю, НО я затем и выложил этот плагин чтобы кто-нибудь помог с ним разобраться.



Ну наверное примерно так в Сталкере, по крайней мере выглядит.

[Setup]
AppName=System Check
AppVerName=System Check
DefaultDirName={pf32}\System Check
ShowLanguageDialog=false

[Languages]
Name: en; MessagesFile: compiler:Default.isl;
Name: ru; MessagesFile: compiler:Languages\Russian.isl;

[Files]
Source: get_hw_caps.dll; Flags: dontcopy deleteafterinstall




[Code]


function GetVideoCardName(): PChar;
external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';

function GetSoundCardName(): PChar;
external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';

function GetSystemPage(): Integer;
external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';

procedure CreateTheWizardPages;
var
Page: TWizardPage;
Panel1 , Panel2 , Panel3 ,
Panel4 , Panel5 , Panel6 : TPanel;
begin
Page := CreateCustomPage(wpWelcome, 'Информация о системе','');

Panel1 := TPanel.Create(Page);
Panel1.Parent := Page.Surface;
Panel1.Left := ScaleX(30);
Panel1.Top := ScaleY(50);
Panel1.Width := ScaleX(160);
Panel1.Height := ScaleY(49);
Panel1.Caption := 'Видеокарта :';
Panel1.Color := clBlack;
Panel1.Font.Color := clWhite;
Panel1.Font.Size := 10;
Panel1.BorderStyle := bsSingle;

Panel2 := TPanel.Create(Page);
Panel2.Parent := Page.Surface;
Panel2.Left := ScaleX(30);
Panel2.Top := ScaleY(100);
Panel2.Width := ScaleX(160);
Panel2.Height := ScaleY(49);
Panel2.Caption := 'Память (ОЗУ) :'
Panel2.Font.Size := 10;
Panel2.Font.Color := clWhite;
Panel2.Color := clBlack;
Panel2.BorderStyle := bsSingle;

Panel3 := TPanel.Create(Page);
Panel3.Parent := Page.Surface;
Panel3.Left := ScaleX(30);
Panel3.Top := ScaleY(150);
Panel3.Width := ScaleX(160);
Panel3.Height := ScaleY(49);
Panel3.Caption := 'Аудио карта[q][/q]:'
Panel3.Color := clBlack;
Panel3.Font.Size := 10;
Panel3.Font.Color := clWhite;
Panel3.BorderStyle := bsSingle;

Panel4 := TPanel.Create(Page);
Panel4.Parent := Page.Surface;
Panel4.Left := ScaleX(191);
Panel4.Top := ScaleY(50);
Panel4.Width := ScaleX(200);
Panel4.Height := ScaleY(49);
Panel4.Caption := ''+ GetVideoCardName;
Panel4.Color := clGreen;
Panel4.Font.Size := 10;
Panel4.Font.Color := clWhite;
Panel4.BorderStyle := bsSingle;

Panel5 := TPanel.Create(Page);
Panel5.Parent := Page.Surface;
Panel5.Left := ScaleX(191);
Panel5.Top := ScaleY(100);
Panel5.Width := ScaleX(200);
Panel5.Height := ScaleY(49);
Panel5.Caption := ''+ IntToStr(GetSystemPage()) + 'Mb';
Panel5.Color := clGreen;
Panel5.Font.Color := clWhite;
Panel5.Font.Size := 10;
Panel5.BorderStyle := bsSingle;

Panel6 := TPanel.Create(Page);
Panel6.Parent := Page.Surface;
Panel6.Left := ScaleX(191);
Panel6.Top := ScaleY(150);
Panel6.Width := ScaleX(200);
Panel6.Height := ScaleY(49);
Panel6.Caption := ''+ GetSoundCardName;
Panel6.Color := clGreen;
Panel6.Font.Size := 10;
Panel6.Font.Color := clWhite;
Panel6.BorderStyle := bsSingle;
end;


procedure InitializeWizard();
begin
CreateTheWizardPages;
end;
Автор: mrvanger
Дата сообщения: 06.04.2007 08:54
подскажите, как можно еще уменьшить размер инсталлятора?
есть файлик (Inno Unpacker сообщает версию 5.1.02) на 242 метра, распаковываю, кое-что меняю в скрипте, запаковываю версией 5.1.11 с параметром lzma/ultra - получаю 253 метра
Автор: PSKOVMAIL
Дата сообщения: 06.04.2007 10:57

Цитата:
Panel5.Caption := ''+ IntToStr(GetSystemPage()) + 'Mb';


Странно определяет память на работе 512Мб а показывает 1056 мб(это что с подкачкой что-ли)?
Автор: Chuvakstepan
Дата сообщения: 06.04.2007 12:25
NightW0lf

Вот код:

function NextButtonClick(CurPage: Integer): Boolean;
var
s: string;
begin
Result := True;
if CurPage = 6 then
begin
if (FileSearch('scdalauncher.exe', ExpandConstant('{app}')) = '')
and (FileSearch('SCDA-Offline\System\SplinterCell4.exe', ExpandConstant('{app}')) = '')
then
begin
s:='Извините, в директории '+ExpandConstant('{app}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь для установки обновления.';
MsgBox(s, mbError, mb_Ok);
Result:= False
end;
end;
end;
end.

В данном случае поиск двух файлов, либо scdalauncher.exe или SCDA-Offline\System\SplinterCell4.exe, или 2 сразу
Автор: NightW0lf
Дата сообщения: 06.04.2007 14:57
Chuvakstepan
Спасибо я уже разобрался!
Автор: Sero
Дата сообщения: 06.04.2007 21:01
У меня показывает видео память в байтах, а мне нужно в Мегабайт.
Как сделать это?
Автор: serg_aka_lain
Дата сообщения: 06.04.2007 22:21

Цитата:
Странно определяет память на работе 512Мб а показывает 1056 мб(это что с подкачкой что-ли)?


Да это с подкачкой (Page File) ,физическую память (озу),покажет меньше чем есть,(у меня так определяет) - функция GetSystemPhys.
Автор: PSKOVMAIL
Дата сообщения: 07.04.2007 07:07

Цитата:
Да это с подкачкой (Page File) ,физическую память (озу),покажет меньше чем есть,(у меня так определяет) - функция GetSystemPhys.


Спасибочки
Автор: Chuvakstepan
Дата сообщения: 07.04.2007 14:40
А как использовать get_hw_caps.dll не на MessageBox, а на отдельном окне инсталлятора, и еще бы желательно сравнивать минимальные системные требования с компьютером пользователя, и, если он (комп. пользователя) не подходит, то запретить установку
Автор: PSKOVMAIL
Дата сообщения: 07.04.2007 14:47
Круче чем S.T.A.L.K.E.R. :

[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: english; MessagesFile: compiler:Default.isl

[Files]
Source: C:\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\Program Files\Inno Setup Complect\get_hw_caps.dll; DestDir: {tmp}; Flags: dontcopy

[Code]
function GetVideoCardName(): PChar;
external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';

function GetSoundCardName(): PChar;
external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';

function GetSystemPage(): Integer;
external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';

function GetSystemPhys(): Integer;
external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';

function GetHardDriveFreeSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';

function GetHardDriveTotalSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';

function GetHardDriveName(hdd: integer): PChar;
external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';

function DetectHardware(): Integer;
external 'hwc_DetectHardware@files:get_hw_caps.dll stdcall';


function CustomForm_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
Panel1: TPanel;
Panel2: TPanel;
Panel4: TPanel;
Panel3: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
Panel12: TPanel;
Panel13: TPanel;
begin
Page := CreateCustomPage(wpWelcome, ExpandConstant('Аппаратное обеспечение'), ExpandConstant('Программа установки обнаружила следующие необходимые компоненты'));
{ Panel1 }
Panel1 := TPanel.Create(Page);
with Panel1 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('Звуковая карта');
Left := ScaleX(24);
Top := ScaleY(136);
Width := ScaleX(134);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold];
Color := 15793151;
TabOrder := 0;
end;

{ Panel2 }
Panel2 := TPanel.Create(Page);
with Panel2 do
begin
Parent := Page.Surface;
Caption := 'Свободно диска С:';
Left := ScaleX(24);
Top := ScaleY(168);
Width := ScaleX(134);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold];
Color := 15793151;
TabOrder := 1;
end;

{ Panel4 }
Panel4 := TPanel.Create(Page);
with Panel4 do
begin
Parent := Page.Surface;
Caption := 'Всего на диске C:';
Left := ScaleX(24);
Top := ScaleY(200);
Width := ScaleX(134);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold];
Color := 15793151;
TabOrder := 2;
end;

{ Panel3 }
Panel3 := TPanel.Create(Page);
with Panel3 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('Видеоадаптер');
Left := ScaleX(24);
Top := ScaleY(104);
Width := ScaleX(134);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold];
Color := 15793151;
TabOrder := 3;
end;

{ Panel5 }
Panel5 := TPanel.Create(Page);
with Panel5 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('ОЗУ');
Left := ScaleX(24);
Top := ScaleY(72);
Width := ScaleX(134);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold];
Color := 15793151;
TabOrder := 4;
end;

{ Panel6 }
Panel6 := TPanel.Create(Page);
with Panel6 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('Процессор');
Left := ScaleX(24);
Top := ScaleY(40);
Width := ScaleX(134);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold];
Color := 15793151;
TabOrder := 5;
end;

{ Panel7 }
Panel7 := TPanel.Create(Page);
with Panel7 do
begin
Parent := Page.Surface;
Caption := '' + IntToStr(GetHardDriveFreeSpace(0))+ 'Mb';
Left := ScaleX(176);
Top := ScaleY(168);
Width := ScaleX(225);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 6;
end;

{ Panel8 }
Panel8 := TPanel.Create(Page);
with Panel8 do
begin
Parent := Page.Surface;
Caption := '' + IntToStr(GetSystemPhys()) + 'Mb';
Left := ScaleX(176);
Top := ScaleY(72);
Width := ScaleX(225);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 7;
end;

{ Panel9 }
Panel9 := TPanel.Create(Page);
with Panel9 do
begin
Parent := Page.Surface;
Caption := ''+ GetVideoCardName;
Left := ScaleX(176);
Top := ScaleY(104);
Width := ScaleX(225);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 8;
end;

{ Panel10 }
Panel10 := TPanel.Create(Page);
with Panel10 do
begin
Parent := Panel9;
Caption := '' + IntToStr(GetHardDriveFreeSpace(0))+ 'Mb';
Left := ScaleX(176);
Top := ScaleY(40);
Width := ScaleX(225);
Height := ScaleY(25);
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 0;
end;

{ Panel11 }
Panel11 := TPanel.Create(Page);
with Panel11 do
begin
Parent := Page.Surface;
Caption := ''+ GetSoundCardName;
Left := ScaleX(176);
Top := ScaleY(136);
Width := ScaleX(225);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 9;
end;

{ Panel12 }
Panel12 := TPanel.Create(Page);
with Panel12 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{reg:HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0,ProcessorNameString|}');
Left := ScaleX(176);
Top := ScaleY(40);
Width := ScaleX(225);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 10;
end;

{ Panel13 }
Panel13 := TPanel.Create(Page);
with Panel13 do
begin
Parent := Page.Surface;
Caption := '' + IntToStr(GetHardDriveTotalSpace(0))+'Mb';
Left := ScaleX(176);
Top := ScaleY(200);
Width := ScaleX(225);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 11;
end;
end;

const
NeedSize = 50; //Прописать, сколько мегабайт необходимо

DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVEABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;

var
ListBox: TListBox;

function GetLogicalDrives: DWORD;
external 'GetLogicalDrives@kernel32.dll stdcall';

function GetDriveType(nDrive: String): Longint;
external 'GetDriveTypeA@kernel32.dll stdcall';

procedure ListBoxOnClick(Sender: TObject);
var
NewLetter, OldString: String;
i: Integer;
begin
for i:= 0 to ListBox.Items.Count-1 do
begin
if ListBox.Selected[i] then
begin
NewLetter:= Copy(ListBox.Items[i], 0, 1);
OldString:= Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));
WizardForm.DirEdit.Text:= NewLetter + OldString;
end;
end;
end;

procedure InitializeWizard();
var
Path: String;
FreeMB, TotalMB: Cardinal;
drives: DWORD;
i: integer;
begin
CustomForm_CreatePage(wpWelcome);
ListBox:= TListBox.Create(WizardForm);
ListBox.Top:= 120;
ListBox.Width:= 300;
ListBox.Height:= ScaleY(90);
ListBox.Parent:= WizardForm.SelectDirPage;
ListBox.OnClick:= @ListBoxOnClick;

drives:= GetLogicalDrives();
for i:= 0 to 31 do
begin
if (drives and (1 shl i)) > 0 then
begin
Path:= chr(ord('A')+i)+':';
if GetDriveType(Path) = DRIVE_FIXED then
begin
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
ListBox.Items.Add(Path + ' - Всего: ' + IntToStr(TotalMB) +
'Мб - Свободно: ' + IntToStr(FreeMB) + 'Мб');
end;
end;
end;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
Path: String;
FreeMB, TotalMB: Cardinal;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB < NeedSize then
begin
MsgBox('Недостаточно места на диске!', mbInformation, MB_OK)
Result:= False;
end;
end;
end;
Автор: serg_aka_lain
Дата сообщения: 07.04.2007 16:10

Цитата:
Круче чем S.T.A.L.K.E.R. :


Имя процессора обрезается за краями: (el(R) Core(TM)2 CPU 6600 @ 2.40),
используй : Panel.Alignment := taLeftJustify; , для панели с процем.
Автор: NightW0lf
Дата сообщения: 07.04.2007 17:37
PSKOVMAIL
Впринцепи да! Респект за код!
Но вот только не подскажешь как можно сделать такую же проверку как у S.T.A.L.K.E.R. типа для правильной работы игры нужно например 1 гб ОЗУ, а у юзера например 256-512 и инсталлятор должен выделить красным цветом тот или иной компанент который несоответствует систмным требованиям игры.
Автор: Sero
Дата сообщения: 07.04.2007 18:23
NightW0lf

Цитата:
Впринцепи да! Респект за код!
Но вот только не подскажешь как можно сделать такую же проверку как у S.T.A.L.K.E.R. типа для правильной работы игры нужно например 1 гб ОЗУ, а у юзера например 256-512 и инсталлятор должен выделить красным цветом тот или иной компанент который несоответствует систмным требованиям игры.



Код:
Panel8 := TPanel.Create(Page);
with Panel8 do
begin
Parent := Page.Surface;
Caption := '' + IntToStr(GetSystemPhys()) + 'Mb';
Left := ScaleX(176);
Top := ScaleY(72);
Width := ScaleX(225);
Height := ScaleY(25);
BorderStyle := bsSingle;
Font.Name := 'Tahoma';
Font.Style := [fsBold, fsItalic];
Color := 15780518;
TabOrder := 7;
end;

if GetSystemPhys+1<1024 then
Panel8.Color:=clRed;
Автор: NightW0lf
Дата сообщения: 07.04.2007 18:41
Sero
Спасибо за код!
НО только в коде от PSKOVMAIL нет такого пункта как файл подкачки. Не подскажешь как его в код от PSKOVMAIL добавить?

Еще небольшая просьба программерам:
Немоглибы Вы этот код от PSKOVMAIL сделать точно так же как показанно на картинке.

Буду ОЧЕНЬ признателен за помощь!
Автор: Sampron
Дата сообщения: 07.04.2007 19:22
NightW0lf
Держи почти один к одному

[Setup]
AppName=System Check
AppVerName=System Check
DefaultDirName={pf32}\System Check

[Files]
Source: get_hw_caps.dll; Flags: dontcopy deleteafterinstall

[Code]
function GetVideoCardName(): PChar;
external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';
function GetSoundCardName(): PChar;
external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';
function GetSystemPhys(): Integer;
external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';
function GetSystemPage(): Integer;
external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';

procedure InitializeWizard();
var
Page: TWizardPage;
Text: TNewStaticText;
Memo: TMemo;
begin
Page:=CreateCustomPage(wpWelcome, 'Аппаратное обеспечение', 'Программа установки обнаружила следующие необходимые компоненты');
Text:=TNewStaticText.Create(Page);
with Text do begin
Left:=0
Top:=0
Width:=417
Height:=14
Caption:='Все компоненты удовлетворяют требованиям игры'
Parent:=Page.Surface
end
Text:=TNewStaticText.Create(Page);
with Text do begin
Left:=0
Top:=210
Width:=417
Height:=14
Caption:='Когда Вы будете готовы продолжить установку, нажмите «Далее».'
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=0
Top:=30
Width:=110
Height:=22
ReadOnly:=True
Color:=clBtnFace
Text:='Процессор'
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=0
Top:=55
Width:=110
Height:=22
ReadOnly:=True
Color:=clBtnFace
Text:='Видеоадаптер'
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=0
Top:=80
Width:=110
Height:=22
ReadOnly:=True
Color:=clBtnFace
Text:='Звуковая карта'
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=0
Top:=105
Width:=110
Height:=22
ReadOnly:=True
Color:=clBtnFace
Text:='Память'
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=0
Top:=130
Width:=110
Height:=22
ReadOnly:=True
Color:=clBtnFace
Text:='Файл подкачки'
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=114
Top:=30
Width:=303
Height:=22
ReadOnly:=True
Color:=$ccffcc
Text:=ExpandConstant('{reg:HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0,ProcessorNameString|}');
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=114
Top:=55
Width:=303
Height:=22
ReadOnly:=True
Color:=$ccffcc
Text:=''+ GetVideoCardName
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=114
Top:=80
Width:=303
Height:=22
ReadOnly:=True
Color:=$ccffcc
Text:=''+ GetSoundCardName
Parent:=Page.Surface
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=114
Top:=105
Width:=303
Height:=22
ReadOnly:=True
Color:=$ccffcc
Text:='' + IntToStr(GetSystemPhys()) + 'Mb'
Parent:=Page.Surface
if GetSystemPhys+1<1024 then
Color:=$ccccff
end
Memo:=TMemo.Create(Page);
with Memo do begin
Left:=114
Top:=130
Width:=303
Height:=22
ReadOnly:=True
Color:=$ccffcc
Text:=''+ IntToStr(GetSystemPage()) + 'Mb'
Parent:=Page.Surface
end
end;
Автор: NightW0lf
Дата сообщения: 07.04.2007 19:40
Sampron
СПАСИБО - внешне теперь стал похож!

Но вот только осталочь кое что еще подкоректировать:
1. Можно чтобы название процессора было слевого края а не по центру.
2. Чтобы у процессора показывал чистату не только в ГГц [Intel(R) Pentium(R) 4 CPU 2.00GHz] НО и в МГц [Intel(R) Pentium(R) 4 CPU 2.00GHz @2020MHz]
3. Чтобы у видео карты отображалась так же и ОЗУ - пример - NVIDIA GeForce4 Ti 4200 with AGP8X = NVIDIA GeForce4 Ti 4200 with AGP8X ~128MB
4. Чтобы можно было у каждого из этих пунктов [Процессор, Видеоадаптер, Звуковая карта, ОЗУ, Файл подкачки] можно было делать проверку всех этих устройств у юзера с нужными для ХОРОШЕЙ работы игры.

Буду ОЧЕНЬ признателен за помощь!
Автор: Sero
Дата сообщения: 07.04.2007 20:28
NightW0lf
Вот мой скрипт
http://rapidshare.com/files/24808834/STALKER_Test.iss.html
или
http://tlwt.ifolder.ru/1608066
Там почти все!
Автор: NightW0lf
Дата сообщения: 07.04.2007 20:47
Sero

Цитата:
Вот мой скрипт
http://rapidshare.com/files/24808834/STALKER_Test.iss.html
или
http://tlwt.ifolder.ru/1608066
Там почти все!

Да ты прав там почти все - но ты незнаешь все таки как сделать так чтобы все эти надписи [и справа и слева] были вырвнены по левому краю?
Автор: serg_aka_lain
Дата сообщения: 07.04.2007 21:01
NightW0lf

Используй - Alignment := taLeftJustify;

пример

ProcessorNamePanel := TPanel.Create(Page);
with ProcessorNamePanel do
begin
Parent := Page.Surface;
Caption :=ProcessorName+' '+IntToStr(ProcessorMHZ)+'MHz' ;
Left := ScaleX(128);
Top := ScaleY(32);
Width := ScaleX(281);
Height := ScaleY(25);
BevelInner := bvLowered;
Color := 12639424;
Alignment := taLeftJustify;
TabOrder := 0;
end;
Автор: NightW0lf
Дата сообщения: 07.04.2007 21:10
serg_aka_lain

Цитата:
Используй - Alignment := taLeftJustify;

Уже пробывал результат все равно один и тот же.
Автор: GloThin
Дата сообщения: 07.04.2007 23:46
NightW0lf
00:10 08-04-2007
Цитата:
serg_aka_lain
Цитата:Используй - Alignment := taLeftJustify;

Уже пробывал результат все равно один и тот же.


Причина более-менее ясна, боле ясна.
Надеюсь завтра будет решение...
Автор: Sero
Дата сообщения: 08.04.2007 00:00
Вот исправил и доработал скрипт...

Цитата:
Уже пробывал результат все равно один и тот же.
Все работает.

http://rapidshare.com/files/24837902/STALKER_Check_System.iss.html
Автор: Sampron
Дата сообщения: 08.04.2007 00:02
NightW0lf
В моём примере весь текст слева в чём проблема?
Автор: Chuvakstepan
Дата сообщения: 08.04.2007 09:00
Всё равно название процессора не влезает:


Добавлено:
И ещё бы добавить как-нибудь поле с выбором жесткого диска (со свободным местом, на странице выбора папки назначения) как в коде от PSKOVMAIL

Добавлено:
я понял почему название процессора имеет отступ:
Автор: GloThin
Дата сообщения: 08.04.2007 09:56
Chuvakstepan

Цитата:
я понял почему название процессора имеет отступ:

Точнее содержит в начале слова символ табуляции...

Вот функция удаления лишних пустот в начале слова:

Код:
function DelSp(const s:string):string;
var
c, i: integer;
stt, st, st1: string;
begin
c := 0;
st := s;

for i := 0 to Length(st) do
begin

stt := copy(st, i, 1);
if (stt = ' ') and (c >= 1) then
begin
st1 := st1;
c := c + 1;
end
else if (stt = ' ') and (c = 0) then
begin
c := c + 1;
st1 := st1 + stt;
end
else if (stt <> ' ') then
begin
c := 0;
st1 := st1 + stt;
end
end;

Result:= st1;
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: ICONS


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.