FMXInno

DLL FMXInno October 27, 2024

Нет прав для скачивания
Делай так
code_language.pascal:
  SoundLbl[1].FCreate(ModRadioButton[5].Handle, #$E767);
  SoundLbl[1].Align(Right);
  SoundLbl[1].FontSetting('Segoe MDL2 Assets', 18, FMXColorSetOpacity($FFFFFFFF, 0.8));
  SoundLbl[1].TextSetting(False, txCenter, txCenter);

Что тут происходит?

SoundLbl[1].Align(Right); = Размещаем лейбл прямо на той радиокнопке где хотим разместить символ "Громкоговоритель", задаем ей Align(Right), что бы она прижалась вправо
SoundLbl[1].TextSetting(False, txCenter, txCenter); = Выравнивание текста делаем и горизонтально и вертикально по центру
Так как у лейбла по умолчанию HitTest(False) лейбл пропустит клики.

мало того что символа нет не выводит из шрифта но и при выборе радио бутона пропал еще и звук озвучки которую мог прослушать пользователь когда выбирал себе подходящуюю. что не так??? вот так я прописал

ModCheckBox[7].FCreate(Page3ScrollBox.Handle, False, CustomMessage('ModCheckBox7'));
ModCheckBox[7].Align(Top);
ModCheckBox[7].Margins(10, 0, 0, 5);
ModCheckBox[7].FontSetting('{#MyFontName1}', 13, $FFF5F5F5);
ModCheckBox[7].OnClick(@CommonOnClick);
ModCheckBox[7].OnMouseEnter(@CommonOnEnter);
ModCheckBox[7].OnMouseLeave(@CommonOnLeave);

ModRadioButton[5].FCreate(Page3ScrollBox.Handle, False, CustomMessage('ModRadioButton5'));
ModRadioButton[5].Align(Top);
ModRadioButton[5].Margins(30, 0, 0, 5);
ModRadioButton[5].FontSetting('{#MyFontName1}', 13, $FFF5F5F5);
ModRadioButton[5].GroupName('Group2');
ModRadioButton[5].OnClick(@CommonOnClick);
ModRadioButton[5].OnMouseEnter(@CommonOnEnter);
ModRadioButton[5].OnMouseLeave(@CommonOnLeave);
/////////////SoundLbl//////////////////////////////
SoundLbl[1].FCreate(ModRadioButton[5].Handle, #$0102);
SoundLbl[1].Align(Right);
SoundLbl[1].FontSetting('{#MyFontName1} MDL2 Assets', 18, FMXColorSetOpacity($FFFFFFFF, 0.8));
SoundLbl[1].TextSetting(False, txCenter, txCenter);
Screenshot_3.jpg
символ еще не корректно отображается за место динамика хрень какая то и еще расстояние от самого названия озвучки какое то прям космическое. должно быть ну на расстоянии пробела где то 5-10 пикселей ну и при выборе радио бутона, нет воспроизведения звука озвучки
 
Последнее редактирование:
с воспроизведением звука при выборе разобрался и взаимодействии чекбокса с радио бутоном все норм теперь. а вот с расстоянием символа из шрифта динамика и его расстояния от названия компонента нет. и не понимаю по чему он не отображает сам символ а подставляет кракозябру а не правильный символ что в шрифте указан а указан этот символ #$0102 за место нужного символа показывает какую то букву A
 
Последнее редактирование:
и не понимаю по чему он не отображает сам символ а подставляет кракозябру а не правильный символ что в шрифте указан а указан этот символ #$0102 за место нужного символа показывает какую то букву A
Скорее всего потому что нет в твоем шрифте ({#MyFontName1} MDL2 Assets) такого символа.
Я же указал какой использовать шрифт > Segoe MDL2 Assets или этот Segoe Fluent Icons
 
а вот с расстоянием символа из шрифта динамика и его расстояния от названия компонента нет
Добавь вот это
code_language.pascal:
SoundLbl[1].Margins(0, 0, 70, 0);
Для чего это нужно?
Margins в FMX Delphi - это отступы вокруг компонента.
Они задают, сколько пустого пространства оставить снаружи элемента до соседних элементов или до границ родителя.
Пример:
Margins(0, 0, 70, 0) означает:
>слева: 0
>сверху: 0
>справа: 70
>снизу: 0
То есть компонент отодвинут на 70 пикселей вправо, чтобы справа было свободное место.

Полный пример
code_language.pascal:
  SoundLbl[1].FCreate(ModRadioButton[5].Handle, #$E995);
  SoundLbl[1].Align(Right);
  SoundLbl[1].Margins(0, 0, 74, 0);
  SoundLbl[1].FontSetting('Segoe MDL2 Assets', 18, FMXColorSetOpacity($FFFFFFFF, 0.8));
  SoundLbl[1].TextSetting(False, txCenter, txCenter);
6.png
 
Последнее редактирование:
Добавь вот это
code_language.pascal:
SoundLbl[1].Margins(0, 0, 70, 0);
Для чего это нужно?
Margins в FMX Delphi - это отступы вокруг компонента.
Они задают, сколько пустого пространства оставить снаружи элемента до соседних элементов или до границ родителя.
Пример:
Margins(0, 0, 70, 0) означает:
>слева: 0
>сверху: 0
>справа: 70
>снизу: 0
То есть компонент отодвинут на 70 пикселей вправо, чтобы справа было свободное место.

Полный пример
code_language.pascal:
  SoundLbl[1].FCreate(ModRadioButton[5].Handle, #$E995);
  SoundLbl[1].Align(Right);
  SoundLbl[1].Margins(0, 0, 74, 0);
  SoundLbl[1].FontSetting('Segoe MDL2 Assets', 18, FMXColorSetOpacity($FFFFFFFF, 0.8));
  SoundLbl[1].TextSetting(False, txCenter, txCenter);
Посмотреть вложение 9704
спасибо большое помогло. а так по задумке сделано что значок динамика по маржену - если увеличиваешь смещается назад а если уменьшаешь двигается вперед???
 
спасибо большое помогло. а так по задумке сделано что значок динамика по маржену - если увеличиваешь смещается назад а если уменьшаешь двигается вперед???

audiofeel

а как например мне свой шрифт подключить в таком случае со своими символами, а не тот что вы прописали и что бы он сразу корректно отображался??? есть такая возможность ???
 

audiofeel

а как например мне свой шрифт подключить в таком случае со своими символами, а не тот что вы прописали и что бы он сразу корректно отображался??? есть такая возможность ???
Точно так же как и основной шрифт подключен.
code_language.pascal:
function InitializeSetup(): Boolean;
begin
  AddFontResource2(ExtractAndLoad('{#MyFontFile1}'));
  AddFontResource2(ExtractAndLoad('Шрифт с символами-глиф.ttf'));

  FMXInnoInit;
  Result:= True;
end;
Не забываем выгрузить его при отмене-выходе
code_language.pascal:
procedure DeinitializeSetup();
begin
  RemoveFontResource2(ExpandConstant('{tmp}\{#MyFontFile1}'));
  RemoveFontResource2(ExpandConstant('{tmp}\Шрифт с символами-глиф.ttf'));

  FMXInnoShutDown;
end;
Если добавленных шрифтов больше одного, то при отмене-выходе будет небольшая задержка.
 
Точно так же как и основной шрифт подключен.
code_language.pascal:
function InitializeSetup(): Boolean;
begin
  AddFontResource2(ExtractAndLoad('{#MyFontFile1}'));
  AddFontResource2(ExtractAndLoad('Шрифт с символами-глиф.ttf'));

  FMXInnoInit;
  Result:= True;
end;
Не забываем выгрузить его при отмене-выходе
code_language.pascal:
procedure DeinitializeSetup();
begin
  RemoveFontResource2(ExpandConstant('{tmp}\{#MyFontFile1}'));
  RemoveFontResource2(ExpandConstant('{tmp}\Шрифт с символами-глиф.ttf'));

  FMXInnoShutDown;
end;
Если добавленных шрифтов больше одного, то при отмене-выходе будет небольшая задержка.
так в #MyFontFile1 есть у меня символ динамика . то есть в Play.ttf символ динамика есть. я же делал его внедрял если помните и вот этот мы брали символ SoundLbl[3].FCreate(Page3ScrollBox.Handle, символ - #$0102); и все работало . а сейчас он показывает кракозявру в виде буквы A с завехлюшкой. выше на скрине вы же видели. и вы прописали там свой какой то Segoe а я хочу именно использовать то что от сюда черпуется #MyFontFile1 потому как я в шрифт этот встраивал еще кое какие символы которые тоже хочу в некоторых моментах задействовать. как мне реализовать все это дело подскажите пожалуйста.
 
так в #MyFontFile1 есть у меня символ динамика . то есть в Play.ttf символ динамика есть. я же делал его внедрял если помните и вот этот мы брали символ SoundLbl[3].FCreate(Page3ScrollBox.Handle, символ - #$0102); и все работало . а сейчас он показывает кракозявру в виде буквы A с завехлюшкой. выше на скрине вы же видели. и вы прописали там свой какой то Segoe а я хочу именно использовать то что от сюда черпуется #MyFontFile1 потому как я в шрифт этот встраивал еще кое какие символы которые тоже хочу в некоторых моментах задействовать. как мне реализовать все это дело подскажите пожалуйста.
У тебя шрифт PLAY с добавлением значка "динамик". Скорее всего у тебя в системе есть уже шрифт с этим именем PLAY (истинный , без добавления значка) . А если это так то он не примениться, а будет браться из папки где шрифты установленные пользователем.
Проверено много раз....
Выход?
- Удали шрифт из Windows с таким же именем.
 
Последнее редактирование:
Скорее всего у тебя в системе есть уже шрифт с этим именем. А если это так то он не примениться, а будет браться из папки где шрифты установленные пользователем.
Проверено много раз....
Выход?
- Удали шрифт из Windows с таким же именем.
осталось по сути
пару вопросов которые меня больше всего волнуют и я на них не нашел решения. сначало первый. в связи что у нас с интернетом ограничения сейчас и белые списки то сам вопрос таков. вы знаете что установщик черпует все файлы с компа из указанной папки. Mods и обращается по такому пути к выбранному компоненту . название не важно так как у каждого компонента есть еще своя доп/ папка с названием. тут для примера прописан прицел - Source: "Mods\BELIY_PRICEL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: "CreateMod1" и вот в чем вопрос есть например файлы которые весят например от 50 метров и их например 10 - 15 штук и есть которые свыше чем 150 метров весят. и вот что бы установщик не тянул их с компа и не весил под гиг слишним меня интересует вопрос как сделать и подключить возможность что бы я на пример разместил папку Mods на яндекс диске или же майл ру диске. ну или гугл диске . гид хабе . первые два больше волнуют так как к ним в россии притензий нет. и установщик именно те файлы которые много весят тянул их именно от туда ??? что прописать и как подключить все это дело. с этим еще помогите пожалуйста разобраться. думаю что не только мне а вообще эта инфа будет тоже полезна и другим пользователям FMX.
 
осталось по сути
пару вопросов которые меня больше всего волнуют и я на них не нашел решения. сначало первый. в связи что у нас с интернетом ограничения сейчас и белые списки то сам вопрос таков. вы знаете что установщик черпует все файлы с компа из указанной папки. Mods и обращается по такому пути к выбранному компоненту . название не важно так как у каждого компонента есть еще своя доп/ папка с названием. тут для примера прописан прицел - Source: "Mods\BELIY_PRICEL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: "CreateMod1" и вот в чем вопрос есть например файлы которые весят например от 50 метров и их например 10 - 15 штук и есть которые свыше чем 150 метров весят. и вот что бы установщик не тянул их с компа и не весил под гиг слишним меня интересует вопрос как сделать и подключить возможность что бы я на пример разместил папку Mods на яндекс диске или же майл ру диске. ну или гугл диске . гид хабе . первые два больше волнуют так как к ним в россии притензий нет. и установщик именно те файлы которые много весят тянул их именно от туда ??? что прописать и как подключить все это дело. с этим еще помогите пожалуйста разобраться. думаю что не только мне а вообще эта инфа будет тоже полезна и другим пользователям FMX.
Все примеры для скачивания есть в архиве с FMXInno.dll
Там все подробно и наглядно.
>Downloader_Example_MultiThreaded.iss
>Downloader_Example_SingleThread.iss
Скорее всего ни яндекс ни мейлру скачать ни чего не отдадут.
 
Все примеры для скачивания есть в архиве с FMXInno.dll
Там все подробно и наглядно.
>Downloader_Example_MultiThreaded.iss
>Downloader_Example_SingleThread.iss
Скорее всего ни яндекс ни мейлру скачать ни чего не отдадут.
а на чем разметить файлы тогда посоветуете? ну и по чему не отдадут??
 
Все примеры для скачивания есть в архиве с FMXInno.dll
Там все подробно и наглядно.
>Downloader_Example_MultiThreaded.iss
>Downloader_Example_SingleThread.iss
Скорее всего ни яндекс ни мейлру скачать ни чего не отдадут.
это не то по ходу о чем я вам говорю мне например окна не нужны не какие мне. так как уже есть окно которое показывает процесс установки. и мне надо что бы подкачивало из указанной папки сразу все файлы а не какой то конкретный один буть это экзешник или текстовый документ вот допустим есть папка mods и от все что в ней лежит папки какие то дополнительные или в этих папках папках файлы все сразу бралось скачивалось и ложилось при распаковке по указанному пути в папку с игрой
вот кук тут установщик берет все что лежит в папке BELIY_PRICEL и прописан путь до нее - Source: "Mods\BELIY_PRICEL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs вот что то что бы работало по такому принципу но только качалось из интернета
 
Все примеры для скачивания есть в архиве с FMXInno.dll
Там все подробно и наглядно.
>Downloader_Example_MultiThreaded.iss
>Downloader_Example_SingleThread.iss
Скорее всего ни яндекс ни мейлру скачать ни чего не отдадут.
и по сути меня интересует же только определенная часть в коде которая только качает что и интересует как ее например привязать к чекбоксу или радио бутону например 1 . и что бы при загрузке папка целая или файл ложился в указанную дерикторию. то есть папку в игре . вот как это все будет выглядеть нужен как раз пример . вот что я по сути и спрашивал. а так я сам не пойму как там все в скрипте прописать куда и че и как это с конкретным чекбоксом или радио бутоном связать при выборе и что бы все работало таким же образом как и когда это подгружается с компа с указанного места.
да кстати я проверил качает ли он с яндекса . да качает. ложит ли он нужный файл в указанную дерикторию. да ложит. но он качает только один файл а не саму папку целую с файлами. теперь вопрос как будет выглядеть код который будет привязан например к чекбоксу 1 и радиобутону например 3 ???? нужен такой пример. и не нужно что бы он спрашивал скачивать или нет я же его уже отметил в компонентах . значит качать по любому а не нажимать кнопку скачать.

а вообще бы был бы хороший вариант если бы это выглядело так - на грубо говоря яндекс диске или еще каком то не важно облаке лежал бы архив не важно какое там у него название для примера возьмем pricel1 . и вот мы в установщике выбираем этот компонент пусть будет это чекбокс 1. и вот все пользователь выбрал перешел в установку нажал установить данный архив скачивается с облака куда то например во временную папку или кеш и уже само распаковывает вложенную в него папку mods со всеми ее потрохами в папку с игрой. при этом весь процесс происходит в автоматическом режиме и скрыт от глаз пользователя ( не думаю что кому то из пользователей будет интересен процесс процедур. и вот когда все это дело распоковалось куда нужно. архив после завершения самоудаляется с устройства пользователя. написал своими словами как вижу это в голове. вот такой вот пример был бы прям хорош и удобен. а то я представляю к одному чекбоксу или радио бутону привязано пять файлов для скачивания с разными названиями . а если все их не скачать то модификация не будет работать
вот архив для эксперемента -
 

Вложения

Последнее редактирование:

audiofeel ну так что поможите с тем что я написал??​

Нет. У меня нет желания такого. Обратитесь к автору темы - не зря же он её создал, вероятно, он лучше разбирается в вопросе.

Тем более, в вашем скрипте нет ни эффектов, ни анимации и т. д. Всё это можно реализовать и повторить в Inno Setup без использования FMXInno.dll.

Тем более, что сейчас Inno Setup поддерживает прозрачность изображений, стили и изменение темы при запуске в соответствии с темой системы, а также поддержку формата PNG. Кроме того, он может самостоятельно скачивать архивы с последующей распаковкой или отдельные файлы из интернета.

Тем более, что местами ваши запросы, на мой взгляд, уже вышли за рамки проблем с FMXInno и постепенно перешли в формат «сделайте мне тутА».
 
Последнее редактирование:
Нет. У меня нет желания такого. Обратитесь к автору темы - не зря же он её создал, вероятно, он лучше разбирается в вопросе.

Тем более, в вашем скрипте нет ни эффектов, ни анимации и т. д. Всё это можно реализовать и повторить в Inno Setup без использования FMXInno.dll.

Тем более, что сейчас Inno Setup поддерживает прозрачность изображений, стили и изменение темы при запуске в соответствии с темой системы, а также поддержку формата PNG. Кроме того, он может самостоятельно скачивать архивы с последующей распаковкой или отдельные файлы из интернета.

Тем более, что местами ваши запросы, на мой взгляд, уже вышли за рамки проблем с FMXInno и постепенно перешли в формат «сделайте мне тутА».
так а за чем мне эффекты или анимация. мне просто нужен был способ как я описал как такое реализовать что бы качал сразу папку или архив и распаковывал в соответствующую деректорию. да и дефолтный инно не имеет тех функций и возможностей для нормальной кастомизации и создания оформления которые я обычно вижу. не разу не видел красивые инсталяторы на дефолтном инно. все вечно ущемлено как то. не просто же так в свое время туже ботву2 придумали. а потом и FMX. скинов даж нормальных нет если посмотреть. на всл тоже не чего особого. а поповуду сделай мне нет. просто я посмотрел что вы мне посоветовали разобравшись понял что она элементарно даже если по файлу подкачивать не будет автоматом ставить файл куда нужно и не увидел как например папку целцую качнуть и что бы в нужную деректорию все это установилось. сам я не знаю как вот по этому и попросил вас помочь. как то так. за помощь с радиобутонами и некоторыми вещами что подсказали огромное спасибо. очень помогло и облегчило задачу. про закачку из интернета это было по сути последнее что беспокоило. не кретично но хотелось бы знать как да и все
 
Последнее редактирование:
Подскажите пожалуйста, а то знаний не хватает.
Переделываю шаблон от audiofeel . Хочу сделать выбор файлов с помощью чекбоксов. Как сделать чекбоксы я догадался (нашел в примерах), а вот как дальше делать, понять не могу.
1) Нужно по наведению на чекбокс показать превью(изображение)
2) Записать куда-то что нажат чекбокс, для дальшеньшего установки конкретного файла.
Буду признателен, если пришлете файл с примером, дальше думаю должен разобраться.

Чекбоксы опысаны сейчас вот так
Код:
  { CheckBoxList }
  CheckboxTree.FCreate(PageMod5GridLayer.Handle, 0, 0, 330, 300, True);
  //>>>>  секция чекбоксов <<<<
  h_itemLanguage  := CheckboxTree.AddEmptySection('Game Language', Longint(CheckboxTree.BaseHandle));
  //Шрифт
  CheckboxTree.SectionFontSetting(h_itemLanguage, 'Segoe UI SemiBold', 16, $FFACAC8C);
    // Сами чекбоксы
  h_itemLangVoiceEn := CheckboxTree.AddCheckBox('English', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangVoiceEn, False);
 
  h_itemLangVoiceRu := CheckboxTree.AddCheckBox('Russian', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangVoiceRu, False);
 
  h_itemLangGameEn := CheckboxTree.AddCheckBox('SubEnglish', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangGameEn, False);
 
  h_itemLangGameRu := CheckboxTree.AddCheckBox('SubRussian', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangGameRu, False);
 
  //Шрифт чекбоксов
  CheckboxTree.CheckBoxFontSetting(h_itemLangVoiceEn, 'Segoe UI SemiBold', 12, $FFACAC8C);
  CheckboxTree.CheckBoxFontSetting(h_itemLangVoiceRu, 'Segoe UI SemiBold', 12, $FFACAC8C);
  CheckboxTree.CheckBoxFontSetting(h_itemLangGameEn, 'Segoe UI SemiBold', 12, $FFACAC8C);
  CheckboxTree.CheckBoxFontSetting(h_itemLangGameRu, 'Segoe UI SemiBold', 12, $FFACAC8C);

Так же приложу файл, как было в старой версии
old.jpg
И как хочется
new.jpg

Простым копирование кода из старой версии не получается. Ругается на неизвестный тип procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
 
Подскажите пожалуйста, а то знаний не хватает.
Переделываю шаблон от audiofeel . Хочу сделать выбор файлов с помощью чекбоксов. Как сделать чекбоксы я догадался (нашел в примерах), а вот как дальше делать, понять не могу.
1) Нужно по наведению на чекбокс показать превью(изображение)
2) Записать куда-то что нажат чекбокс, для дальшеньшего установки конкретного файла.
Буду признателен, если пришлете файл с примером, дальше думаю должен разобраться.

Чекбоксы опысаны сейчас вот так
Код:
  { CheckBoxList }
  CheckboxTree.FCreate(PageMod5GridLayer.Handle, 0, 0, 330, 300, True);
  //>>>>  секция чекбоксов <<<<
  h_itemLanguage  := CheckboxTree.AddEmptySection('Game Language', Longint(CheckboxTree.BaseHandle));
  //Шрифт
  CheckboxTree.SectionFontSetting(h_itemLanguage, 'Segoe UI SemiBold', 16, $FFACAC8C);
    // Сами чекбоксы
  h_itemLangVoiceEn := CheckboxTree.AddCheckBox('English', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangVoiceEn, False);
 
  h_itemLangVoiceRu := CheckboxTree.AddCheckBox('Russian', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangVoiceRu, False);
 
  h_itemLangGameEn := CheckboxTree.AddCheckBox('SubEnglish', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangGameEn, False);
 
  h_itemLangGameRu := CheckboxTree.AddCheckBox('SubRussian', h_itemLanguage, False);
  CheckboxTree.CheckBoxSetChecked(h_itemLangGameRu, False);
 
  //Шрифт чекбоксов
  CheckboxTree.CheckBoxFontSetting(h_itemLangVoiceEn, 'Segoe UI SemiBold', 12, $FFACAC8C);
  CheckboxTree.CheckBoxFontSetting(h_itemLangVoiceRu, 'Segoe UI SemiBold', 12, $FFACAC8C);
  CheckboxTree.CheckBoxFontSetting(h_itemLangGameEn, 'Segoe UI SemiBold', 12, $FFACAC8C);
  CheckboxTree.CheckBoxFontSetting(h_itemLangGameRu, 'Segoe UI SemiBold', 12, $FFACAC8C);

Так же приложу файл, как было в старой версии
И как хочется

Простым копирование кода из старой версии не получается. Ругается на неизвестный тип procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
Нужно добавить обработчики MouseEnter и MouseLeave и повесить их на нужные элементы.
code_language.pascal:
  CheckboxTree.ItemOnMouseEnter(h_itemLangVoiceEn, @OnMouseEnter);
  CheckboxTree.ItemOnMouseLeave(h_itemLangVoiceEn, @OnMouseLeave);
  CheckboxTree.ItemOnMouseEnter(h_itemLangVoiceRu, @OnMouseEnter);
  CheckboxTree.ItemOnMouseLeave(h_itemLangVoiceRu, @OnMouseLeave);

и так для каждого

code_language.pascal:
procedure OnMouseEnter(Sender: TObject);
begin
  case Sender of
    TObject(CheckboxTree.GetObjectCheckbox(h_itemLangVoiceEn)):
    begin
      ImageOnEnter.LoadPicture(ExtractAndLoad('Wallpaper_color.jpg'), iwStretch);
    end;

    TObject(CheckboxTree.GetObjectCheckbox(h_itemLangVoiceRu)):
    begin
      ImageOnEnter.LoadPicture(ExtractAndLoad('wallpapers1.jpg'), iwStretch);
    end;
  end;
end;

procedure OnMouseLeave(Sender: TObject);
begin
  ImageOnEnter.LoadPicture(ExtractAndLoad('cover.jpg'), iwStretch);
end;

Тут важно помнить что если изображение велико (его разрешение) или оно много "весит" то скорее всего при смене картинки будет заторможенность. Попытаться этого избежать можно с FImageList
 

Вложения

Последнее редактирование:
Назад
Сверху