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

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

Автор: boss911
Дата сообщения: 10.05.2007 17:57
Sero

Точно, работает! Я просто пробывал в скине "Slate" менять значение и там чего-то не срабаитывало, а добавил твой код на 'BevelLabel' и сработало!
Автор: Genri
Дата сообщения: 10.05.2007 17:57
boss911 -- удобнее в 16-ричном виде. Например:
Font.Color:=$0000FF00;

т.е. в общем случае $00BBGGRR
где:
BB - уровень синего (от 00 до FF)
GG - уровень зеленого (от 00 до FF)
RR - уровень красного (от 00 до FF)
Автор: boss911
Дата сообщения: 10.05.2007 18:14
Genri

Оно то может и удобней, но наверно не для меня, так как не знаю, не имею инструмента, где выводить мне нужный цвет в 16-ричном виде, а так я себе получил желаемый цвет в html виде и потом его перегнал в BGR. Иля я, наверно, что-то не понял!
Автор: Sampron
Дата сообщения: 10.05.2007 18:40
boss911
В ISTool определяй нужный тебе цвет.
Автор: Genri
Дата сообщения: 10.05.2007 18:41
boss911
Цитата:
я себе получил желаемый цвет в html виде и потом его перегнал в BGR
-- издержки профессионализма Кому-то проще написать хтмл страницу, чтобы посмотреть цвет, а кто-то пользуется Paint - Colors - Edit Colors - Define Custom Colors плюс виндовый калькулятор для перевода в hex
Автор: Sampron
Дата сообщения: 10.05.2007 18:57

Цитата:
плюс виндовый калькулятор для перевода в hex

хм... впервые слышу, хотелось бы знать как?
Автор: boss911
Дата сообщения: 10.05.2007 19:44
Genri

Цитата:
Кому-то проще написать хтмл страницу

Зачем писать, она уже есть, вот почему удобно!

Цитата:
плюс виндовый калькулятор для перевода в hex

Я за 6 лет работы за компом, наверно раз 10 его открывал и даже не знаю о чем ты! Рассказывай!

Sampron

Цитата:
В ISTool определяй нужный тебе цвет

Это как же, тоже в первые слышу!?
Автор: Sampron
Дата сообщения: 10.05.2007 20:12
boss911
Options\Внешний вид\Цвет фона\Custom и выбирай нужный тебе цвет.
Автор: boss911
Дата сообщения: 10.05.2007 22:06
Sampron

А я, что-то по началу не додумался, просто эта вкладка для меня была всегда не актуальна!
Автор: Genri
Дата сообщения: 10.05.2007 23:15
Sampron
boss911
Calc.exe - View - Scientific
Дальше, думаю, разберетесь
Автор: boss911
Дата сообщения: 11.05.2007 00:18
Genri

Ага, ну "очень" информативно! Ладно, проехали!
Автор: marat shakirov
Дата сообщения: 11.05.2007 08:45
Доброго утра.

только только осваиваю Inno Setup. Возникла следующая проблема - мне необходимо на странице выбора паки установки сделать выбор только диска установки (структура устанавливаемых компонентов очень строга, допустимо лишь определять на какой диск все это будет ставиться). Подскажите пожалуйста, как это можно реализовать.

Заранее спасибо.
Автор: maxdddca123
Дата сообщения: 11.05.2007 12:23
Genri

Цитата:
maxdddca123 -- Inno Setup Help раздел Inno Setup Preprocessor

Веришь нет, не могу найти, весь мануаль изалазил, ну нет там такого... Дай ссылку плиз на тот мануал, где есть... Ткни носом так сказать В тех которые в шапке не нашёл !
Автор: Genri
Дата сообщения: 11.05.2007 13:30
maxdddca123 -- этот раздел появляется когда инсталлируется Inno Setup QuickStart Pack, который включает в себя Inno Setup Preprocessor
Inno Setup QuickStart Pack можно взять здесь
Автор: NightW0lf
Дата сообщения: 11.05.2007 21:59
На придыдуших страницах я увидел код, который указывает дату и время компиляции setup.exe в мессаге, но вот хотелось бы так сделать.

Заранее благодарю!
Автор: Genri
Дата сообщения: 11.05.2007 23:11
NightW0lf -- принцип тот же:

Код:
#expr Exec("cmd /c echo #define DateTime '%DATE% at %TIME%' > data.iss")
#include "data.iss"

#define MyAppVerName "My Program version 1.5 built on " + DateTime

