Войти

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


Страниц : 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

Ivan_009
05-04-2014, 18:37
Кстати в обзоре папок ползунок не робит...

http://rghost.ru/53794582

Stealthmax
05-04-2014, 18:49
Нужно именно в отдельное окно. Чтобы только в этом окне появлялся текст. Не могли бы вы скинуть образец? »

{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
HintMemo: TNewMemo;
ComponentRadioButton: TNewRadioButton;
ComponentRadioButton2: TNewRadioButton;

procedure WizardBitmapImageMouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer); forward;
procedure WizardBitmapImageMouseLeave(Sender: TObject); forward;
procedure ComponentRadioButtonClick(Sender: TObject); forward;
procedure ComponentRadioButtonMouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer); forward;
procedure ComponentRadioButton2Click(Sender: TObject); forward;
procedure ComponentRadioButton2MouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer); forward;

procedure RedesignWizardForm;
begin
with WizardForm.WizardBitmapImage do
begin
OnMouseMove := @WizardBitmapImageMouseMove;
OnMouseLeave := @WizardBitmapImageMouseLeave;
end;

with WizardForm.WelcomeLabel1 do
begin
Hint := 'Это установка программы на ваш ПК';
ParentShowHint := False;
ShowHint := True;
end;

{ HintMemo }
HintMemo := TNewMemo.Create(WizardForm);
with HintMemo do
begin
Name := 'HintMemo';
Parent := WizardForm.WelcomePage;
Left := ScaleX(344);
Top := ScaleY(192);
Width := ScaleX(145);
Height := ScaleY(105);
Lines.Text := 'HintMemo';
ReadOnly := True;
end;

{ ComponentRadioButton }
ComponentRadioButton := TNewRadioButton.Create(WizardForm);
with ComponentRadioButton do
begin
Name := 'ComponentRadioButton';
Parent := WizardForm.WelcomePage;
Left := ScaleX(176);
Top := ScaleY(192);
Width := ScaleX(113);
Height := ScaleY(17);
Caption := 'Компонент1';
Checked := True;
TabStop := True;
OnClick := @ComponentRadioButtonClick;
OnMouseMove := @ComponentRadioButtonMouseMove;
end;

{ ComponentRadioButton2 }
ComponentRadioButton2 := TNewRadioButton.Create(WizardForm);
with ComponentRadioButton2 do
begin
Name := 'ComponentRadioButton2';
Parent := WizardForm.WelcomePage;
Left := ScaleX(176);
Top := ScaleY(216);
Width := ScaleX(113);
Height := ScaleY(17);
Caption := 'Компонент 2';
OnClick := @ComponentRadioButton2Click;
OnMouseMove := @ComponentRadioButton2MouseMove;
end;

HintMemo.TabOrder := 2;
ComponentRadioButton.TabOrder := 3;
ComponentRadioButton2.TabOrder := 4;

{ ReservationBegin }
// Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!

procedure WizardBitmapImageMouseLeave(Sender: TObject);
begin
HintMemo.Lines.Text := '';// убрали курсор мыши с изображения
end;

procedure WizardBitmapImageMouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer);
begin
HintMemo.Lines.Text := 'Посетить сайт или разместить свою рекламу'; //навели на изображение
end;

procedure ComponentRadioButton2MouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer);
begin
HintMemo.Lines.Text := 'Компонент 2 будет установлен на ПК, а также другие библиотеки'; //навели на Компонент 2
end;

procedure ComponentRadioButtonMouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer);
begin
HintMemo.Lines.Text := 'Компонент 1 будет установлен на ПК'; // навели на Компонент 1
end;

procedure ComponentRadioButton2Click(Sender: TObject);
begin
HintMemo.Lines.Text := 'Компонент 2 будет установлен на ПК, а также другие библиотеки'; // выбор Компонента 2
end;

procedure ComponentRadioButtonClick(Sender: TObject);
begin
HintMemo.Lines.Text := 'Компонент 1 будет установлен на ПК'; // выбор Компонента 1
end;

procedure InitializeWizard();
begin
RedesignWizardForm;
HintMemo.Lines.Text := ''; // очищаем перед запуском элемент Memo
end;

