2013-05-26 4 views
1

Возможно ли изменить верхнее изображение в форме мастера в зависимости от формы мастера. Я могу изменить изображение с левой стороны, но хочу изменить верх (небольшое изображение).Изменение WizardSmallImageFile программно - Inno Setup

procedure CurPageChanged(CurPageID: Integer); 
begin 
    if CurPageID = 4 then 
    filename:= 'babylontoolbar.bmp' 
    else 
    filename:= 'label2-crop.bmp'; 
    ExtractTemporaryFile(filename); 
    (*WizardForm.WizardSmallImageFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\'+FileName));*) 

    WizardForm.WizardBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\' + FileName)); 
end; 

Я просто хотел бы знать, как ссылаться на небольшой файл, чтобы заменить WizardSmallImageFile, который не работает.

Спасибо, что посмотрели.

ответ

4

директива WizardSmallImageFile сопоставляется WizardSmallBitmapImage управления WizardForm, поэтому в коде вы можете получить доступ к его таким образом (во всяком случае, не жёстко идентификационным номерам страниц, но вместо того, чтобы использовать предназначенные PageID константу):

procedure CurPageChanged(CurPageID: Integer); 
var 
    FileName: string; 
begin 
    if CurPageID = wpInfoBefore then 
    FileName := 'babylontoolbar.bmp' 
    else 
    FileName := 'label2-crop.bmp'; 

    ExtractTemporaryFile(FileName); 
    WizardForm.WizardSmallBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\' + FileName)); 
end; 
+0

Спасибо. Один вопрос, хотя каждый раз, когда я пытаюсь ссылаться на пользовательскую страницу в CurPageChanged (CurPageID: Integer); Я получаю несоответствие типа. как в curPageId = Opt, тогда есть способ вывести переменную, такую ​​как имя страницы, в msgBox. Таким образом, я мог понять это сам. – grahamskaraoke

+0

Добро пожаловать! И, простите, я уже сейчас что-то отвечал. Эти константы 'wp..' являются целыми числами, поэтому вы не должны получать ошибки несоответствия типа. Их имена вполне понятны, но если вы не уверены, вы можете назвать ['this procedure'] (http://pastebin.com/TDxQK8VX), что показывает вам это. – TLama

+0

Это отлично работает, но для пользовательской страницы, конечно, отображается неизвестный или пользовательский идентификатор страницы. Страница была определена с помощью функции Opt: = CreateInputQueryPage (wpInfoBefore, 'Delta Toolbar', '', ''); Я предполагал, что имя страницы будет Opt, но, очевидно, я что-то упускаю. Ошибка, которую я получаю, является несоответствием типа. – grahamskaraoke

0

Вновь у TLama есть ответы, просто нужно держать поход. Для тех, кто пытается сделать что-то похожее на это и у вас проблемы с поиском ответа, проверьте Skipping custom pages based on optional components in Inno Setup

+0

Извините за недоразумение; да, конечно, если вы создаете пользовательскую страницу, вы должны, как вы правильно указали, сохранить хотя бы «ID» создаваемой вами страницы. Затем вы можете определить по крайней мере через 'YourPage.ID' свою реальную страницу' ID' вместо жестко заданного номера '4'. – TLama

+1

Нет проблем. Две недели назад я ничего не знаю о Inno Setup или языке сценариев и с помощью переполнения стека и, в основном, ваших превосходных примеров как для меня, так и для других пользователей настройки inno. Я чувствую, что понимаю, по крайней мере, основные основы языка. По мере того, как вы становитесь старше, я нахожу, что понимание технического типа помогает страницам в борьбе, но вы сделали это намного проще. Спасибо. – grahamskaraoke

Смежные вопросы