[Setup]
AppName=My Program
AppVerName={#MyAppVerName}
DefaultDirName={pf}\My Program

[Messages]
BeveledLabel={#MyAppVerName}

[Files]
Source: Files\*; DestDir: {app}
Автор: iTASmania_Inc
Дата сообщения: 11.05.2007 23:15
Никто не подскажет, как сделать так, чтобы при наведении курсора на командную кнопку (Далее >, Отмена) он менялся на указательный палец (как будто я выбираю ссылку)?

Добавлено:
И ещё: есть такой скрипт для СТАЛКЕРА, где описывалось как через DelSp удалять табуляцию и пробелы в начале строки! А если ПОСЛЕ имени видеокарты идёт лишний пробел, то как его убрать? Пробовал через тот же самый DelSp - не получилось? Или там другая функция?
Автор: NightW0lf
Дата сообщения: 11.05.2007 23:28
Genri
Спасибо!
А можно сделать это же через LangLib.iss и без милисекунд и в формате AM\PM т.е. в 12 часавом режиме.
Автор: Sampron
Дата сообщения: 12.05.2007 00:07
iTASmania_Inc

Цитата:
как сделать так, чтобы при наведении курсора на командную кнопку (Далее >, Отмена) он менялся на указательный палец


[Code]
Procedure InitializeWizard();
begin
with WizardForm do begin
BackButton.Cursor:=crHand
NextButton.Cursor:=crHand
CancelButton.Cursor:=crHand
DirBrowseButton.Cursor:=crHand
GroupBrowseButton.Cursor:=crHand
end
end;

Автор: penok
Дата сообщения: 12.05.2007 14:53
Уважаемый автор, скина "Blue", а можешь ли ты добавить несколько функций в код-исходника таких как
1) вывод лицензии
2) вывод редми
3) вывод информации о пользователи (пользователь/компания)
4) ввод серийного номера с иметацией проверки
5) проверка и вывода информации о операционно системе, браузере, и т.п.
6) проигрывание при инстиляции мелодии в формате .s3m (тока без всяких кнопок, что бы просто играла без остановки до завершения инстиляции)
7) слайд шоу рисунков, за окном инстилятора
8) на инстиляшки в левом углу (там вроде место есть) информацию об авторе, типа (c) Моя компания. Все права защищены
9) Кнопки перевести на русский
10) вывод файла информации по завершении установки

Пожалуйста, если не трудно с пояснениями, буду очень признателен, да и не я только. В програмировании я полный нуль.Все эти функции я просто
слепить в один не могу. Сразу дизайн пропадает.
Автор: iTASmania_Inc
Дата сообщения: 12.05.2007 16:45
Sampron
Спасибо!
Автор: Genri
Дата сообщения: 12.05.2007 20:40
NightW0lf

Цитата:
А можно сделать это же через LangLib.iss и без милисекунд и в формате AM\PM т.е. в 12 часавом режиме.


LangLib.iss больше как справочник, чем по необходимости. А пример форматирования даты/времени [more=здесь]

Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program

[Files]
Source: Files\*; DestDir: {app}

[Messages]
BeveledLabel=My Program version 1.5

[Code]
type
TFileTime = record
lowdatatime: longint;
highdatatime: longint;
end;

TSystemTime = record
wYear : Word;
wMonth : Word;
wDayOfWeek : Word;
wDay : Word;
wHour : Word;
wMinute : Word;
wSecond : Word;
wMilliseconds : Word;
end;

function GetFileTime(hfile: longint; var lpcreation,lpaccess,lpwrite:TFileTime): boolean;
external 'GetFileTime@kernel32.dll stdcall';

function FileTimeToSystemTime(var tftm: TFileTime; var systm: TSystemTime): boolean;
external 'FileTimeToSystemTime@kernel32.dll stdcall';

function FileTimeToLocalFileTime( utct: TFileTime; var loct: TFileTime): boolean;
external 'FileTimeToLocalFileTime@kernel32.dll stdcall';

function GetDateFormat(Locale: Integer;dwFlags: LongInt;
var lpDate: TSystemTime; lpFormat: PChar; lpDateStr: String;
cchDate: Integer): Integer; external
'GetDateFormatA@kernel32.dll';

function GetTimeFormat(Locale: Integer;dwFlags: LongInt;
var lpTime: TSystemTime;lpFormat: PChar;lpTimeStr: String;
cchDate: Integer): Integer; external
'GetTimeFormatA@kernel32.dll';

var
strFile: string;
strCreTime: string;
strModTime: string;
strAccessTime: string;

