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

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

Автор: Kirgyz
Дата сообщения: 12.06.2007 13:14
Chuvakstepan
тогда надо как-то и текст на странице приветствия изменить. А то установка, а тут тебе играть.. Типа там надо , что игра уже установлена и прочее.

а так задумка неплохая, мне бы тоже хотелось такое в своём игровом инстале
Автор: Sampron
Дата сообщения: 12.06.2007 13:31
iTASmania_Inc
На странице SysTestPage кнопку Далее можно сделать неактивной если какойто компонент не соответствует требованиям а вот если вернутся на предыдущую страницу то кнопка Далее неактивна и я незнаю как это исправить и про сплеш-заставку тоже незнаю. [more=Код]#define WizardImage "WizardImage.bmp"
#define ButtonImage "ButtonImage.bmp"
#include "Skin.iss"

[Setup]
AppName=Example
AppVerName=Example
DefaultDirName={pf}\Example
WizardImageFile={#WizardImage}

[Files]
Source: {#ButtonImage}; DestDir: {tmp}; Flags: dontcopy
Source: compiler:get_hw_caps.dll; Flags: dontcopy

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Code]
const oneMB = 1024*1024; BufferLen = 50;
type TMemoryStatus = record dwLength, dwMemoryLoad, dwTotalPhys, dwAvailPhys, dwTotalPageFile, dwAvailPageFile, dwTotalVirtual, dwAvailVirtual: Longint; end;
var Memory: TMemoryStatus; FreeMB, TotalMB: Cardinal; VolumeSerialNo, MaxComponentLength, FileSystemFlags: Longint; i: Integer; VolumeName, FileSystemName: String; ListBox: TListBox;
ProcessorName: string;
Processor, VideoCardPanel, AudioCardPanel, RAMPanel, PageFilePanel: TMemo;
ProcessorNamePanel, VideoCardNamePanel, AudioCardNamePanel, RAMTotalPanel, PageFileTotalPanel: TMemo;
ProcessorMHZ: Cardinal;
StaticText, StaticText2: TNewStaticText;
SysTestPage: TWizardPage;
Text: TNewStaticText;
Memo: TMemo;

procedure GlobalMemoryStatus(var lpBuffer: TMemoryStatus);
external 'GlobalMemoryStatus@kernel32.dll';
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 GetHardDriveFreeSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
function GetHardDriveName(hdd: Integer): PChar;
external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';
function GetHardDriveTotalSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';
function GetHardDrivesCount(): Integer;
external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';
function GetSoundCards(): Integer;
external 'hwc_GetSoundCards@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 GetVidMemLocal(): Integer;
external 'hwc_GetVidMemLocal@files:get_hw_caps.dll stdcall';
function GetSystemMetrics(nIndex: Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

function GetVolumeInformation(PathName, VolumeName: PChar; VolumeNameSize, VolumeSerialNumber, MaxComponentLength, FileSystemFlags: Longint; FileSystemName: PChar; FileSystemNameSize: Longint): Longint;
external 'GetVolumeInformationA@kernel32.dll stdcall';
function DelSp(String: String): String; // Удаление начальных и конечных пробелов
begin while (Pos(' ', String) =1) do Delete(String,1,1) while (Copy(String, Length(String),1)=' ') do Delete(String,Length(String),1) Result:= String end;
function MorG(MB, onlyMB: Integer): String; // Значение в строку объёма Мб/Гб (Гб округлим до 3-ёх знаков после запятой)
begin if (MB < 1000) or (onlyMB > 0) then Result:= IntToStr(MB)+ 'Мб' else Result:= FloatToStr(round(MB/1024*1000)/1000)+ 'Гб' end;
procedure ListBoxOnClick(Sender: TObject);
begin for i:= 0 to ListBox.Items.Count-1 do if ListBox.Selected[i] then WizardForm.DirEdit.Text:= Copy(ListBox.Items[i],1,1) +Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text)); end;

