Перейти к содержанию
Fire Monkey от А до Я

dnekrasov

Пользователи
  • Постов

    317
  • Зарегистрирован

  • Посещение

  • Победитель дней

    52

Весь контент dnekrasov

  1. Если Вам не нужно масштабирование - просто в свойствах проекта снимите птичку "Enable High-DPI"
  2. Вместо TTask.Run можно использовать TThread.CreateAnonymousThread в связке с TThread.OnTerminate
  3. Или Alt+F12 в Design режиме, после чего форму можно редактировать в текстовом режиме. Ну или просто выделить все контролы на форме - Ctrl+A или Shift+Click - а затем, как обычно - Ctrl+X->выбратьTabItem1->Ctrl+V
  4. Ну как же? В первом параметре идет прямоугольник в который выводится текст. Ему и сделать Offset(-PD.GetBounds.Left, -PD.GetBounds.Top) Всё просто: PD.Translate(-PD.GetBounds.Left + DestRect.Left + (DestRect.Width - PD.GetBounds.Width) / 2, -PD.GetBounds.Top + DestRect.Top + (DestRect.Height - PD.GetBounds.Height) / 2)
  5. А еще можно попробовать FillText со смещением -PD.GetBounds.Left, -PD.GetBounds.Top
  6. Перед FillPath попробуйте вставить PD.Translate(-PD.GetBounds.Left, -PD.GetBounds.Top);
  7. В ObjectInspector выбираете св-во MultiResBitmap ну и дальше по документации
  8. Справа вверху страницы есть кнопка
  9. В StyleDesigner-е находим стиль, объект которого типа TImage и называется, обычно, "[имя файла стиля без расширения]style.png" , и работаем с ним как с обычным TImage. Вот пример из стандартного стиля iOSBlack.fsf
  10. Не, ну если Вас не заботит то, что Ваше приложение будет выдавать ошибку под виндой - то конечно, пусть сами разбираются
  11. Похоже на то. Нет, это видно из исходников, и не больше одного элемента а размерности параметров APrompts и AValues должны совпадать. От размерности APrompts зависит количество полей ввода в диалоге.
  12. Хоть в хелпе и написано под виндой размерности массивов должны совпадать. Посмотрите FMX.DialogHelper.TDialogBuilder.InputQuery
  13. dnekrasov

    Select listbox

    Стилем: ListBoxItemStyle->ActiveStyleObject
  14. Лет 15 назад меня заставили написать один сборный контрол (как я ни старался убедить что фрейм лучше - не прокатило) - до сих пор - как вспомню, так вздрогну Чё тут думать - ТРЯСТИ НАДО :)
  15. Не легче ли использовать фреймы?
  16. Вот только все они наследованы не от TStyledControl. Очень редко можно встретить в стиле что-то заранее стилизованное. Не подходит StyleData - кто Вам мешает работать с FindStyleResource Сделать можно все что угодно - вот только насколько оно будет обосновано и стоит ли оно затраченного времени - решать Вам
  17. О как! Вы решили создать стиль для всего ОКНА! Стили для этого не предназначены. Ну так Вы же сами себе и ответили. Отсюда следует, что механизм работы со стилями просто для этого не подходит.
  18. Чёт я вообще ничего не понял... Что такое "скрол" и куда он "бросается". Что означает "намертво съедает чаилдов". StylesData чего и куда не может добраться? На каком этапе Вы выполняете указанный вами код? Из чего состоит "MessageBoxStyle". Что означает "ну не загрузился еще стиль" - вы не подгрузили его в проекте или предполагаете, то он еще не применился к контролу?
  19. По-моему вообще некорректно. Внешне-то будет выглядеть как надо, а вот логики работы не будет вообще. Ведь стиль - это только описание того, как контрол должен выглядеть, а не как работать. Кстати, копию стиля легче получить так MainControl := FindStyleResource('ScreenFogStyle', True);
  20. Из этого следует вывод, что шрифты надо регистрировать до применения стиля (если через TStyleManager) или до создания формы (если StyleBook). В общем лучше делать сразу после Application.Initialize - думаю это правильнее всего.
  21. Единственное моё предположение из-за чего это может быть - это момент регистрации шрифтов. Т.к. у меня это воспроизвести не получается - то у меня большая просьба к @wamaco отредактируйте, плз, файл проекта и попробуйте запустить ... begin TIconicFont.FontsReg; try Application.Initialize; TStyleManager.TrySetStyleFromResource('STYLE_Dark'); Application.CreateForm(TMainForm, MainForm); Application.Run; finally TIconicFont.FontsUnreg; end; end. Ну и если запустится нормально, то еще 2 варианта (чтоб точно знать когда надо регистрировать шрифты) 1: ... begin Application.Initialize; TIconicFont.FontsReg; try TStyleManager.TrySetStyleFromResource('STYLE_Dark'); Application.CreateForm(TMainForm, MainForm); Application.Run; finally TIconicFont.FontsUnreg; end; end. 2: ... begin Application.Initialize; TStyleManager.TrySetStyleFromResource('STYLE_Dark'); TIconicFont.FontsReg; try Application.CreateForm(TMainForm, MainForm); Application.Run; finally TIconicFont.FontsUnreg; end; end.
  22. Ну почему же: var F: TFont; PD: TPathData; begin F := TFont.Create; try F.Family := 'Kozuka Gothic Pr6N B'; F.Size := 60; with TBitmap.Create do try Canvas.Font.Assign(F); PD := TPathData.Create; try if Canvas.TextToPath(PD, RectF(0, 0, 10000, F.Size), '字字字 AsD АыЩ', False, TTextAlign.Leading, TTextAlign.Leading) then begin PathLabel.Width := PD.GetBounds.Width; PathLabel.Data := PD; end; finally PD.Free; end; finally Free; end finally F.Free; end; end;
  23. Ручками в поле "Resource identifier" Если Вы вставляли - то Вы и заполняли
  24. Чё-то я изначально затормозил... Если Вам просто надо отобразить иероглиф - то можно ведь сделать всё намного проще - через TPathLabel (она должна сама обрезать все отступы) var F: TFont; FG: TFontGlyph; bmp: TBitmap; begin F := TFont.Create; try F.Family := 'Kozuka Gothic Pr6N B'; F.Size := 60; FG := TFontGlyphManager.Current.GetGlyph(Char.ConvertToUtf32('字', 0), F, 1, [TFontGlyphSetting.Path]); try PathLabel.Width := FG.Path.GetBounds.Width; PathLabel.Height := F.Size; PathLabel.Data := FG.Path; // ну и если всё-таки bitmap-ка нужна bmp := PathLabel.MakeScreenshot; try // что-то делаем с битмапкой finally bmp.Free; end; finally FG.Free; end; finally F.Free; end; end;
×
×
  • Создать...