[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030109504000054504630F10B5457697A617264466F726D0A57697A61726 4466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C656674020 00B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038F010 D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724 E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C6963697457696 4746803F1010E4578706C6963697448656967687403390100F10C544269746D6170496D6167651157697A6172644269746D6 170496D6167650B4F6E4D6F7573654D6F7665071A57697A6172644269746D6170496D6167654D6F7573654D6F76650C4F6E4 D6F7573654C65617665071B57697A6172644269746D6170496D6167654D6F7573654C656176650000F10E544E65775374617 46963546578740D57656C636F6D654C6162656C310448696E74143D000000D0ADD182D0BE20D183D181D182D0B0D0BDD0BED 0B2D0BAD0B020D0BFD180D0BED0B3D180D0B0D0BCD0BCD18B20D0BDD0B020D0B2D0B0D18820D09FD09A0E506172656E74536 86F7748696E74080853686F7748696E7409000008544E65774D656D6F0848696E744D656D6F044C65667403580103546F700 3C0000557696474680391000648656967687402690D4C696E65732E537472696E677301060848696E744D656D6F000852656 1644F6E6C7909085461624F72646572020200000F544E6577526164696F427574746F6E14436F6D706F6E656E74526164696 F427574746F6E044C65667403B00003546F7003C00005576964746802710648656967687402110743617074696F6E1413000 000D09AD0BED0BCD0BFD0BED0BDD0B5D0BDD1823107436865636B656409085461624F7264657202030754616253746F70090 74F6E436C69636B0719436F6D706F6E656E74526164696F427574746F6E436C69636B0B4F6E4D6F7573654D6F7665071D436 F6D706F6E656E74526164696F427574746F6E4D6F7573654D6F766500000F544E6577526164696F427574746F6E15436F6D7 06F6E656E74526164696F427574746F6E32044C65667403B00003546F7003D80005576964746802710648656967687402110 743617074696F6E1414000000D09AD0BED0BCD0BFD0BED0BDD0B5D0BDD1822032085461624F726465720204074F6E436C696 36B071A436F6D706F6E656E74526164696F427574746F6E32436C69636B0B4F6E4D6F7573654D6F7665071E436F6D706F6E6 56E74526164696F427574746F6E324D6F7573654D6F7665000000F110544E65774E6F7465626F6F6B5061676509496E6E657 2506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F746 5626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167651453656C656374436F6D706F6 E656E7473506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED00000000000000


Чтобы было нагляднее и понятнее, открой этот код в расширенной версии Inno ResTools и увидишь что и куда, я специально оставил секцию ISFormDesigner, дабы сам посмотрел.
Можно убрать действия для курсора мыши, чтобы не переполнять элементы. Для компонентов увидишь события- от этого можешь отталкиваться и писать свой код.

Кстати в обзоре папок ползунок не робит... »
Есть такое, не заметил даже. Надо разработчику скидывать баг-репорт или пилить самому).

Farser21
05-04-2014, 19:37
Stealthmax, спасибо. Тут немножко не так как хотелось бы. Я пытался подстроить под себя, но не получилось.
Возможно ли сделать так?
Изображение:
http://s020.radikal.ru/i713/1404/76/43595ddca357.png
Скрипт:
http://rghost.ru/private/53796573/76de428a610ac1980c3520d82cbfa1d4

Ivan_009
05-04-2014, 22:14
Подскажите пожалуйста если кто знает,возможно ли сделать Edit прозрачным и выделяемым...

Как здесь сделано: http://rghost.ru/53801139

