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

Лидеры

  1. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      3

    • Постов

      2 517


  2. Error

    Error

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


    • Баллы

      3

    • Постов

      167


  3. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      2

    • Постов

      2 124


  4. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      2

    • Постов

      842


Популярный контент

Показан контент с высокой репутацией 22.10.2016 во всех областях

  1. *** Небольшой обмен опытом *** Вижу что вопросы о размере текста довольно частые, поделюсь своими наработками. 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; --- Также данные функции можно найти в этом юните
    2 балла
  2. Alex7wrt

    Оценить приложение, Android

    В некоторых приложениях под Android, в частности ES проводник, есть возможность быстрой оценки приложения, когда не выходя из него, без перехода на Google Play, можно выбрать от 1 до 5 звезд. Можно ли это организовать с помощью FMX?
    1 балл
  3. К сожалению, это сделает функцию более медленной, я был перед выбором или скорость или точность, учитывая уже имеющиеся тормоза FMX я решил выбрать скорость. Но даже так функция работает весьма не плохо. Да, в будущем расширю обе функции для этого.
    1 балл
  4. если ListView.ItemIndex = -1, тогда элемент не выбран, если <>-1, то это и есть индекс выбранного элемента
    1 балл
  5. Alex7wrt

    ListView Item.Height

    I think, it's worth paing attention that ItemAppearence includes also Header and Footer.
    1 балл
  6. тебе нужно знать какой сейчас элемент выбран в listview тогда так можно попробовать. label.Text:=ListView1.Selected.Index.ToString(); покажет какой элемент сейчас выбран в listView
    1 балл
  7. Не претендую на самое лаконичное решение, но проверку можно организовать так: var tmp: TNotifyEvent; // понятно, что тут должен быть нужный тип события, лень смотреть, что там с OnKeyDown begin tmp:=myProc; if (TMethod(OnActivate).Code = TMethod(tmp).Code) and (TMethod(OnActivate).Data = TMethod(tmp).Data) then ;// именно myProc - обработчик события OnActivate
    1 балл
  8. ТС'у - не надо плодить и поднимать старые темы с одним и тем же вопросом! Все три темы объединил. Выбранный ТС'ом раздел как бы намекал... или ты уже перенёс тему?(вопрос более не актуален, посмотрел историю модерации)
    1 балл
  9. каков вопрос - таков ответ. Раскрывайте вопрос полностью, с описанием версии студии, использованных компонентов UPDATE: RESTRequest1.AddAuthParameter('name','value',TRESTRequestParameterKind.pkCOOKIE); UPDATE2: можно использовать альтернативный вариант, куда можно передать куки (как из примера выше)
    1 балл
  10. ListView1.Items[0].Text := 'Сменим текст для Itema под индексом 0'; В ListView нельзя скрывать отдельные Item'ы
    1 балл
  11. вот так можно активировать фронтальную камеру VideoRecorder_front.zip
    1 балл
  12. kami

    Паттерн Наблюдатель

    Так куда уж подробнее Всё, что может меняться - должно иметь интерфейс подписки. Все заинтересованные объекты должны подписываться и отписываться. А уж реализация и передаваемая информация - это детали. У меня, например, в качестве события об уведомлении используется вот такое: type TNotificationAction = (naAdd, naChange, naDelete); TNotificationEvent<T> = procedure(Sender: TObject; Action: TNotificationAction; const Param: T) of object; Можете глянуть в исходники FMX, фраза для поиска - FreeNotification
    1 балл
  13. Не вдаваясь в подробности - ответ Да. Зачем создавать все контролы, если пользователю доступна только 1 вкладка? Создавайте их когда будет необходимость, т.е. например пользователь перейдёт на другую вкладку. А ещё лучше создавайте фрейм или форму по такому же принципу и будет вам счастье
    1 балл
  14. Можно, нужно создать TWTweetComposeViewController, заполнить его текстом и изображением и затем отобразить. Документация TWTweetComposeViewController Class Reference
    1 балл
  15. Исходный код примера для RAD Studio XE5: ShareSheet Описание: Taking and Sharing a Picture (iOS and Android) В FireMonkey реализованы стандартные действия для выполнения автоматической отправки данных другим приложениям телефона. Например, такие как: Отправка поста в Twitter или FaceBook Отправка письма Отправка SMS и другие Чтобы воспользоваться этой функцией в FireMonkey создано специальное стандартное действие TShowShareSheetAction, которое открывает стандартное системное окно выбора действия (постинг в Twitter или Facebook и тд). 1. Кидаем на форму TActionList. 2. Двойным кликом на компонент TActionList, открываем дизайнер действий. 3. В левом верхнем углу выбираем создание стандартного действия 4. Среди стандартных действий выбираем в группе "Media Library" действие TShowShareSheetAction. 5. Для созданного действия указываем текст сообщения или изображение (можно указывать как по отдельности эти данные, так и по частям). В зависимости от указанных данных (текст и изображение) действие откроет системное окно выбора действий приложений, которые могут обработать ваши данные. На картинке ниже, я указал текст сообщения и картинку через свойства TextMessage и Bitmap: 6. Подвязываем созданное действие к любой кнопке. 7. На ios и андроид нажатие на кнопку с действием приведет к отображению окна выбора действия: Подробный о том, как пользоваться этой функцией продемонстрирован в этом видео:
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...