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

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

Автор: alfonser
Дата сообщения: 13.05.2008 00:20
Sampron
Понятно!
А код в CompiledCode.bin, хрен доберешься!
Автор: AlexDJ666
Дата сообщения: 13.05.2008 05:50
Sampron, спасибо, проблему решил

Ответ был, дествительно, в CheckBox'е как родителе Label, а я все пытался с Label перепрыгнуть сразу на Panel, совершенно игнорируя промежуточный пункт

Проблема решилась добавлением:


Код:
Check101.Width:=196

Label101.Autosize:=True
Label101.WordWrap:=False
Автор: Sampron
Дата сообщения: 13.05.2008 06:38
AlexDJ666

Цитата:
Везде получается или "утопленный" эффект или "выпуклый", а мне нужна просто таблица безо всяких эффектов.

Так используй Memo заместь Panel:

procedure InitializeWizard();
var
Lbl: TLabel;
Memo: TMemo;
begin
Memo:=TMemo.Create(WizardForm)
Memo.SetBounds(0,100,150,100)
Memo.Color:=clBtnFace
Memo.Enabled:=False
Memo.Parent:=WizardForm.SelectDirPage

Lbl:=TLabel.Create(WizardForm)
Lbl.SetBounds(10,10,130,80)
Lbl.AutoSize:=False
Lbl.Wordwrap:=True
Lbl.Caption:='Здесь типо описание всех компонентов'
Lbl.Parent:=Memo
end;
Автор: AlexDJ666
Дата сообщения: 13.05.2008 06:46
Sampron, разобрался, спасибо.
Автор: Sampron
Дата сообщения: 13.05.2008 07:04
AlexDJ666
Замени слова TPanel на TMemo.
Автор: AlexDJ666
Дата сообщения: 13.05.2008 07:07
Sampron, не совсем так, но уже разобрался

Еще вопрос: я делаю блок скриншотов, будет маленькая картинка. Как сделать так, чтобы при нажатии картинки появлялся ее увеличенный вариант в отдельном блоке?
Автор: Sampron
Дата сообщения: 13.05.2008 07:17
AlexDJ666
У битмапа нету обработчиков нажатия, разве что на картинку наложить TLabel и в нём обрабатывать.
Автор: AlexDJ666
Дата сообщения: 13.05.2008 07:26
Sampron, ладно, с этим еще покопаюсь чуть позже
А как в Memo менять толщину и цвет бордюра? Не нашел пока.
Автор: Sampron
Дата сообщения: 13.05.2008 07:49
AlexDJ666

Цитата:
А как в Memo менять толщину и цвет бордюра?

Никак!
Но можно [more=так]
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
OutputDir=.

[_Code]
procedure InitializeWizard();
var
Lbl: TLabel;
Memo: TMemo;
Bmp: TBitmapImage;
begin
Bmp:=TBitmapImage.Create(WizardForm)
Bmp.SetBounds(0,100,160,100)
Bmp.AutoSize:=False
Bmp.BackColor:=clRed
Bmp.Parent:=WizardForm.SelectDirPage

Memo:=TMemo.Create(WizardForm)
Memo.SetBounds(5,105,150,90)
Memo.Color:=clBtnFace
Memo.Enabled:=False
Memo.BorderStyle:=bsNone
Memo.Parent:=WizardForm.SelectDirPage

Lbl:=TLabel.Create(WizardForm)
Lbl.SetBounds(10,10,130,80)
Lbl.AutoSize:=False
Lbl.Wordwrap:=True
Lbl.Caption:='Здесь типо описание всех компонентов'
Lbl.Parent:=Memo
end;

[/more] поизвращятся.
Автор: AlexDJ666
Дата сообщения: 13.05.2008 07:52
Sampron, действительно, извращенный способ, но раз иначе никак, то использую его Спасибо
С ручной рисовкой рамки получилось в точь, как я и хотел

Добавлено:
firefly2005, что-то не могу разобраться с компонентами

