-
Постов
317 -
Зарегистрирован
-
Посещение
-
Победитель дней
52
Весь контент dnekrasov
-
Если Вам не нужно масштабирование - просто в свойствах проекта снимите птичку "Enable High-DPI"
-
Вместо TTask.Run можно использовать TThread.CreateAnonymousThread в связке с TThread.OnTerminate
-
Или Alt+F12 в Design режиме, после чего форму можно редактировать в текстовом режиме. Ну или просто выделить все контролы на форме - Ctrl+A или Shift+Click - а затем, как обычно - Ctrl+X->выбратьTabItem1->Ctrl+V
-
Ну как же? В первом параметре идет прямоугольник в который выводится текст. Ему и сделать 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)
-
А еще можно попробовать FillText со смещением -PD.GetBounds.Left, -PD.GetBounds.Top
-
Перед FillPath попробуйте вставить PD.Translate(-PD.GetBounds.Left, -PD.GetBounds.Top);
-
В ObjectInspector выбираете св-во MultiResBitmap ну и дальше по документации
-
Справа вверху страницы есть кнопка
-
В StyleDesigner-е находим стиль, объект которого типа TImage и называется, обычно, "[имя файла стиля без расширения]style.png" , и работаем с ним как с обычным TImage. Вот пример из стандартного стиля iOSBlack.fsf
-
Не, ну если Вас не заботит то, что Ваше приложение будет выдавать ошибку под виндой - то конечно, пусть сами разбираются
-
Похоже на то. Нет, это видно из исходников, и не больше одного элемента а размерности параметров APrompts и AValues должны совпадать. От размерности APrompts зависит количество полей ввода в диалоге.
-
Хоть в хелпе и написано под виндой размерности массивов должны совпадать. Посмотрите FMX.DialogHelper.TDialogBuilder.InputQuery
-
Стилем: ListBoxItemStyle->ActiveStyleObject
-
Лет 15 назад меня заставили написать один сборный контрол (как я ни старался убедить что фрейм лучше - не прокатило) - до сих пор - как вспомню, так вздрогну Чё тут думать - ТРЯСТИ НАДО :)
-
Не легче ли использовать фреймы?
-
Вот только все они наследованы не от TStyledControl. Очень редко можно встретить в стиле что-то заранее стилизованное. Не подходит StyleData - кто Вам мешает работать с FindStyleResource Сделать можно все что угодно - вот только насколько оно будет обосновано и стоит ли оно затраченного времени - решать Вам
-
О как! Вы решили создать стиль для всего ОКНА! Стили для этого не предназначены. Ну так Вы же сами себе и ответили. Отсюда следует, что механизм работы со стилями просто для этого не подходит.
-
Чёт я вообще ничего не понял... Что такое "скрол" и куда он "бросается". Что означает "намертво съедает чаилдов". StylesData чего и куда не может добраться? На каком этапе Вы выполняете указанный вами код? Из чего состоит "MessageBoxStyle". Что означает "ну не загрузился еще стиль" - вы не подгрузили его в проекте или предполагаете, то он еще не применился к контролу?
-
По-моему вообще некорректно. Внешне-то будет выглядеть как надо, а вот логики работы не будет вообще. Ведь стиль - это только описание того, как контрол должен выглядеть, а не как работать. Кстати, копию стиля легче получить так MainControl := FindStyleResource('ScreenFogStyle', True);
-
Из этого следует вывод, что шрифты надо регистрировать до применения стиля (если через TStyleManager) или до создания формы (если StyleBook). В общем лучше делать сразу после Application.Initialize - думаю это правильнее всего.
- 14 ответов
-
Единственное моё предположение из-за чего это может быть - это момент регистрации шрифтов. Т.к. у меня это воспроизвести не получается - то у меня большая просьба к @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.
- 14 ответов
-
Ну почему же: 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;
-
вот скрин из моего проекта
-
Ручками в поле "Resource identifier" Если Вы вставляли - то Вы и заполняли
-
Чё-то я изначально затормозил... Если Вам просто надо отобразить иероглиф - то можно ведь сделать всё намного проще - через 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;