Поиск сообщества
Показаны результаты для тегов 'text'.
Найдено: 7 результатов
-
На моём Samsung Note 5 вокруг букв проглядываются линии. Причём пробовал 3 различных разрешения экрана, ничего не меняется. У друга на Xiaomi Redmi 4x такого не наблюдается. Что это может быть?
-
Обнаружил очередной глюк Tokyo - сломали Text в Android. А именно порушили раскраску символов Юникода. Воспроизводится просто : procedure TFormMain.FormCreate(Sender: TObject); Var Text1: TText; begin Text1:=TText.Create(Self); Text1.Text:='|' + Char($2713) + '|'; Text1.Font.Size:=48; Text1.Color:=TAlphaColorRec.Red; Text1.Align:=TAlignLayout.Client; Text1.TextSettings.HorzAlign:=TTextAlign.Center; Text1.TextSettings.VertAlign:=TTextAlign.Center; FormMain.AddObject(Text1); end; На первом скриншоте этот код выполнен в Berlin, все выглядит как задуманно. На втором скриншоте этот же код в Tokyo.
-
Добрый день. Столкнулся с такой проблемой, есть приложение которое делает парсинг сайта и собирает нужные ссылки в ListBox а из ListBox-а потом ссылку открывает браузер, с ListBox-ом проблем не было (за исключением скорости работы) делал так: procedure TForm16.ListBox1Click(Sender: TObject); begin WebBrowser1.URL:=listbox1.Selected.Text; end; решил вместо ListBox использовать ListView собираю данные в ListView но не знаю как передать браузеру(
-
*** Небольшой обмен опытом *** Вижу что вопросы о размере текста довольно частые, поделюсь своими наработками. function CalcTextSize(Text: string; Font: TFont; Size: Single = 0): TSizeF; Функция для расчета размера прямоугольника, занимаемого однострочным текстом. Параметры: Text - Текст Font - Шрифт с которым будет выводиться текст Size - если 0, то Font.Size будет использоваться из Font, иначе из данного параметра Исходный код: uses System.Types, FMX.Types, FMX.Graphics, FMX.TextLayout, System.Math, System.SysUtils; function CalcTextSize(Text: string; Font: TFont; Size: Single = 0): TSizeF; var TextLayout: TTextLayout; begin TextLayout := TTextLayoutManager.DefaultTextLayout.Create; try TextLayout.BeginUpdate; try TextLayout.Text := Text; TextLayout.MaxSize := TPointF.Create(9999, 9999); TextLayout.Font.Assign(Font); if not SameValue(0, Size) then begin TextLayout.Font.Size := Size; end; TextLayout.WordWrap := False; TextLayout.Trimming := TTextTrimming.None; TextLayout.HorizontalAlign := TTextAlign.Leading; TextLayout.VerticalAlign := TTextAlign.Leading; finally TextLayout.EndUpdate; end; Result.Width := TextLayout.Width; Result.Height := TextLayout.Height; finally TextLayout.Free; end; end; function FontSizeForBox(Text: string; Font: TFont; Width, Height: Single; MaxFontSize: Single = cMaxFontSize): Integer; Функция возвращающая максимально возможный размер шрифта, для текста вписанного в заданный прямоугольник. Параметры: Text - Текст Font - Шрифт с которым будет выводиться текст Width, Height - Ширина и высота прямоугольника MaxFontSize - Максимально возможный размер шрифта Исходный код: uses System.Types, FMX.Types, FMX.Graphics, FMX.TextLayout, System.Math, System.SysUtils; const cMaxFontSize = 512; function FontSizeForBox(Text: string; Font: TFont; Width, Height: Single; MaxFontSize: Single = cMaxFontSize): Integer; var Size, Max, Min, MaxIterations: Integer; Current: TSizeF; begin Max := Trunc(MaxFontSize); Min := 0; MaxIterations := 20; repeat Size := (Max + Min) div 2; Current := CalcTextSize(Text, Font, Size); if ((Abs(Width - Current.Width) < 1) and (Width >= Current.Width)) and ((Abs(Height - Current.Height) < 1) and (Height >= Current.Height)) then break else if (Width < Current.Width) or (Height < Current.Height) then Max := Size else Min := Size; Dec(MaxIterations); until MaxIterations = 0; Result := Size; end; --- Также данные функции можно найти в этом юните
-
Здравствуйте, дорогие друзья! Открыл для себя firemonkey, и неожиданно поняд, что крос платформенность - тяжелая для меня ноша! Я хочу выполнить простую операцию, подгрузить в приложение список системных шрифтов, чтобы пользователь, мог сам выбрать, что ему нравится. Обнаружил, что в firemonkey нет TFontDialog, нет TFontList. Ситуация бесfontовая! Благо есть интернет. И там, добрый человек - честь и хвала ему - детально раскладывает, как решить эту задачу хоть для windows, хоть для Mac. https://delphiscience.wordpress.com/2012/11/20/getting-system-fonts-list-in-firemonkey-the-new-tplatformextensions-class/ Но снова судьба злодейка кинула! Коды на Delphi! А я только начал разбираться в СИ++. В общем, прошу Вас, друзья, помочь мне адаптировать тот код под СИ, и вконце концов получить список системных шрифтов: TPlatformExtention.h //--------------------------------------------------------------------------- #ifndef PlatformExtentionH #define PlatformExtentionH //--------------------------------------------------------------------------- #include <System.Classes.hpp> //--------------------------------------------------------------------------- class TPlatformExtention: public TObject{ public: void FGetSystemFonts( TStringList *FontList ); }; //--------------------------------------------------------------------------- #endif TPlatformExtention.cpp //--------------------------------------------------------------------------- #pragma hdrstop #include <string> #include "PlatformExtention.h" //--------------------------------------------------------------------------- int FEnumFonts( TLogFont LogFont, TTextMetric TextMetric, unsigned long FontType, long Data ){ TStringList *List = new TStringList(); UnicodeString fName; fName = LogFont.lfFaceName; if( List->Count == 0 || (AnsiCompareText(List[List->Count-1].Text, fName) != 0 ) ){ List->Add( fName ); return 1; } return 0; } //--------------------------------------------------------------------------- void TPlatformExtention::FGetSystemFonts( TStringList *FontList ){ HDC dContext; TLogFont *LogFont = new TLogFont; dContext = GetDC(0); StringOfChar( *(LogFont->lfFaceName), sizeof( LogFont ) ); LogFont->lfCharSet = DEFAULT_CHARSET; EnumFontFamiliesEx( dContext, LogFont, FEnumFonts, 0, 0 ); ReleaseDC(0, dContext); } //--------------------------------------------------------------------------- #pragma package(smart_init) Моя признательность всем откликнувшимся не знает границ. Всем спасибо
-
- firemonkey
- text
-
(и ещё 2 )
C тегом:
-
Поэкспериментировал и нашел простейший случай - узел и в нем два листа. Алгоритм следующий (упрощенно) каждый лист показывает пару key=value при клике в узел остается только key= и показывается листвью с выбором value. Затем мы получаем грубо key=new value (хотя не обязательно) После такой операции вы обязательно получаем то что 2 листа меняются местами С узлом ничего не происходит ни программно ни фактически В более сложных случаях тоже шевеление наблюдается, но я его не изучал подробно