des80 Опубликовано 12 января, 2017 Поделиться Опубликовано 12 января, 2017 (изменено) Есть ли возможность указать какой шрифт должен использоваться по дефолту в моем приложении на всех формах и на всех контролах? У них сейчас стоит у всех (default), я хочу в одном месте всем задать, чтобы вместо (default) подставлялся Arial например Изменено 12 января, 2017 пользователем des80 Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 12 января, 2017 Модераторы Поделиться Опубликовано 12 января, 2017 пару вопросов какая платформа? шрифт родной для этой платформы или "левый"? Цитата Ссылка на комментарий
0 des80 Опубликовано 12 января, 2017 Автор Поделиться Опубликовано 12 января, 2017 35 минут назад, Равиль Зарипов (ZuBy) сказал: пару вопросов какая платформа? шрифт родной для этой платформы или "левый"? Windows, шрифт родной для платформы Цитата Ссылка на комментарий
0 des80 Опубликовано 12 января, 2017 Автор Поделиться Опубликовано 12 января, 2017 хотя и левые, установленные в винде тоже было бы неплохо Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 12 января, 2017 Модераторы Поделиться Опубликовано 12 января, 2017 ну например вот так ChangeFont.zip Цитата Ссылка на комментарий
0 des80 Опубликовано 12 января, 2017 Автор Поделиться Опубликовано 12 января, 2017 17 минут назад, Равиль Зарипов (ZuBy) сказал: ну например вот так ChangeFont.zip Этот код просто заменяет у всех компонентов данной формы шрифты. Если у меня 30 форм то мне придется на каждой форме прописывать этот код. И этот код не поменяет шрифт у динамически создаваемых компонентов. Другого нет способа? Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 12 января, 2017 Модераторы Поделиться Опубликовано 12 января, 2017 Только что, des80 сказал: Этот код просто заменяет у всех компонентов данной формы шрифты. Если у меня 30 форм то мне придется на каждой форме прописывать этот код. И этот код не поменяет шрифт у динамически создаваемых компонентов. Другого нет способа? эмм.. а где должен шрифт меняться?? что вам мешает у динамически создаваемых компонентов прописать нужный шрифт? да хоть 100 форм, в чем проблема? Цитата Ссылка на комментарий
0 des80 Опубликовано 12 января, 2017 Автор Поделиться Опубликовано 12 января, 2017 Только что, Равиль Зарипов (ZuBy) сказал: эмм.. а где должен шрифт меняться?? что вам мешает у динамически создаваемых компонентов прописать нужный шрифт? да хоть 100 форм, в чем проблема? 1.я хочу в одном месте централизованно написать код, чтобы (default) во всех формах, на всех компонентах, включая те, которые создаются после выполнения этого кода воспринимался как какой то определенный шрифт. То есть задать какой то шрифт дефолтным. 2.ничего не мешает, просто нужно в 100500 мест залезть в коде и прописать FontFamily:='Arial'; 3.проблема в том, что мне придется на каждой форме это вызывать, мне придется это 100 раз копипастить. Чтобы этого не делать я и задал этот вопрос возможно ли задать какой то шрифт дефолтным в принципе Цитата Ссылка на комментарий
0 Дмитрий Ш. Опубликовано 12 января, 2017 Поделиться Опубликовано 12 января, 2017 Delphi умеет наследование форм. Делаете основную форму с общим поведением для всех форм и все формы проекта наследуете от этой формы. Равиль Зарипов (ZuBy) 1 Цитата Ссылка на комментарий
0 des80 Опубликовано 12 января, 2017 Автор Поделиться Опубликовано 12 января, 2017 (изменено) 2 минуты назад, Дмитрий Ш. сказал: Delphi умеет наследование форм. Делаете основную форму с общим поведением для всех форм и все формы проекта наследуете от этой формы. Да поздно уже наследовать. Проект уже написан. И опять таки это не решает проблему с динамически создаваемыми компонентами на формах-наследниках Изменено 12 января, 2017 пользователем des80 Цитата Ссылка на комментарий
1 Модераторы Равиль Зарипов (ZuBy) Опубликовано 12 января, 2017 Модераторы Поделиться Опубликовано 12 января, 2017 "я не хочу думать! я хочу кнопку, нажимаешь и все работает" как я вижу эту реализацию: делается отдельный модуль, в который перемещается код procedure ChangeFont(const aControl: TControl; const aFontName: string); const StyledSett = [TStyledSetting.Size, TStyledSetting.Style, TStyledSetting.FontColor]; var aTextSettings: ITextSettings; I: Integer; begin if aControl is TListView then begin (aControl as TListView).ItemAppearanceObjects.ItemObjects.Text.Font.Family := aFontName; (aControl as TListView).ItemAppearanceObjects.ItemObjects.Detail.Font.Family := aFontName; end else begin if Supports(aControl, ITextSettings, aTextSettings) then begin aTextSettings.StyledSettings := StyledSett; aTextSettings.TextSettings.Font.Family := aFontName; end; for I := 0 to aControl.ControlsCount - 1 do ChangeFont(aControl.Controls[I], aFontName); end; end; .................................................. procedure ApplyFontToForm(const aForm: TForm; const aFontName: string;); var I: Integer; begin for I := 0 to aForm.ComponentCount - 1 do begin if aForm.Components[I] is TControl then ChangeFont(aForm.Components[I] as TControl, aFontName); end; end; прописываем ChangeFont и ApplyFontToForm до implementation и в форме после создания дин. компонентов и/или в OnShow пишем ApplyFontToForm(Form30, 'Roboto'); даже незнаю как можно сделать проще egorea1999 и Rusland 2 Цитата Ссылка на комментарий
-4 des80 Опубликовано 12 января, 2017 Автор Поделиться Опубликовано 12 января, 2017 (изменено) 11 минут назад, Равиль Зарипов (ZuBy) сказал: "я не хочу думать! я хочу кнопку, нажимаешь и все работает" как я вижу эту реализацию: делается отдельный модуль, в который перемещается код procedure ChangeFont(const aControl: TControl; const aFontName: string); const StyledSett = [TStyledSetting.Size, TStyledSetting.Style, TStyledSetting.FontColor]; var aTextSettings: ITextSettings; I: Integer; begin if aControl is TListView then begin (aControl as TListView).ItemAppearanceObjects.ItemObjects.Text.Font.Family := aFontName; (aControl as TListView).ItemAppearanceObjects.ItemObjects.Detail.Font.Family := aFontName; end else begin if Supports(aControl, ITextSettings, aTextSettings) then begin aTextSettings.StyledSettings := StyledSett; aTextSettings.TextSettings.Font.Family := aFontName; end; for I := 0 to aControl.ControlsCount - 1 do ChangeFont(aControl.Controls[I], aFontName); end; end; .................................................. procedure ApplyFontToForm(const aForm: TForm; const aFontName: string;); var I: Integer; begin for I := 0 to aForm.ComponentCount - 1 do begin if aForm.Components[I] is TControl then ChangeFont(aForm.Components[I] as TControl, aFontName); end; end; прописываем ChangeFont и ApplyFontToForm до implementation и в форме после создания и/или в OnShow пишем ApplyFontToForm(Form30, 'Roboto'); даже незнаю как можно сделать проще ты дурак или нет? 1.У меня уже есть проект, в котором 100 форм, я прекрасно знаю как это сделать, я прекрасно знаю что мне нужно прописать ApplyFontToForm в OnShow каждой формы, но мне придется делать это 100 раз, а я задал здесь этот вопрос, чтобы узнать можно ли ОДИН раз задать что Arial это дефолтный шрифт, шрифт по умолчанию. Во всех 100 формах у меня везде шрифт прописан (default). А что это за шрифт default? какой шрифт по факту туда подставляется? и можно ли ЗАМЕНИТЬ этот шрифт по умолчанию. Этот шрифт задается в настройках винды? или его можно задать отдельно в моей программе? 2.Ок, я написал 100 раз на 100 формах ApplyFontToForm в OnShow. А потом у меня создаются кнопки и лабелы после выполнения этого кода и на ней будет стандартный шрифт, а не тот который я задал в ApplyFontToForm. Да я могу без проблем задать шрифт при создании компонента, но КОД УЖЕ НАПИСАН И ЕГО МНОГО и мне опять таки мне придется это делать много много раз, во многих местах прописывать Familyfont='Arial'. Понимаешь, нет? Изменено 12 января, 2017 пользователем des80 Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 12 января, 2017 Модераторы Поделиться Опубликовано 12 января, 2017 не хорошо так выражаться, можно и бан получить то что у тебя 100 форм это твоя проблема то что тебе лень прописать одну строчку в создании одного типа компонентов, то думаю что там говно-код и если бы ты понял, что я предлагаю, ты бы уже давно реализовал, а не писал на форуме "остроумный" пост, в коде добавляется только одна строчка и это не ApplyFontToForm (если там не говно-код) я бы предложил еще один кардинальный вариант, но не буду egorea1999 и Rusland 2 Цитата Ссылка на комментарий
-6 des80 Опубликовано 12 января, 2017 Автор Поделиться Опубликовано 12 января, 2017 (изменено) 12 минут назад, Равиль Зарипов (ZuBy) сказал: не хорошо так выражаться, можно и бан получить то что у тебя 100 форм это твоя проблема то что тебе лень прописать одну строчку в создании одного типа компонентов, то думаю что там говно-код и если бы ты понял, что я предлагаю, ты бы уже давно реализовал, а не писал на форуме "остроумный" пост, в коде добавляется только одна строчка и это не ApplyFontToForm (если там не говно-код) я бы предложил еще один кардинальный вариант, но не буду ну тут 2 варианта : либо ты слабоумный, раз не понял что я имел ввиду после такого разжевывания либо я непонятно объясняю суть проблемы Изменено 12 января, 2017 пользователем des80 Цитата Ссылка на комментарий
0 Дмитрий Ш. Опубликовано 12 января, 2017 Поделиться Опубликовано 12 января, 2017 des80, с такой позицией помощи можно не ждать. хамству тут не место rareMax и Rusland 2 Цитата Ссылка на комментарий
2 Error Опубликовано 12 января, 2017 Поделиться Опубликовано 12 января, 2017 Можно поиграться с подменой: IFMXSystemFontService = interface(IInterface) ['{62017F22-ADF1-44D9-A21D-796D8C7F3CF0}'] function GetDefaultFontFamilyName: string; function GetDefaultFontSize: Single; end; des80 и dnekrasov 2 Цитата Ссылка на комментарий
0 egorea1999 Опубликовано 12 января, 2017 Поделиться Опубликовано 12 января, 2017 (изменено) 6 часов назад, des80 сказал: ты дурак или нет? 1.У меня уже есть проект, в котором 100 форм, я прекрасно знаю как это сделать, я прекрасно знаю что мне нужно прописать ApplyFontToForm в OnShow каждой формы, но мне придется делать это 100 раз, а я задал здесь этот вопрос, чтобы узнать можно ли ОДИН раз задать что Arial это дефолтный шрифт, шрифт по умолчанию. Во всех 100 формах у меня везде шрифт прописан (default). А что это за шрифт default? какой шрифт по факту туда подставляется? и можно ли ЗАМЕНИТЬ этот шрифт по умолчанию. Этот шрифт задается в настройках винды? или его можно задать отдельно в моей программе? 2.Ок, я написал 100 раз на 100 формах ApplyFontToForm в OnShow. А потом у меня создаются кнопки и лабелы после выполнения этого кода и на ней будет стандартный шрифт, а не тот который я задал в ApplyFontToForm. Да я могу без проблем задать шрифт при создании компонента, но КОД УЖЕ НАПИСАН И ЕГО МНОГО и мне опять таки мне придется это делать много много раз, во многих местах прописывать Familyfont='Arial'. Понимаешь, нет? Ну если все дураки, что сам не додумался? 6 часов назад, des80 сказал: .ничего не мешает, просто нужно в 100500 мест залезть в коде и прописать FontFamily:='Arial'; Возьми dfm файлы и регулярками пройдись по свойствам. 6 часов назад, des80 сказал: проблема в том, что мне придется на каждой форме это вызывать, мне придется это 100 раз копипастить. прицепи 1 обработчик на 100 форм. Какой - это уже сказали выше. Сам обработчик - в отдельный юнит. Ну далее, думаю, понятно. P.S. 6 часов назад, des80 сказал: Этот шрифт задается в настройках винды? По секрету скажу: в BIOS'е. Изменено 12 января, 2017 пользователем egorea1999 Цитата Ссылка на комментарий
1 Модераторы Andrey Efimov Опубликовано 12 января, 2017 Модераторы Поделиться Опубликовано 12 января, 2017 Уважаемые участники, в частности @des80! Призываю вас к соблюдению общепринятых норм общения. Вынесено 1 предупреждение. За дальнейшим нарушением незамедлительно последует наказание на усмотрение Администратора/Модератора. Цитата Ссылка на комментарий
-4 des80 Опубликовано 13 января, 2017 Автор Поделиться Опубликовано 13 января, 2017 15 часов назад, Дмитрий Ш. сказал: des80, с такой позицией помощи можно не ждать. хамству тут не место какой еще позицией? Я всего то задал вопрос, а зарипов его неправильно понял и киданул мне решение, которое я слил, это задело его опухшее чсв и он стал бросаться фразочками типо "говнокод" или "я не хочу думать! я хочу кнопку, нажимаешь и все работает" , на такой бред я не мог не ответить. Цитата Ссылка на комментарий
0 RoschinSpb Опубликовано 16 января, 2017 Поделиться Опубликовано 16 января, 2017 Здесь про стили кто-нибудь говорил? Так вот в стиле как раз и указывается какой шрифт используется по умолчанию. Про стили тут вроде отдельная тема есть. Цитата Ссылка на комментарий
0 irico Опубликовано 10 июня, 2017 Поделиться Опубликовано 10 июня, 2017 (изменено) Не могу понять, почему шрифты которые дополнительно установлены в системе не отображаются при переносе приложения в другой комп. Т.е. установил шрифты, указал их в стиле или просто в настройках кнопки и т.д. Все ОК. Переношу приложение на другой комп, так же устанавливаю шрифты, запускаю приложение. Шрифт или не отображается вообще или загружается по дефолту. При то что, в этом же приложении запихиваю все шрифты в системе в combobox и так эти шрифты есть. Но они как бы не работают. В VCL это работает без проблем. Изменено 10 июня, 2017 пользователем irico Цитата Ссылка на комментарий
Вопрос
des80
Есть ли возможность указать какой шрифт должен использоваться по дефолту в моем приложении на всех формах и на всех контролах? У них сейчас стоит у всех (default), я хочу в одном месте всем задать, чтобы вместо (default) подставлялся Arial например
Изменено пользователем des80Ссылка на комментарий
20 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.