Dodakaedr
05-04-2014, 22:53
Подскажите, пожалуйста, можно такое создать в inno setup? (файл xml)
<?xml version="1.0"?>
<!-- created by Frigate XML package -->
<Actions />
<Desktop Language="Russian" TreeWidth="185" LastVersionCheck="41711" RunCount="2" ShowQuest="True" LastFun="0" ShowFun="True" Path="C:\Users\Администратор\Desktop" Converter="Images" Filter="All suitable files (*.bmp,*.jpg,*.jpeg,*.ico,*.tif,*.tiff,*.png,*.wmf,*.emf,*.pcx,*.tga,*.gif,*.dcx,*.pxm,*.ppm,*.pbm,* .pgm,*.pxm,*.j2k,*.jp2,*.jpc,*.j2c,*.jpe,*.fax,*.g3n,*.g3f,*.dib,*.rle,*.targa,*.vda,*.thm,*.icb,*.v st,*.win,*.wdp,*.hdp,*.crw,*.cr2,*.dng,*.nef,*.raw,*.raf,*.x3f,*.orf,*.srf,*.mrw,*.dcr,*.bay,*.pef,* .arw,*.rw2,*.psd,*.pdd,*.pcd,*.cut,*.dcm,*.dicom,*.avs,*.cin,*.dot,*.dpx,*.fits,*.fpx,*.hdf,*.mat,*. miff,*.mtv,*.palm,*.pict,*.pix,*.pwp,*.rla,*.sgi,*.sun,*.svg,*.ttf,*.vicar,*.viff,*.xbm,*.xcf,*.xpm, *.wmz,*.emz)" view_hidden="False" >
<MainForm Maximize="True" />
<CmdHelpDialog Maximize="False" Rect="[194,0,892,1040]" />
</Desktop>

nik1967
05-04-2014, 23:37
Подскажите пожалуйста если кто знает,возможно ли сделать Edit прозрачным и выделяемым... »
Прозрачным и выделяемым - не знаю как. Просто прозрачным - знаю.

Ivan_009
05-04-2014, 23:51
Просто прозрачным - знаю »

nik1967, Ну это я тоже, через ботву да... :)

sergey3695
06-04-2014, 10:18
Ivan_009, у меня что ли видел? или нее...

Ivan_009
06-04-2014, 10:49
у меня что ли видел »
Ну да, как сделал не покажешь пожалуйста... :)
А то через ботву только прозрачным можно сделать...

sergey3695
06-04-2014, 12:30
Ivan_009, две формы. одна на переднем плане с вырезанием цвета, другая взади. какой прозразрачный эдит? :) Как в IsPicture короче говоря.

Ivan_009
06-04-2014, 13:28
две формы. одна на переднем плане с вырезанием цвета, другая взади »

Примерчик можешь дать пожалуйста... :)