Procedure NextButtonOnClick (Sender: TObject);
begin
WizardForm.NextButton.Enabled:=False
end;

Procedure InitializeWizard();
begin
InitializeSkin //инициализация скина

RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', 'ProcessorNameString', ProcessorName);
RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', '~MHz', ProcessorMHZ);
GetVidMemLocal;
GetSoundCards;
GlobalMemoryStatus(Memory);

SysTestPage:=CreateCustomPage(wpWelcome, 'Аппаратное обеспечение', 'Программа установки обнаружила следующие необходимые компоненты')

StaticText:=TNewStaticText.Create(SysTestPage)
with StaticText do begin
Parent:=SysTestPage.Surface
Caption:='Все компоненты соответствуют требованиям программы.'
Font.Color:=clGreen
Left:=0
Top:=0
AutoSize:=True
end
StaticText2:=TNewStaticText.Create(SysTestPage)
with StaticText2 do begin
Parent:=SysTestPage.Surface
Caption:='Когда Вы будете готовы продолжить установку, нажмите «Далее».'
Font.Color:=clWhite
Left:=0
Top:=320
AutoSize:=True
end
//******************************************* [Процессор] ***************************************************//
Processor:=TMemo.Create(SysTestPage)
with Processor do begin
Text:=' Процессор'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=0
Top:=30
Width:=100
Height:=22
ReadOnly:=True
Color:=$EEEEEE
end
ProcessorNamePanel:=TMemo.Create(SysTestPage)
with ProcessorNamePanel do begin
Text:=' ' + DelSp(ProcessorName) + ' ~' + IntToStr(ProcessorMHZ) + ' MHz'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=104
Top:=30
Width:=313
Height:=22
ReadOnly:=True
Color:=$CCFFCC
end
if ProcessorMHZ < 3800 then //Минимальное значение частоты в MHz
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям программы.'
StaticText.Font.Color:=clRed
ProcessorNamePanel.Color:=$CCCCFF
end
//******************************************* [Видеоадаптер] ***************************************************//
VideoCardPanel:=TMemo.Create(SysTestPage)
with VideoCardPanel do begin
Text:=' Видеоадаптер'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=0
Top:=Processor.Top + 27
Width:=100
Height:=22
ReadOnly:=True
Color:=$EEEEEE
end
VideoCardNamePanel:=TMemo.Create(SysTestPage)
with VideoCardNamePanel do begin
Text:=' ' + DelSp(GetVideoCardName) + ', '+ MorG(round(GetVidMemLocal/oneMB/64)*64,1) + ', ' + IntToStr(GetSystemMetrics(0)) + 'x' +IntToStr(GetSystemMetrics(1));;
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=104
Top:=VideoCardPanel.Top
Width:=313
Height:=22
ReadOnly:=True
Color:=$CCFFCC
end
if round(GetVidMemLocal/oneMB/64)*64 < 128 then //Минимальный объём ОЗУ видеоадаптера в Мб
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям программы.'
StaticText.Font.Color:=clRed
VideoCardNamePanel.Color:=$CCCCFF
end
//******************************************* [Звуковая карта] ***************************************************//
AudioCardPanel:=TMemo.Create(SysTestPage)
with AudioCardPanel do begin
Text:=' Звуковая карта'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=0
Top:=VideoCardPanel.Top + 27
Width:=100
Height:=22
ReadOnly:=True
Color:=$EEEEEE
end
AudioCardNamePanel:=TMemo.Create(SysTestPage)
with AudioCardNamePanel do begin
Text:=' ' + DelSp(GetSoundCardName) + ' (рекомендуется Creative X-Fi)';
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=104
Top:=AudioCardPanel.Top
Width:=313
Height:=22
ReadOnly:=True
Color:=$CCFFCC
end
if GetSoundCards = 0 then
begin
AudioCardNamePanel.Text:=' Устройство не обнаружено'
StaticText.Caption:='Не все компоненты удовлетворяют требованиям программы.'
StaticText.Font.Color:=clRed
end
//******************************************* [ОЗУ] ***************************************************//
RAMPanel:=TMemo.Create(SysTestPage)
with RAMPanel do begin
Text:=' ОЗУ'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=0
Top:=AudioCardPanel.Top + 27
Width:=100
Height:=22
ReadOnly:=True
Color:=$EEEEEE
end
RAMTotalPanel:=TMemo.Create(SysTestPage)
with RAMTotalPanel do begin
Text:=' ' + MorG(round(Memory.dwTotalPhys/oneMB/64)*64,1) + ' всего, ' + MorG(Memory.dwAvailPhys/oneMB,1) +' свободно, ' + MorG((Memory.dwTotalPhys - Memory.dwAvailPhys)/oneMB,1) +' используется'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=104
Top:=RAMPanel.Top
Width:=313
Height:=22
ReadOnly:=True
Color:=$CCFFCC
end
if round(Memory.dwTotalPhys/oneMB/64)*64 < 512 then //Минимальный объём ОЗУ в Мб
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям программы.'
StaticText.Font.Color:=clRed
RAMTotalPanel.Color:=$CCCCFF
end
//******************************************* [Файл подкачки] ***************************************************//
PageFilePanel:=TMemo.Create(SysTestPage)
with PageFilePanel do begin
Text:=' Файл подкачки'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=0
Top:=RAMPanel.Top + 27
Width:=100
Height:=22
ReadOnly:=True
Color:=$EEEEEE
end
PageFileTotalPanel:=TMemo.Create(SysTestPage)
with PageFileTotalPanel do begin
Text:=' '+MorG(GetSystemPage,1)+' всего, ' + MorG((Memory.dwTotalPageFile - Memory.dwAvailPageFile)/oneMB,0) + ' занято системным кэшем'
Alignment:=taLeftJustify
Parent:=SysTestPage.Surface
Left:=104
Top:=PageFilePanel.Top
Width:=313
Height:=22
ReadOnly:=True
Color:=$CCFFCC
end
if GetSystemPage < 768 then //Минимальный объём файла подкачки в Мб
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям программы.'
StaticText.Font.Color:=clRed
PageFileTotalPanel.Color:=$CCCCFF
end

