Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]
Dodakaedr
22-02-2014, 22:36
vint56, тоисть чтобы картинка оставалась а текст менялся...
vint56, Код, лучше захватывать в тег - при вставке кода в скрипт имеются пробелы. А у тех кто использует ISTool, будут проблемы - пробелы превращаются в знак равенства "=":
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]=
DestName: "WizardForm.BitmapImage1.bmp"; Source: "E:\Картинки\mostkorol2_1024.bmp"; Flags: dontcopy solidbreak=
[code]=
var=
PageNameLabel, PageDescriptionLabel: TLabel;=
MainPanel: TPanel;=
BitmapImage: TBitmapImage;=
procedure InitializeWizard();=
begin=
WizardForm.MainPanel.Hide;=
MainPanel :=TPanel.Create(WizardForm);
with MainPanel do=
begin=
Parent :=WizardForm.InnerPage;
Left :=ScaleX(0);
Top :=ScaleY(0);
Width :=ScaleX(499);
Height :=ScaleY(57);
BevelOuter :=bvNone;
end;=
BitmapImage :=TBitmapImage.Create(WizardForm);
with BitmapImage do=
begin=
Parent :=MainPanel;
Left :=ScaleX(0);
Top :=ScaleY(0);
Width :=ScaleX(497);
Height :=ScaleY(57);
ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');=
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));=
end;=
PageNameLabel:=TLabel.Create(WizardForm);
with PageNameLabel do begin=
AutoSize:=False;
SetBounds(ScaleX(24), ScaleY(10), ScaleX(400), ScaleY(30));=
Transparent:=True;
Font.Name:='Georgia';
Font.Size:=8;
Font.Color:=clWhite;;
Parent:=MainPanel;
end;=
PageDescriptionLabel:=TLabel.Create(WizardForm);
with PageDescriptionLabel do begin=
AutoSize:=False;
SetBounds(ScaleX(40), ScaleY(26), ScaleX(389), ScaleY(50));=
Wordwrap:=True;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:=8;
Font.Color:=clWhite;;
Parent:=MainPanel;
end;=
end;=
procedure CurPageChanged(CurPageID: Integer);=
begin=
PageNameLabel.Caption:=WizardForm.PageNameLabel.Caption
PageDescriptionLabel.Caption:=WizardForm.PageDescriptionLabel.Caption
end;=
Nordek Понял учту
Dodakaedr
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]
DestName: "WizardForm.BitmapImage1.bmp"; Source: "E:\Картинки\mostkorol2_1024.bmp"; Flags: dontcopy solidbreak
[code ]
var
PageNameLabel, PageDescriptionLabel: TLabel;
MainPanel: TPanel;
BitmapImage: TBitmapImage;
procedure InitializeWizard();
begin
WizardForm.MainPanel.Hide;
MainPanel := TPanel.Create(WizardForm);
with MainPanel do
begin
Parent := WizardForm.InnerPage;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(499);
Height := ScaleY(57);
BevelOuter := bvNone;
end;
BitmapImage := TBitmapImage.Create(WizardForm);
with BitmapImage do
begin
Parent := MainPanel;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(497);
Height := ScaleY(57);
ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
end;
PageNameLabel:=TLabel.Create(WizardForm);
with PageNameLabel do begin
AutoSize:=False;
SetBounds(ScaleX(24), ScaleY(10), ScaleX(400), ScaleY(30));
Transparent:=True;
Font.Name:= 'Georgia';
Font.Size:= 8;
Font.Color:=clWhite;;
Parent:=MainPanel;
end;
PageDescriptionLabel:=TLabel.Create(WizardForm);
with PageDescriptionLabel do begin
AutoSize:=False;
SetBounds(ScaleX(40), ScaleY(26), ScaleX(389), ScaleY(50));
Wordwrap:= True;
Transparent:=True;
Font.Name:= 'Georgia';
Font.Size:= 8;
Font.Color:=clWhite;;
Parent:=MainPanel;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption:=WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:=WizardForm.PageDescriptionLabel.Caption;
case CurPageID of
wpSelectDir:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpSelectComponents:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpSelectProgramGroup:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpSelectTasks:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpReady:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpPreparing:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpInstalling:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpInfoAfter:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
end;
end;
Dodakaedr
22-02-2014, 22:52
vint56, Огромное спасибо!!!
vint56, а обязательно надо менять полностью main panel?
Dodakaedr
22-02-2014, 23:12
vint56, надо чтобы сохранялась процедура procedure RedesignWizardForm; но при этом чтобы поменялся текст. Можно такое сделать?
Dodakaedr нет но тогда придётся скрывать другие элементы что находятся на стандартном WizardForm.MainPanel потому мне было проше
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]
DestName: "WizardForm.BitmapImage1.bmp"; Source: "E:\Картинки\mostkorol2_1024.bmp"; Flags: dontcopy solidbreak
[code ]
var
PageNameLabel, PageDescriptionLabel: TLabel;
BitmapImage: TBitmapImage;
procedure InitializeWizard();
begin
RedesignWizardForm;// Вот так
BitmapImage := TBitmapImage.Create(WizardForm);
with BitmapImage do
begin
Parent := WizardForm.MainPanel;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(497);
Height := ScaleY(57);
ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
end;
PageNameLabel:=TLabel.Create(WizardForm);
with PageNameLabel do begin
AutoSize:=False;
SetBounds(ScaleX(24), ScaleY(10), ScaleX(400), ScaleY(30));
Transparent:=True;
Font.Name:= 'Georgia';
Font.Size:= 8;
Font.Color:=clWhite;;
Parent:=WizardForm.MainPanel;
end;
PageDescriptionLabel:=TLabel.Create(WizardForm);
with PageDescriptionLabel do begin
AutoSize:=False;
SetBounds(ScaleX(40), ScaleY(26), ScaleX(389), ScaleY(50));
Wordwrap:= True;
Transparent:=True;
Font.Name:= 'Georgia';
Font.Size:= 8;
Font.Color:=clWhite;;
Parent:=WizardForm.MainPanel;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.WizardSmallBitmapImage.Hide;
PageNameLabel.Caption:=WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:=WizardForm.PageDescriptionLabel.Caption;
case CurPageID of
wpSelectDir:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpSelectComponents:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpSelectProgramGroup:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpSelectTasks:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpReady:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpPreparing:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpInstalling:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
wpInfoAfter:
begin
PageNameLabel.Caption:='Мой текст';
PageDescriptionLabel.Caption:='Мой текст';
end;
end;
end;
habib2302
22-02-2014, 23:21
как скрыть FilenameLabel
http://i.imgur.com/J3FnkJC.jpg (http://i.imgur.com/lh2oovF.png)
Dodakaedr
22-02-2014, 23:22
нет но тогда придётся скрывать другие элементы что находятся на стандартном WizardForm.MainPanel потому мне было проше »
Теперь именно то что мне нужно)) Спс!
habib2302
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.FilenameLabel.Hide;
end;
Dodakaedr
23-02-2014, 01:45
Правильно записано?
Root: HKLM; SubKey: SOFTWARE\Classes\Directory\shell\Kallisto.enqueue\command; ValueType: string; ValueData: "{app}\{#MyAppExeName} /add ""%1"""; Flags: uninsdeletevalue uninsdeletekeyifempty
Dodakaedr
23-02-2014, 02:45
Можно как-то сделать чтобы восстанавливалась предыдущая ассоциация файлов после удаления моей программы?
Как это исправить?
http://savepic.org/5106758.jpg
Пробовал Permissions: users-full и Permissions: users-modify не помогает.
день добрый!
подскажите пожалуйста, как работать с файлами и папками? мне нужно при деинсталляции удалять созданные в процессе работы программы файлы и папки, как это делать, я пробовал через textfile - ругаецца(
Dodakaedr
23-02-2014, 16:25
borune, [UninstallDelete]
Type: filesandordirs; Name: "путь к папке"
Type (Обязательно)
Указывает тип удаляемого объекта. Может быть следующим:
files
Параметр Name указывает имя отдельного файла или маску.
filesandordirs
Функции те же, что и у files за исключением, что также может задавать имя папки, в этом случае удаляются все ее файлы и подпапки.
dirifempty
При использовании этого типа параметр Name должен задавать папку, но не содержать масок. Папка будет удалена только если она пустая.
[UninstallDelete] Type: filesandordirs; Name: "путь к папке" »
Cпасибо, но мне нужно удалять из раздела [code]. Сделал чере DelTree.
Вопрос еще такой. Насчет значков ярлыков. Вот у меня есть программа, состоящая из нескольких окон. У каждого окна своя пиктограмма (изображение на панели задач). Пиктограммы вшиты в экзешник. Но при запуске почему-то значки сменяются на стандартные виндовзные. Как сделать так, чтоб они не изменялись?
Нашел, как задавать иконку программе через IconFilename, но он во-первых требует внешнего файла с расширением .ico, а во-вторых делает у всех окон одинаковые иконки.
Здравствуйте, подскажите пожалуйста как создать копию папки
Dodakaedr
24-02-2014, 23:10
Почему №1 ассоциирует, а №2 нет? Какая между ними разница?
№1)
http://savepic.org/5067725.jpg
№2
http://savepic.org/5048269.jpg
Gnom_aka_Lexander
25-02-2014, 08:16
Dodakaedr, либо в первой строчке valuedata указать mp3file, либо в остальных обрабатывать Kallisto.mp3.
И да, первая тоже не должна ассоциировать, если нигде больше не определяется расширение .mp3
Dodakaedr, В разделе HKEY_CLASSES_ROOT лучше не менять ассоциацию.
Лучше так:
[Registry]
Root: HKCU; Subkey: Software\Classes\.mp3; ValueType: string; ValueName: ; ValueData: Kallisto.enqueue; Flags: uninsdeletevalue
Root: HKCU; Subkey: Software\Classes\Kallisto.enqueue\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Kallisto.dll,2; Flags: uninsdeletevalue
Root: HKCU; Subkey: Software\Classes\Kallisto.enqueue\shell\open\command; ValueType: string; ValueName: ; ValueData: "{app}\Kallisto.exe ""%1"""; Flags: uninsdeletevalue
Или так:
[Registry]
Root: HKLM; Subkey: Software\Classes\.mp3; ValueType: string; ValueName: ; ValueData: Kallisto.enqueue; Flags: uninsdeletevalue
Root: HKLM; Subkey: Software\Classes\Kallisto.enqueue\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Kallisto.dll,2; Flags: uninsdeletevalue
Root: HKLM; Subkey: Software\Classes\Kallisto.enqueue\shell\open\command; ValueType: string; ValueName: ; ValueData: "{app}\Kallisto.exe ""%1"""; Flags: uninsdeletevalue
P.S
Dodakaedr
25-02-2014, 12:25
Gnom_aka_Lexander, да, разобрался ошибка была в значении kallisto.mp3
Nordek,У кого больше преимущества HKCR или HKLM?
У кого больше преимущества HKCR или HKLM? »
HKCR - HKEY_CLASSES_ROOT: Действует как для текущего пользователя, так и для всех.
HKCU - HKEY_CURRENT_USER: Для текущего пользователя
HKLM - HKEY_LOCAL_MACHINE: Для всех пользователей
Что касается HKEY_CLASSES_ROOT - если что пойдёт не так, то можно и вовсе значительно угробить ассоциацию (Проклинать будут долго).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC