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 потому как я в шрифт этот встраивал еще кое какие символы которые тоже хочу в некоторых моментах задействовать. как мне реализовать все это дело подскажите пожалуйста.
Скорее всего у тебя в системе есть уже шрифт с этим именем. А если это так то он не примениться, а будет браться из папки где шрифты установленные пользователем.
Проверено много раз....
Выход?
- Удали шрифт из Windows с таким же именем.
 
Назад
Сверху