ListBox:=TListBox.Create(WizardForm)
with ListBox do begin
Color:= $EEEEEE; Font.Size:= 10; Font.Name:= 'Tahoma'; Font.Style:=[fsBold]; Parent:= WizardForm.SelectDirPage; OnClick:= @ListBoxOnClick; Top:= WizardForm.DirEdit.Top +WizardForm.DirEdit.Height +ScaleY(30); Width:= WizardForm.DirBrowseButton.Left + WizardForm.DirBrowseButton.Width - WizardForm.DirEdit.Left; Height:= WizardForm.DiskSpaceLabel.Top -Top -9;
FileSystemName:= StringOfChar(' ', BufferLen); VolumeName:= StringOfChar(' ', BufferLen);
for i:=0 to GetHardDrivesCount-1 do begin
GetSpaceOnDisk(GetHardDriveName(i), True, FreeMB, TotalMB); GetVolumeInformation(GetHardDriveName(i), VolumeName, BufferLen-1, VolumeSerialNo, MaxComponentLength, FileSystemFlags, FileSystemName, BufferLen-1);
Items.Add(Copy(Uppercase(GetHardDriveName(i)),0,2)+ Copy(' ',0,14-Length(MorG(TotalMB,0)))+ MorG(TotalMB,0)+ Copy(' всего, ',0,17-Length(MorG(FreeMB,0)))+ MorG(FreeMB,0)+ Copy(' (0',0,4-Length(IntToStr(round(FreeMB/TotalMB*100)))) + FloatToStr(round(FreeMB/TotalMB*100))+ '%) свободно, '+ FileSystemName); end;
end;
with TNewStaticText.Create(WizardForm) do begin Top:= WizardForm.DirEdit.Top +WizardForm.DirEdit.Height +ScaleY(8); Caption:='Список локальных дисков, присутствующих в системе:'; Parent:= WizardForm.SelectDirPage; end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = SysTestPage.ID then
begin
if ProcessorMHZ < 3800 then //Минимальное значение частоты в MHz
begin
WizardForm.NextButton.OnClick:=@NextButtonOnClick
WizardForm.NextButton.Enabled:=False
end
if round(GetVidMemLocal/oneMB/64)*64 < 128 then //Минимальный объём ОЗУ видеоадаптера в Мб
begin
WizardForm.NextButton.OnClick:=@NextButtonOnClick
WizardForm.NextButton.Enabled:=False
end
if GetSoundCards = 0 then
begin
WizardForm.NextButton.OnClick:=@NextButtonOnClick
WizardForm.NextButton.Enabled:=False
end
if round(Memory.dwTotalPhys/oneMB/64)*64 < 512 then //Минимальный объём ОЗУ в Мб
begin
WizardForm.NextButton.OnClick:=@NextButtonOnClick
WizardForm.NextButton.Enabled:=False
end
if GetSystemPage < 768 then //Минимальный объём файла подкачки в Мб
begin
WizardForm.NextButton.OnClick:=@NextButtonOnClick
WizardForm.NextButton.Enabled:=False
end
end
UpdateButton //обновление текста кнопок на страницах
end;
[/more]
Автор: Chuvakstepan
Дата сообщения: 12.06.2007 13:32
У меня текста невидно, из-за того что я использую большой wizardimage на всю ширину.
Насчёт MusicButton - должны помочь скоро
Автор: iTASmania_Inc
Дата сообщения: 12.06.2007 13:44
Sampron
Ну и что! Все равно СПАСИБО!