sergey3695
06-04-2014, 19:51
Ivan_009, Вот (http://rghost.ru/53822232) (это лишь пример как бы прозр эдита) :)

Stealthmax
07-04-2014, 01:20
Нужно именно в отдельное окно. Чтобы только в этом окне появлялся текст. Не могли бы вы скинуть образец? »
Дополни свой скрипт на основе этого [Files]
Source: "pict1.bmp"; Flags: dontcopy; Attribs: hidden system
Source: "pict2.bmp"; Flags: dontcopy; Attribs: hidden system

[Components]
Name: "g0"; Description: "P-MOD Пакет с пряниками"; Types: full
Name: "g0\c1"; Description: "Командирская камера"; Types: full; Flags: dontinheritcheck
Name: "g0\c2"; Description: "Отключение озеленения в снайперском прицеле"; Types: full; Flags: dontinheritcheck
Name: "g0\c3"; Description: "Блокировать смену прицелов (NoScroll)"; Types: full; Flags: dontinheritcheck
Name: "g0\c4"; Description: "Динамическая камера"; Types: full; Flags: dontinheritcheck
Name: "g0\c4\c5"; Description: "Покачивание отключено полностью"; Flags: exclusive
Name: "g0\c4\c6"; Description: "Отключено только покачивание прицела"; Flags: exclusive
Name: "g0\c7"; Description: "Увеличить время работы Лампочки"; Types: full; Flags: dontinheritcheck
Name: "g0\c7\c8"; Description: "2 секунды"; Flags: exclusive
Name: "g0\c7\c9"; Description: "5 секунд"; Flags: exclusive
Name: "g0\c7\c10"; Description: "10 секунд"; Flags: exclusive
Name: "g0\c11"; Description: "Информация об вашем респауне на экране загрузки"; Types: full; Flags: dontinheritcheck
Name: "g0\c12"; Description: "Эффекты камеры во время боя"; Types: full; Flags: dontinheritcheck
Name: "g0\c12\c13"; Description: "Инерция камеры"; Flags: exclusive
Name: "g0\c12\c14"; Description: "Красная вспышка когда враг попадает по вам"; Flags: exclusive
Name: "g0\c12\c15"; Description: "Тряска камеры когда враг попадает по вам"; Flags: exclusive
Name: "g0\c12\c16"; Description: "Включить все 3 функции"; Flags: exclusive
Name: "g0\c17"; Description: "Стандартная кратность прицела"; Types: full; Flags: dontinheritcheck
Name: "g0\c18"; Description: "Быстрая смена оборудования"; Types: full; Flags: dontinheritcheck
Name: "g0\c19"; Description: "Горизонтальная стабилизация"; Types: full; Flags: dontinheritcheck
Name: "g0\c19\c20"; Description: "На всех технике"; Flags: exclusive
Name: "g0\c19\c21"; Description: "На всей технике кроме ПТ"; Flags: exclusive
Name: "g0\c22"; Description: "Окно входа в игру"; Types: full; Flags: dontinheritcheck
Name: "g0\c22\c23"; Description: "Отключение автовыбора сервера"; Flags: exclusive
Name: "g0\c22\c24"; Description: "Отключение проигрывания стартового ролика"; Flags: exclusive
Name: "g0\c22\c25"; Description: "Включить обе функции"; Flags: exclusive
Name: "g0\c26"; Description: "Отдаление камеры при старте боя и после уничтожения танка"; Types: full; Flags: dontinheritcheck
Name: "g0\c27"; Description: "Ручной тормоз на ПТ-САУ"; Types: full; Flags: dontinheritcheck
Name: "g0\c27\c28"; Description: "Полное отключение тормоза"; Flags: exclusive
Name: "g0\c27\c29"; Description: "Только открепление камеры"; Flags: exclusive
Name: "g0\c30"; Description: "Свободная камера в реплеях"; Types: full; Flags: dontinheritcheck

[Languages]
Name: "English"; MessagesFile: "compiler:Default.isl"
Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl"

[CustomMessages]
Russian.Component1=Описание компонента 1 и изображение выше
Russian.Component2=Описание компонента 2 и изображение выше

[_Code]
var
ComponentBitmapImage: TBitmapImage;
DescritionText: TNewStaticText;

procedure RedesignWizardForm;
begin
{ ComponentBitmapImage }
ComponentBitmapImage := TBitmapImage.Create(WizardForm);
with ComponentBitmapImage do
begin
Name := 'ComponentBitmapImage';
Parent := WizardForm.SelectComponentsPage;
Left := ScaleX(200);
Top := ScaleY(50);
Width := ScaleX(210);
Height := ScaleY(89);
end;

with WizardForm.ComponentsList do
begin
Width := ScaleX(193);
end;

with WizardForm.TypesCombo do
begin
Width := ScaleX(193);
end;

{ DescritionText }
DescritionText := TNewStaticText.Create(WizardForm);
with DescritionText do
begin
Name := 'DescritionText';
Parent := WizardForm.SelectComponentsPage;
AutoSize := False;
WordWrap := True;
Caption := '';
Left := ScaleX(200);
Top := ScaleY(144);
Width := ScaleX(210);
Height := ScaleY(61);
end;

DescritionText.TabOrder := 4;
end;

procedure OnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
begin
if Index = 1 then // элемент списка компонентов, т.е. к примеру их 31, значит по аналогии и остальные
begin
ComponentBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\pict2.bmp'));//выводим изображении при наведении
DescritionText.Caption := CustomMessage('Component2');//выводим текст при наведении
end;
if Index = 0 then
begin
ComponentBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\pict1.bmp'));
DescritionText.Caption := CustomMessage('Component1');
end;
end;

procedure OnMouseLeave(Sender: TObject); //убираем курсор мыши, действия
begin
DescritionText.Caption := 'Наведите указатель мыши на компонент, чтобы увидеть его описание.';//вывод текста при потере фокуса, т.е. убрали курсор мыши
//DescritionText.Caption := ''; //если убираем текст, то при потере фокуса получаем пустое окно описания, расскомментировать при необходимости
ComponentBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\pict1.bmp'));//выводим изображение по умолчанию
end;

procedure InitializeWizard();
begin
RedesignWizardForm;
WizardForm.ComponentsList.OnItemMouseMove := @OnItemMouseMove; // инициализация процедуры при наведении курсора мыши
WizardForm.ComponentsList.OnMouseLeave := @OnMouseLeave;// инициализация процедуры при потери фокуса мыши
ComponentBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\pict1.bmp')); //изображение по умолчанию
DescritionText.Caption := 'Наведите указатель мыши на компонент, чтобы увидеть его описание.';//описание по умолчанию
end;

function InitializeSetup(): Boolean;
begin
Result := True;
ExtractTemporaryFile('pict1.bmp');
ExtractTemporaryFile('pict1.bmp');
end;P.S. Skillet "Comatose" пойдет, давно их не слушал.

И упрощение для удобства за помощью sergey3695, за что отдельное спасибо:
procedure OnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
begin
//выводим картинку и описание, процедуры детальнее указаны в примере выше, упрощение самой конструкции наведения куросора мыши
case Index of
0: begin ComponentBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\pict1.bmp')); DescritionText.Caption := CustomMessage('Component1'); end;
1: begin DescritionText.Caption := CustomMessage('Component2'); ComponentBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\pict2.bmp')); end
else
DescritionText.Caption := 'Наведите указатель мыши на компонент, чтобы увидеть его описание.';
end;
end;

sergey3695
07-04-2014, 11:09
Stealthmax,
0: begin
DescritionText.Caption := CustomMessage('Component1'); ComponentBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\pict1.bmp'));
end;

может как-то так все таки,а не в кепшен совать,ведь это текст лейбла. (код не проверял, кусок за кусок :) (собирать-то влом))

