PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 [119] 120 121 122 123 124 125

Dodakaedr
22-02-2014, 22:36
vint56, тоисть чтобы картинка оставалась а текст менялся...

Nordek
22-02-2014, 22:42
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;=

vint56
22-02-2014, 22:47
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; но при этом чтобы поменялся текст. Можно такое сделать?

vint56
22-02-2014, 23:12
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 потому мне было проше »
Теперь именно то что мне нужно)) Спс!

vint56
22-02-2014, 23:23
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 не помогает.

borune
23-02-2014, 16:06
день добрый!

подскажите пожалуйста, как работать с файлами и папками? мне нужно при деинсталляции удалять созданные в процессе работы программы файлы и папки, как это делать, я пробовал через textfile - ругаецца(

Dodakaedr
23-02-2014, 16:25
borune, [UninstallDelete]
Type: filesandordirs; Name: "путь к папке"

Type (Обязательно)
Указывает тип удаляемого объекта. Может быть следующим:

files
Параметр Name указывает имя отдельного файла или маску.

filesandordirs
Функции те же, что и у files за исключением, что также может задавать имя папки, в этом случае удаляются все ее файлы и подпапки.

dirifempty
При использовании этого типа параметр Name должен задавать папку, но не содержать масок. Папка будет удалена только если она пустая.

borune
23-02-2014, 19:58
[UninstallDelete] Type: filesandordirs; Name: "путь к папке" »
Cпасибо, но мне нужно удалять из раздела [code]. Сделал чере DelTree.

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

Нашел, как задавать иконку программе через IconFilename, но он во-первых требует внешнего файла с расширением .ico, а во-вторых делает у всех окон одинаковые иконки.

innot20
23-02-2014, 22:51
Здравствуйте, подскажите пожалуйста как создать копию папки

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

Nordek
25-02-2014, 09:01
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?

Nordek
25-02-2014, 13:29
У кого больше преимущества HKCR или HKLM? »
HKCR - HKEY_CLASSES_ROOT: Действует как для текущего пользователя, так и для всех.
HKCU - HKEY_CURRENT_USER: Для текущего пользователя
HKLM - HKEY_LOCAL_MACHINE: Для всех пользователей

Что касается HKEY_CLASSES_ROOT - если что пойдёт не так, то можно и вовсе значительно угробить ассоциацию (Проклинать будут долго).




© OSzone.net 2001-2012