Добавлено:
Kirgyz
Попробуй этот код: http://data.cod.ru/1127513546

Добавлено:
Редактировал на скорую руку (извини!), поэтому если по краям кнопок будут квадратики, то закрась в супер-мега навороченном графическом чудо-редакторе Paint!

Добавлено:
Sampron

Цитата:
Ну и что! Все равно СПАСИБО!

Нет, просто СПАСИБО, СПАСИБИЩЕ, ведь ты два кода скрестил! Без "ну и что!"! А проблему я банально решил: заблокировал кнопку Назад - и смотрится!
Автор: Sampron
Дата сообщения: 12.06.2007 14:52
iTASmania_Inc
Как мало нужно человеку для счастья
Автор: iTASmania_Inc
Дата сообщения: 12.06.2007 14:59
Sampron
Ага! Почти ничего!
Автор: NightW0lf
Дата сообщения: 12.06.2007 15:01
Kirgyz

Цитата:
Люди, видел когда-то тут выкладывали скин STATE с управлением MP3, где был MusicButton.bmp.

ПЛИЗ дайте такой же код, но для обычного скина, очень надо.

Держи код.
Автор: Kirgyz
Дата сообщения: 12.06.2007 16:10
iTASmania_Inc
NightW0lf
СПАСИБО!
Автор: The Unforgiven
Дата сообщения: 12.06.2007 17:56
Что-то у меня последний билд Inno Script Generator 1.0.2.8 с оффсайта странно себя ведёт
После загрузки продолжает есть все ресурсы процессора, после закрытия - то же самое, и ещё висит секунд 30 в списке процессов...
У всех так же?
Автор: iTASmania_Inc
Дата сообщения: 12.06.2007 19:29
Chuvakstepan
Сделал протопип игрового инсталлятора. Но есть одна неточность: файл exe, который запускает игру, должен находиться в корневой папке игры, а не в подпапках! Иначе надо вручную редактировать скрипт! (Но это к счастью не смертельно, запись дописывается один раз, а не сто )
http://data.cod.ru/1129414090
Автор: Unc1e
Дата сообщения: 12.06.2007 19:33
Вопрос к обладателям Windows Vista. Что нужно написать в скрипте, чтобы добавлялся ярлык к установленной игре в папке «Игры»? Чтобы рейтинг ESRB и индекс производительности правильно отображались.
Автор: iTASmania_Inc
Дата сообщения: 12.06.2007 21:25
Подскажите, пожалуйста, какими параметрами можно задать цвет для RadioButton? В частности интересует: RadioButton с белым текстом, на синем (не важно какой оттенок!!!) фоне! Чё-т не соображу даже!