Sampron, может быть ты подскажешь или пример дашь, как связать Компоненты, Файлы и Типы со списками, которые я "рисую" на новых страницах в ListBox'ах?

Или как это можно сделать максимально проще?

Автор: Diawer
Дата сообщения: 13.05.2008 17:36
Не получается слить вместе CurUninstallStepChanged в [more=Коде][CustomMessages]
english.Text1=Are you want remove program settings?
english.Text2=TranslateIt! Uninstall
russian.Text1=Вы хотите удалить настройки программы?
russian.Text2=Удаление TranslateIt!

[Files]
Source: ISTask.dll; DestDir: {app}

[Code]
function KillTaskA(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly';

function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
begin
UnloadDLL(ExpandConstant('{app}\ISTask.dll'));
end;
end;

procedure InitializeUninstallProgressForm();
begin
if RunTaskA('Translateit.exe', false) then
KillTaskA('Translateit.exe')
else
Exit;
end;

const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;

function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt')) then
if MessageBox(0, ExpandConstant ('{cm:Text1}'),
ExpandConstant ('{cm:Text2}'), MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt'), True, True, True);
end;
end; [/more]
Автор: Chanka
Дата сообщения: 13.05.2008 18:00
Diawer
[more=Так??][Code]
const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;

function KillTaskA(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly';

function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';

function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then begin
UnloadDLL(ExpandConstant('{app}\ISTask.dll'));
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt')) then
if MessageBox(0, ExpandConstant ('{cm:Text1}'),
ExpandConstant ('{cm:Text2}'), MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt'), True, True, True);
end;
end;
end;

procedure InitializeUninstallProgressForm();
begin
if RunTaskA('Translateit.exe', false) then
KillTaskA('Translateit.exe')
else
Exit;
end;[/more]
Автор: geranik
Дата сообщения: 13.05.2008 19:11
После проверки размера получилась
[more=вот]
[Setup]
AppName=Inno
VersionInfoVersion=1.0
AppVerName=Inno 1.0
DefaultDirName={code:GetTDPath}

[code]
function GetLogicalDrives: DWord; external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(nDrive: String): Longint; external 'GetDriveTypeA@kernel32.dll stdcall';


function GetTDPath(f: String): String;
var FreeMB, TotalMB: Cardinal; maxdisk: string;
Path, max,n: integer;

begin
if RegvalueExists(HKLM, 'SOFTWARE\1','path') then
begin
RegQueryStringValue(HKLM, 'SOFTWARE\1','path', f );
result:=(f);
end else

begin
for n:= 1 to 31 do
    if (GetLogicalDrives and (1 shl n)) > 0 then
        if (GetDriveType(Chr(ord('A') + n) +':\') = 2) or (GetDriveType(Chr(ord('A') + n) +':\') = 3) then
            if GetSpaceOnDisk(Chr(ord('A') + n) +':\', True, FreeMB, TotalMB) then
            begin
         Path:= TotalMB;
if path > max then
maxdisk:=(Chr(ord('A') + n) +':\');
end;
Result:=maxdisk+ 'soft'
end;
end;


[/more] папка по умолчанию, на большой диск.
Автор: RedGeek
Дата сообщения: 13.05.2008 21:36
Как перед запуском процесса копирования запустить батник? Мне нужно выключить саму программу перед установкой новой версии.
Автор: serg_aka_lain
Дата сообщения: 13.05.2008 23:00
RedGeek


Цитата:
Мне нужно выключить саму программу перед установкой новой версии.


При инициализации установки, только если нужно убить процесс можно и без батника
Exec('taskkill', '/f /im process.exe', '', SW_Hide, ewWaitUntilTerminated, ErrorCode);
так примерно.
Автор: firefly2005
Дата сообщения: 13.05.2008 23:56
AlexDJ666
я встречал типа ActiveBorder и InactiveBorder это рамки-бордюры активного и неактивного окон.
Я немного пробовал, не понял как их использовать в INno. Может поддержка их ещё не реализована.


Добавлено:
Diawer
я же тебе вроде писал:
procedure CurUninstallStepChanged
begin
CurUninstallStep
..................................
begin
CurUninstallStep
..................................
end;
end;


или неполучается?
Автор: MogilShik2007
Дата сообщения: 14.05.2008 06:18
Всем спасибо за ответы

Вот такой вопрос - как в ярлыке прописывать дополнительные значения?
Например когда нажимаем на ярлык правой кнопкой видим, ну на пример:
"C:\Program Files\CheMaxRus\chemax.exe" , так вот как сделать чтобы было
"C:\Program Files\CheMaxRus\chemax.exe" -consol или
"C:\Program Files\CheMaxRus\chemax.exe" - cheat
Автор: RedGeek
Дата сообщения: 14.05.2008 06:56

Цитата:
При инициализации установки, только если нужно убить процесс можно и без батника
Exec('taskkill', '/f /im process.exe', '', SW_Hide, ewWaitUntilTerminated, ErrorCode);
так примерно.

Можно пример, как это при инициализации установки.
Автор: Diawer
Дата сообщения: 14.05.2008 07:00
Сначала не разобрался, но сейчас всё впорядке.
Всем большое спасибо.
Автор: Kutsenko
Дата сообщения: 14.05.2008 14:04
2 MogilShik2007
[Icons]
Name: "{group}\Painkiller - Передозировка"; Filename: "{app}\bin\Overdose.exe"; Parameters: "-lscripts LZcripts.pak"; WorkingDir: "{app}\bin";
Автор: serg_aka_lain
Дата сообщения: 14.05.2008 19:14
RedGeek

Цитата:
как это при инициализации установки.



function InitializeSetup(): Boolean;
var ErrorCode: Integer;
begin
Exec('taskkill', '/f /im process.exe', '', SW_Hide, ewWaitUntilTerminated, ErrorCode);
Result := True;
end;

если процесс запущен(имеется в tasklist),то он будет закрыт.,
Ну или используй ISTask.dll (RunTask, KillTask).
Автор: braunberg
Дата сообщения: 14.05.2008 21:41
Никто мне не подскажет, как убрать подсветку с ярлыков в группе? Спасибо.
Автор: zeroandruxa
Дата сообщения: 14.05.2008 22:25
Народ где взять ISTask.dll?
Автор: braunberg
Дата сообщения: 14.05.2008 22:32
2 zeroandruxa
В шапке, в руководстве Kindly
Автор: serg_aka_lain
Дата сообщения: 14.05.2008 22:35
zeroandruxa

На странице 77 есть ссылка (только на ISTask.dll) на рапиде.
Автор: abasov
Дата сообщения: 15.05.2008 07:22
Возможно ли протестировать соединение с инетом до установки, к примеру telnet'ом: telnet ya.ru 80 ?
Автор: AlexDJ666
Дата сообщения: 15.05.2008 08:25
Так кто-нибудь все-таки подскажет, как в Panel или Memo делать список компонентов, типы установки и связать все это с файлами?
Автор: MogilShik2007
Дата сообщения: 15.05.2008 08:58
Kutsenko спасибо
Автор: alfonser
Дата сообщения: 15.05.2008 10:37
При сборке выдает " Out of memory"! Маленькая оперативка или файл подкачки?
Процессор 3 ГГц, память 1,5 Гб

Код: Compression=lzma/ultra
SolidCompression=true
DiskSpanning=true
DiskSliceSize=730000000
SlicesPerDisk=6
InternalCompressLevel=max
Автор: EagleSH
Дата сообщения: 15.05.2008 13:37

Цитата:
Decompression (dictionary size) Compression
fast (worst) 32 KB 3 MB
normal 2 MB 26 MB
max (default) 8 MB 95 MB
ultra 32 MB 372 MB
ultra64 (best) 64 MB 676 MB

господа, можно увеличить dictionary size какимто образом? хотябы до 256 ну лили в моём случае 384 былобы круто.


господа, никто не в курсе походу?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Поиск в WinDjView


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