function FormattedTime(t: TSystemTime) : String;
var
s, fmt: String;
begin
fmt := StringOfChar(' ',64);
GetDateFormat( 0 , 0, t, 'yyyy-MM-dd' , fmt ,63);
fmt := CastIntegerToString(CastStringToInteger(fmt));

s := ' -- built on ' + fmt;

fmt := StringOfChar(' ',64);
GetTimeFormat(0, 0, t , 'hh:mm:ss tt' , fmt ,63);
fmt := CastIntegerToString(CastStringToInteger(fmt));

s := s + ' at ' + fmt;

Result := s;
end;

function GetFileSysTime(nomef: String ; var stime: String; idx : Integer ): TSystemTime;
Var
fs: TFileStream;
risul: TSystemTime;
creat, access, write, local: TFileTime;
Begin
fs := TFileStream.Create(nomef,fmOpenRead);
GetFileTime(fs.handle,creat,access,write);
fs.Free;
Case idx of
1: FileTimeToLocalFileTime(creat,local);
2: FileTimeToLocalFileTime(access,local);
3: FileTimeToLocalFileTime(write,local);
end;
FileTimeToSystemTime(local,risul);
stime := FormattedTime(risul);
Result := risul;
End;

procedure InitializeWizard();
var
filename, s : String;
t : TSystemTime;
begin
filename:= ExpandConstant('{srcexe}');
strFile:= filename;
t := GetFileSysTime(filename, s, 1 );
strCreTime:= s;
t := GetFileSysTime(filename, s, 2 );
strAccessTime:= s;
t := GetFileSysTime(filename, s, 3 );
strModTime:= s;

WizardForm.BeveledLabel.Caption:= WizardForm.BeveledLabel.Caption + strCreTime;
end;
Автор: NightW0lf
Дата сообщения: 12.05.2007 21:11
Genri
Еще раз спасибо!
Но только вот еще можно чтобы было подписанно типа 10:05:15 PM [если вечер] или 10:05:15 AM [если день].
Автор: Sampron
Дата сообщения: 12.05.2007 21:41
Транспарент можно сделать только через TLabel

[Code]
var
TransparentLabel: TLabel;

procedure InitializeWizard();
begin
TransparentLabel:=TLabel.Create(WizardForm);
with TransparentLabel do begin
Left:=30
Top:=140
Autosize:=true
Font.Size:=12
Font.Style:=[fsBold]
Font.Color:=clWhite
Transparent:=True
Caption:='Transparent'
Parent:=WizardForm.WelcomePage
end
end;
Автор: Genri
Дата сообщения: 12.05.2007 21:58
NightW0lf -- а что, если пример скомпилить AM/PM не показывает ? Должно быть.
В строке:
GetTimeFormat(0, 0, t , 'hh:mm:ss tt' , fmt ,63);
tt - Многосимвольный маркер (AM или PM)

В общем случае:
h Часы без ведущего нуля в 12-часовом формате
Автор: NightW0lf
Дата сообщения: 12.05.2007 22:16
Genri
Все спасибо работает!
Автор: Nagual
Дата сообщения: 12.05.2007 22:31
Genri
как бы прикрутить к коду времени %time:~0,8% вместо %time%
при замене выдает ошибку, что, мол, не найден файл data.iss
Автор: Genri
Дата сообщения: 12.05.2007 22:42
Nagual

Код:
#expr Exec("cmd ", "/c \
echo #define CompileDay %DATE:~0,2% > data.iss & \
echo #define CompileMonth %DATE:~3,2% >> data.iss & \
echo #define CompileYear %DATE:~6,4% >> data.iss & \
echo #define CompileHour %TIME:~0,2% >> data.iss & \
echo #define CompileMin %TIME:~3,2% >> data.iss & \
echo #define CompileSec %TIME:~6,2% >> data.iss")

#include "data.iss"

#define MyAppVerName "My Program version 1.5"

[Setup]
AppName=My Program
AppVerName={#MyAppVerName}
DefaultDirName={pf}\My Program

[Files]
Source: Files\*; DestDir: {app}
Автор: Nagual
Дата сообщения: 12.05.2007 22:55
Genri
у мя не пашет, никакого времени нет xpsp2ru
Автор: Genri
Дата сообщения: 12.05.2007 22:57
если надо только убрать миллисекунды, то:
#expr Exec("cmd ", "/c echo #define DateTime '%DATE% %TIME:~0,8%' > data.iss")

Добавлено:
Nagual -- если есть проблемы, закомментируй строку #include "data.iss", скомпили и посмотри что в файле data.iss

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

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


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