И ещё ! какой командой закрывается инсталлятор? Чтобы, допустим нажимаю клавишу Назад, а он - хоп и закрылся!

Добавлено:
Плюс ещё малюсюсенький вопросик: как можно инсталлятор удалить по-тихому?
Чтобы не было видно WizardForm, а только один прогресс-бар или вообще ничего видно не было, только сообщение об успешной деинсталляциии-и?
Автор: Sampron
Дата сообщения: 12.06.2007 23:31
iTASmania_Inc

Цитата:
какими параметрами можно задать цвет для RadioButton?

В инно нельзя изменить цвет текста RadioButton и CheckBox.
Автор: iTASmania_Inc
Дата сообщения: 12.06.2007 23:34
Бли-и-ии-и-и-н!
Обидно ;-(

Добавлено:
Sampron
Хотя постой, а как ты сделал то же самое в своих скинах на странице лицензии?
Автор: Sampron
Дата сообщения: 12.06.2007 23:40
iTASmania_Inc
Установил размер RadioButton 17х17 а рядом с ним создал TNewStaticText с обработкой нажатия
Автор: iTASmania_Inc
Дата сообщения: 12.06.2007 23:58
Sampron
А если чуточку поподробнее?
Автор: Sampron
Дата сообщения: 13.06.2007 00:04
iTASmania_Inc
Загляни в файл Skin.iss на страницу лицензии и всё поймёшь
Автор: iTASmania_Inc
Дата сообщения: 13.06.2007 00:09
Sampron
LicenseAcceptedText.OnClick:=@LicenseAcceptedOnClick
Оно?
+
Не знаешь ответа на другие вопросы, особенно последний? Просто хочу в инстплляторе со скином сделать проверку реестра на наличие записи уже установленной программы с созданием новой страницы, где будет либо предложено удалить, либо оставить програму без изменений. Так вот если - удаляю - появляется стандартная форма деинсталлятора, которая смазывает всё впечатление от скина!
Автор: Sampron
Дата сообщения: 13.06.2007 00:13
iTASmania_Inc

Цитата:
LicenseAcceptedText.OnClick:=@LicenseAcceptedOnClick
Оно?

Оно!

Цитата:
Так вот если - удаляю - появляется стандартная форма деинсталлятора, которая смазывает всё впечатление от скина!

используй этот вариант:
http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=640#17
Автор: iTASmania_Inc
Дата сообщения: 13.06.2007 00:20
Sampron
Оперативно! КЛАСС!!!

Добавлено:
Убийственный вопрос - как пользоваться! UninstallForm запустил, он закрылся, а дальше???

Добавлено:
А-а, ещё раз извиняюсь, забыл, как пользоваться как командной строкой! Всё вспомнил!
ещё раз извини за написанный выше бред!
Автор: Sampron
Дата сообщения: 13.06.2007 01:06
iTASmania_Inc
Ну что раздуплил? Запускаешь UninstallForm.bat и всё ресурс пропатчен.
Можешь даже на деинсталлятор пароль повесить
[more=Код]AppName=UninsPassword
AppVerName=UninsPassword
DisableProgramGroupPage=true
DefaultDirName={pf}\UninsPassword

[Code]
function AskPassword(): Boolean;
var
Form: TSetupForm;
OKButton, CancelButton: TButton;
PwdEdit: TPasswordEdit;

begin
Result:=False
Form:=CreateCustomForm()
try
Form.ClientWidth:=256
Form.ClientHeight:=100
Form.Caption:='Введите пароль'
Form.BorderIcons:=[biSystemMenu]
Form.BorderStyle:=bsDialog
Form.Center

OKButton:=TButton.Create(Form)
OKButton.Parent:=Form
OKButton.Width:=75
OKButton.Height:=23
OKButton.Left:=50
OKButton.Top:=67
OKButton.Caption:='OK'
OKButton.ModalResult:=mrOk
OKButton.Default:=true

CancelButton:=TButton.Create(Form)
CancelButton.Parent:=Form
CancelButton.Width:=75
CancelButton.Height:=23
CancelButton.Left:=130
CancelButton.Top:=67
CancelButton.Caption:='Отмена'
CancelButton.ModalResult:=mrCancel
CancelButton.Cancel:=True

PwdEdit:=TPasswordEdit.Create(Form)
PwdEdit.Parent:=Form
PwdEdit.Width:=210
PwdEdit.Height:=23
PwdEdit.Left:=23
PwdEdit.Top:=23

Form.ActiveControl:=PwdEdit

if Form.ShowModal() = mrOk then
begin
Result:=PwdEdit.Text = '12345' //пароль
if not Result then
MsgBox('Неправильный пароль, деинсталляция невозможна.', mbInformation, MB_OK)
end
finally
Form.Free()
end
end;

function InitializeUninstall(): Boolean;
begin
Result:=AskPassword()
end;[/more]
Автор: iTASmania_Inc
Дата сообщения: 13.06.2007 01:17
Sampron
Вот за пароль ваще ГИГАНТСКОЕ СПАСИБИЩЕ!
Я просто очень пароли люблю - меня просто хлебом не корми: дай паролей побольше поставить!
Автор: Sampron
Дата сообщения: 13.06.2007 01:30
iTASmania_Inc

Цитата:
Я просто очень пароли люблю

А я ненавижу!
Автор: iTASmania_Inc
Дата сообщения: 13.06.2007 11:10
Sampron

Цитата:
А я ненавижу!

Кому как!

Собственно в форум
http://data.cod.ru/1131249098
Подскажите, пожалуйста, как в подобном скрипте отменить появление новой страницы (которая при повторной инсталляции читает реестр, обнаруживает запись и предлагает либо удалить программу, либо оставить всё без изменений) после нажатия клавиши Назад со страницы wpLicense, если программа в предыдущей странице уже была удалена?
Автор: Sero
Дата сообщения: 13.06.2007 12:41
iTASmania_Inc
Есть у меня хороший пример:
http://data.cod.ru/1131642314
Автор: iTASmania_Inc
Дата сообщения: 13.06.2007 13:00
Sero

Цитата:
Есть у меня хороший пример

Замечательный примерчик!
Автор: Chuvakstepan
Дата сообщения: 13.06.2007 15:01
Unc1e
По-моему никак, после запуска игры он сам (ярлык) там появляется. Некоторые игры, которые там запустились (на Висте), могут и не появится там
У меня появилось только Counter-Strike и GTA: San Andreas
Автор: iTASmania_Inc
Дата сообщения: 13.06.2007 17:20
Sampron
Не подскажешь, почему у тебя в скинах на странице wpUserInfo, если идёт проверка серийного номера, то клавиша Далее неактивна, зато перейти на другую страницу можно даже без ввода серийника? Эт ты пропустил или специально так задумано?
Автор: Sampron
Дата сообщения: 13.06.2007 18:03
iTASmania_Inc
На этой странице изменялось только цвет и расположение компонентов.
Это наверно из-за анимированых кнопок.
Автор: iTASmania_Inc
Дата сообщения: 13.06.2007 20:54
Sampron

Цитата:
Это наверно из-за анимированых кнопок.

Понятно.
Собственно в форум
Подскажите, пожалуйста, как можно:
1) Задать параметр Allways on top?
2) Отключить кнопку минимализация инсталятора?
Вроде, писали об этом, а найти не могу ;-(

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


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