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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      2

    • Постов

      2 124


  2. Кривяков Виталий

    Кривяков Виталий

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


    • Баллы

      1

    • Постов

      79


  3. ruslan

    ruslan

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


    • Баллы

      1

    • Постов

      160


  4. VladimirS

    VladimirS

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


    • Баллы

      1

    • Постов

      152


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

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

  1. Добрый день! Как правильно проверить состояние wifi адаптера, включен он или нет? Есть готовая возможность в FM, или нужно для каждой платформы писать свой код?
    1 балл
  2. Streletz

    Проверить состояние WiFi

    К сожалению, готовых компонентов и даже классов для работы с WiFi "из коробки" пока нет. Для Windows смторите в сторону функций WinAPI по работе с WiFi. Пример решения данной проблемы для Android можно посмотреть здесь.
    1 балл
  3. ruslan

    ListItemBackground

    ну тебе же написали где копать. в FMX.ListView есть все. тебе нужно всего лишь добавить нужные свойства и переписать метод Render, который рисует итемобъект
    1 балл
  4. VladimirS

    ListItemBackground

    См. исходники, конкретно часть TListViewItemObjects = class(TListItemObjects) private FAppearance: TItemAppearanceObjects; function GetDetailObject: TListItemText; function GetGlyphButton: TListItemGlyphButton; function GetImageObject: TListItemImage; function GetTextButton: TListItemTextButton; function GetTextObject: TListItemText; function GetAccessoryObject: TListItemAccessory; function FindObjectT<T: TListItemObject>(const AName: string): T; public procedure Clear; override; property TextObject: TListItemText read GetTextObject; property DetailObject: TListItemText read GetDetailObject; property ImageObject: TListItemImage read GetImageObject; property TextButton: TListItemTextButton read GetTextButton; property GlyphButton: TListItemGlyphButton read GetGlyphButton; property AccessoryObject: TListItemAccessory read GetAccessoryObject; end; и думай, где и что тебе придется поменять, чтобы добавить в него еще один элемент - фон, с цветом/градиентом/картинкой/чем-нибудь-ещё
    1 балл
  5. Хорошо, что задали этот вопрос. Потому, что я вспомнил о более лаконичном и удобном решении. Чем тот, что я вам предложил. В XE7 был переведен на MVC модель. В итоге, TEdit позволяет не создавая наследников менять и дополнять работу TEdit. Идея простая, у TEdit есть несколько представлений, которые полностью осуществляют работу TEdit. Чтобы исправить это отклонение, нужно создать новое представление и заменить текущей TStyledEdit на новое, исправленное: unit FMX.Edit.MyStyle; interface uses FMX.Edit.Style, FMX.Controls.Presentation, System.UITypes, System.Classes; type // Новое представление - расширение текущего TMyStyledEdit = class(TStyledEdit) protected procedure MouseClick(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; end; // Промежуточный класс TMyStyledEditProxy = class(TPresentationProxy) protected function CreateReceiver: TObject; override; end; implementation uses System.SysUtils, FMX.Presentation.Factory, FMX.Types; { TMyStyledEditProxy } function TMyStyledEditProxy.CreateReceiver: TObject; begin Result := TMyStyledEdit.Create(nil); end; { TMyStyledEdit } procedure TMyStyledEdit.MouseClick(Button: TMouseButton; Shift: TShiftState; X, Y: Single); var Control: IControl; begin inherited; if Supports(PresentedControl, IControl, Control) then Control.MouseClick(Button, Shift, X, Y); end; initialization // Для всех TEdit удаляем базовое представление TPresentationProxyFactory.Current.Unregister('Edit-Style'); // Для всех TEdit регистрируем наше представление TPresentationProxyFactory.Current.Register('Edit-Style', TMyStyledEditProxy); finalization // Восстанавливаем старое представление Edit TPresentationProxyFactory.Current.Unregister('Edit-Style'); TPresentationProxyFactory.Current.Register('Edit-Style', TStyledEditProxy); end. Где немного упоминается о новом подходе: Нативные элементы управления Куда пропали методы DoChangeTracking и Change? Для исправления, достаточно добавить этот файл в проект. Этого будет достаточно. Проект: NewEditPresentation.zip
    1 балл
  6. Добрый день, Это ошибка, ее устранили в будущей новой версии среды. Для обхода проблемы в других версиях среды, нужно использовать следующий подход: var StyledPresentation: TStyledControl; begin StyledPresentation := nil; if Edit1.HasPresentationProxy then StyledPresentation := Edit1.PresentationProxy.Receiver as TStyledControl; if StyledPresentation <> nil then StyledPresentation.OnClick := Edit1Click; // <-- программно задать свой обработчик end; Код для С++ Builder: void __fastcall TForm2::FormCreate(TObject *Sender) { TStyledControl* styledPresentation; if (Edit1->HasPresentationProxy()) { styledPresentation = dynamic_cast<TStyledControl*>(Edit1->PresentationProxy->Receiver); styledPresentation->OnClick = Edit1Click; // <-- программно задать свой обработчик } }
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...