diman_21Ru
07-04-2014, 12:21
Stealthmax, а можно ли какой то более легкий способ на описание компонента , т.к некоторые обозначения есть уже

Stealthmax
07-04-2014, 13:34
может как-то так все таки,а не в кепшен совать,ведь это текст лейбла. »
Молодца! Да, так пашет, сам что-то не допер такой вариант. Текст Label? А он случаем не в Caption указывается? Или может другое свойство есть? По-моему, нового там ничего не было.
можно ли какой то более легкий способ на описание компонента , т.к некоторые обозначения есть уже »
Надо подключиться к спутнику, экстрасенсов вызвать, связи с ними нет. Открываешь редактор Inno Restools и видишь там справа окно свойств элементов и делаешь то, что нужно, потом выкладываешь здесь и указываешь что хотелось бы и что не получилось. Вывести описание на странице wpSelectComponentsPage без добавления новых элементов можно в WizardForm.SelectComponentsLabel.Caption := 'бла-бла-бла', положение и размеры там же.
По поводу некоторых обозначений. Я дал пример, который не подразумевает использовать в первозданном виде, меняй названия элементов как угодно, повторюсь, это всего лишь пример.

sergey3695
07-04-2014, 15:17
Stealthmax, мда... я же написал текст лейбла. (поясняю как ты и написал в кепшане указывается текст, но так как я посчитал что DescritionText это лейбл,то написал текст лейбла (кепшан относится к лейблу)) :)

diman_21Ru
07-04-2014, 15:46
sergey3695, мего запутано (

Stealthmax
07-04-2014, 16:04
(кепшан относится к лейблу)) »
C какого такого перепуга? TNewStaticText имеет параметр Caption, также как и Label, а вот в Memo, к примеру, будет уже Lines. Там вроде все прекрасно видно в начале скрипта. Можно выбрать любой элемент, на свой вкус. Я взял элементарный. :ok:
но так как я посчитал что DescritionText это лейбл » А вот здесь я оставил метку, XXXText в конце, чтобы было понятно, что это не Label, но все равно сути это не меняет. Так что я малость не понимаю о чем ты в принципе. А если не Caption, то куда ты текст собираешься выводить? Короче, оффтоп полный пошел. Лучше в личку пиши такие моменты, чтобы не плодить тут такие посты с обсуждением параметров элементов из справки Inno.

sergey3695
07-04-2014, 16:13
Stealthmax, ну да забей короче...




© OSzone.net 2001-2012