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

Rusland

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

    1 204
  • Зарегистрирован

  • Посещение

  • Победитель дней

    26

Активность репутации

  1. Like
    Rusland отреагировална Error в [Статья] VCL, избавляемся от мерцания, раз и навсегда   
    Ссылка: https://habrahabr.ru/post/318876/
    Автор: Error
    Описание:
    Delphi и C++Builder разработчики, использующие VCL не по наслышке знают о вездесущей проблеме мерцания контролов.
    Мерцание происходит при перерисовке, вследствие того, что сначала отрисовываеться фон компонента, и только потом сам компонент.
    И если в случае с наследниками от TWinControl частичным решением проблемы является установка свойства DoubleBuffered в True, что заставляет контрол отрисовываться в буфере(однако DoubleBuffered работает тоже не идеально, к прим.: контрол перестает быть прозрачным), то в случае с TGraphicControl решение с DoubleBuffered просто невозможно, из-за отсутствия у TGraphicControl окна, установка же DoubleBuffered в True у родителя не помогает, из-за того что отрисовка вложенных TGraphicControl-ов происходит уже после прорисовки родителя в буфере.
    Обычно остается только одно — смириться с мерцанием, и максимально упростить отрисовку для минимизации эффекта, или использовать по возможности исключительно TWinControl-ы, что не всегда возможно и удобно.
    Однажды намучившись с мерцанием, я не выдержал и решил решить эту проблему, раз и навсегда!
    ...
  2. Like
    Rusland отреагировална Fedor K в Список приложений Android в listbox   
    Думаю для старта Вам хватит этого sample. Код писал на старой XE7 и сейчас требуются правки, но для понимания подойдет. Если будут вопросы - пишите.
  3. Like
    Rusland отреагировална Error в Перспективы RAD   
    Мое решение, все тоже - жду год, смотрю что происходит. Сейчас я стараюсь "доводить" свои наработки в OpenSource и выкладывать в бесплатном или нет варианте, делиться опытом, который есть в виде статей и заметок, чтобы оно не сгинуло если что...
  4. Like
    Rusland отреагировална Andrey Efimov в [Статья][AdMob] Добавляем рекламный блок в приложение   
    Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html
    Автор: Андрей Ефимов
    Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.
     
  5. Like
    Rusland отреагировална Error в Насколько хорош FMX для iOS?   
    Форумы - прежде всего этот.
    Готовые решения - периодически на http://www.fmxexpress.com/ проскакивает разное, на Google+ есть Delphi сообщество, https://www.beginend.net/ - агрегатор блогов, на https://habrahabr.ru/hub/delphi/ бывают полезные матерьялы.
  6. Like
    Rusland отреагировална Brovin Yaroslav в Описание TfgImageList   
    Первый набросок компонента, позволяющего организовать централизованное хранение графических ресурсов для всех платформ.
    Основные особенности:
    Спроектирован для использования одного экземпляра изображения во многих компонентах. Позволяет хранить все графические ресурсы любых размеров. В будущем не будет грузить картинки в память, если они не используются. А будет подгружать их из файла по мере необходимости. Тем самым будет значительно экономиться память. Хранение именованных графических ресурсов, а не по индексу. Это позволяет отразить в названии назначение картинки. Использование папок. Группировка изображений по смыслу для удобства работы с ними. Возможность загрузки разных картинок для разных устройств, или же загрузить один набор картинок для всех устройств. Удобная и быстрая загрузка изображений путем перетаскивания Хранение отступов изображения.  Наглядное отображение картинки в свойствах компонентах. При изменении имени картинки, в компонентах используемых картинку идет автоматическое обновление имени картинки. В стандартном TImageList, из-за индексной структуру все картинки съезжают и при удалении картинки, компонент начинает отображать уже другую картинку.


  7. Like
    Rusland отреагировална Brovin Yaroslav в Описание TfgRectangle   
    Описание
    Назначение: Компонент предназначен для отображения прямоугольника. Главное отличие от стандартного TRectangle - это возможность округления позиции и размера прямоугольника для избежания размытия границ. Поддерживаемые платформы: Windows, OSX, iOS, Android Демо проект: Samples\ShapesDemo\ShapesDemo.dproj Возможности
    Одной из проблем графических примитивов в FMX - это размытие границ, вызванное отсутствием привязки изображения к физическим пикселям экрана. Поэтому любое смещении координат прямоугольника на дробную часть приводит к размытию границы. Это хорошо видно на скриншоте ниже (Граница самого нижнего прямоугольника размыта, по сравнению с прямоугольниками выше)
     
    Округление к физическим пикселям - TfgRectnalge.AlignToPixels Настройка отображения углов - TfgRectangle.Corners Настройка закругления внешних углов - Corners.RadiusX, Corners.RadiusY Настройка способа вывода угла - Corners.CornerType Указание какие углы выводить - Corners.Corners Настройка цвета границы - TfgRectangle.Stroke Настройка заливки - TfgRectangle.Fill
     
  8. Like
    Rusland отреагировална Akromd в Утечка при использовании TDialogService   
    При включенной функции ReportMemoryLeaksOnShutdown  заметил, что при вызове Tdialogservice.inputquery после закрытия формы выходит ошибка утечки памяти связанный с TWinAcceleratorKeyRegistry, с чем может быть связано?

    пример кода:
    TDialogService.InputQuery('Имя игрока',['Имя'],[PlayerNameText.Text], procedure (Const AResult: TModalResult; const AValues: array of string) begin if not AValues[0].Equals(PlayerNameText.Text) then begin Hero.NamePlayers := AValues[0]; end; end);  
  9. Like
    Rusland отреагировална AngryOwl в Мультиязычность в приложении   
    Я вот тут (с примерами) тоже предлагал свое "видение" этого вопроса.
  10. Like
    Rusland отреагировална AngryOwl в [ListBox] загрузка картинок   
    1. Создайте свой стиль для ListBoxItem, например 'listboxitemMystyle', скопировав стандартный и переобозвав его. В своем стиле Итемов просто сделайте невидимым Detail. Или, что еще лучше, - храните Ваши ссылки в TagString Итема.
    2. В Style Designer, при редактировании Вашего listboxitemMystyle, вставьте TImage задайте ему необходимые свойства: выравнивание, размеры, отступы и т.д. (не забудьте сделать "растягивание" или что там Вам требуется - просто проверьте в дизайнере). И задайте Вашему TImage имя, например, 'myimagestyle'.
    3. При загрузке изображения я бы рекомендовал сначала загрузить изображение в созданный TBitmap, а потом уже грузить его в наш 'myimagestyle'. А самое оптимальное решение - загрузка изображений в "контейнер", в фоновом режиме, а при окончании загрузки, по событию, - отрисовка уже в самом итеме. В любом случае - сначала в битмап, а потом этот битмап в Итем. Иначе, вероятность того что битмап отрисуется в вашем случае - практически нулевая.
    4. Далее, при создании итемов:
    procedure ContactList_AddItem(Sender: TObject); var newItem : TListBoxItem; newBitmap : TBitmap; begin newItem := TListBoxItem.Create(nil); newItem.StyleLooup := 'listboxitemMystyle'; // хотя будет проще не писать этого, а прописать в ListBox1.DefaultItemStyles.ItemStyle newItem.Text := 'текст'; newItem.TagString := тут может быть Ваша ссылка newBitmap := TBitmap.Create; newBitmap.LoadFrom ....... // грузим картинку newItem.TagObject := newBitmap; newItem.OnApplyStyleLookup := MyItemApplyStyle; ListBox1.AddObject(newItem); end; procedure MyItemApplyStyle(Sender: TObject); var LI : TListBoxItem; tmpBitmap : TBitmap; begin LI := Sender as TListBoxItem; if Assigned(LI) then try LI.BeginUpdate; tmpBitmap := LI.TagObject as TBitmap; if Assigned(tmpBitmap) then LI.StylesData['myimagestyle.bitmap'] := tmpBitmap; // тут вообще можно обновлять все что угодно в этом Итеме finally LI.EndUpdate; end; end; Собственно все.
    Сорри если что не понятно -  писал "от руки", без проверки. Но вроде все просто.
  11. Like
    Rusland отреагировална #WAMACO в С Наступающим Новым Годом!   
    С Новым годом! Удачи, здоровья, всех благ!
  12. Like
    Rusland отреагировална AngryOwl в С Наступающим Новым Годом!   
    Присоединяюсь!
    Желаю всем здоровья, благополучия и успехов в работе и личной жизни!
    С наступающим Новым Годом!
  13. Like
    Rusland отреагировална Kitty в С Наступающим Новым Годом!   
    Шарик ветром развернуло.
    С Новым Годом!

  14. Like
    Rusland отреагировална egorea1999 в [ListBox] загрузка картинок   
    var Img: TImage; begin Img := TImage.Create(nil); try Img.Bitmap.LoadFromFile(FileName); //Img.Bitmap.LoadFromStream(); Button1.StylesData['Image.MultiResBitmap'] := Img.MultiResBitmap; finally Img.Free; end; end; Не самый лучший пример, при том, что в вашем случае работать все-равно не будет, а что конкретнее:
     
    bitmap.zip
  15. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в [ListBox] загрузка картинок   
    @AlexG я проверил то что вы описали. в принципе работает, но для статики
    почему не работает для динамической подгрузке, точней не совсем работает. 
    порядок действий
    1) получаю с сервера список картинок
    2) заполняю текстом Item'ы
    3) присваиваю событие OnApplyStyleLookup для Item'а
    4) в событии ItemApplyStyleLookup пишу следующее
    procedure TForm13.ItemApplyStyleLookup(Sender: TObject); begin LoadBitmapFromURL((Sender as TListBoxItem).TagString, (Sender as TListBoxItem).ItemData.Bitmap); end; как видим на картинках несколько айтемов не обновились, т.к. они не могут выйти за пределы области (чтобы обнулить стиль и вызвать событие OnApplyStyleLookup)
    и при таком подходе все время картинка будет скачиваться из интернета, что не есть хорошо
    UPDATE: добавил проект
    LB_dload.zip
  16. Like
    Rusland отреагировална AngryOwl в [ListBox] загрузка картинок   
    Я [ZuBy] уважаю! Но не слушайте его, в данном случае! ))))
    Я с ним не согласен. Точнее - не совсем.
    У TListBox есть ряд свои преимуществ! Причем, зачастую, довольно существенных. Которые никакие TListView не перекрывают. По крайне мере пока.
    Во-первых - если речь идет о Винде, то это возможность плавного скроллинга. Чего нет у TListView. Не знаю кому как из разрабов, а рядового пользователя это часто бесит - прокрутка "рывками".
    Во-вторых - TListBox и его TListBoxItem'ы все же намного проще "рисовать". В смысле - создание своего шаблона пока еще намного проще чем у TListView. Вы можете для TListBox очень просто создавать свои элементы списка.
    Несмотря на то, что TListBox существенно "тормознее" TListView, часто его скорости вполне достаточно.
    Все, разумеется, зависит от Ваших конечных целей.
    А что касается картинок в Итемах TListBox, то нужно просто переопределить ApplyStyle.
    Создайте свою процедуру, например ItemApplyStyle;
    Присвойте, при создании Итема, свой обработчик. Например
    newItem.OnApplyStyleLookup := ItemApplyStyle;
    А в ItemApplyStyle сделайте обновление картинки. Типа так:
    procedure TContactActions.ItemApplyStyle(Sender: TObject); var StyleObject: TFmxObject; lbx : TListBox; LI : TListBoxItem; begin LI := Sender as TListBoxItem; LI.BeginUpdate; try StyleObject := LI.FindStyleResource('picture') as TCircle; if Assigned(StyleObject) then begin TCircle(StyleObject).Fill.Bitmap.Bitmap.Canvas.BeginScene(); try TCircle(StyleObject).Fill.Bitmap.Bitmap := ____тут_ваш_битмап__; finally TCircle(StyleObject).Fill.Bitmap.Bitmap.Canvas.EndScene; end; end; finally LI.EndUpdate; end; end; Разумеется, все проверки и прочее - это уж Вы сами. И в моем примере это TCircle, а у Вас что - сами решите.
    Ну и можно для краткости (если там просто TImage) не писать все через StyleObject, а покороче, через StylesData['_имя_.bitmap'] и т.д.
    Ну и что на Delphi - не обессудьте! ) Смысл тут простой.
    Думаю, что в целом идея ясна.
  17. Like
    Rusland отреагировална Andrey Efimov в С Наступающим Новым Годом!   
    Уважаемые форумчане!
    Поздравляю Вас с Наступающим Новым Годом и Рождеством!
    Пусть 2017 год станет новым этапом на Вашем пути и принесет успех, самореализацию и, конечно же, счастье.

  18. Like
    Rusland получил реакцию от Djuise в Укажите направление как работать с ListView?   
    и ListView тоже
  19. Like
    Rusland отреагировална Andrey Efimov в opendialog для папок   
    Так не устраивает?
    procedure TFormMain.sbSelectFolderClick(Sender: TObject); var PathFolder: string; begin if SelectDirectory('Выбор папки...', '', PathFolder) then ePathFolder.Text := PathFolder; end; SelectDirectory
  20. Like
    Rusland получил реакцию от Kitty в Укажите направление как работать с ListView?   
    Вот тут видео, которое обычно дает уважаемый krapotkin, оно "о чем" и на английском. Нужно понять что ListView не обычный компонент - нужно научиться с ним работать. На этом форуме много примеров
  21. Like
    Rusland отреагировална krapotkin в Укажите направление как работать с ListView?   
    гугл  delphi fmx listview 
    в первой же странице
    http://delphi2010.ru/tlistview/
  22. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в Укажите направление как работать с ListView?   
    Вся инфа есть тут
    http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.ListView.TListView
    http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance
    Примеры из студии
     
  23. Like
    Rusland получил реакцию от Равиль Зарипов (ZuBy) в БД LiveBindings загрузить картинку   
    Лучше не пользуйтесь LiveBindings.
    Здесь описан способ получения картинки из Blob
  24. Like
    Rusland отреагировална Pax Beach в Порекомендуйте книги для изучения Android   
    Вот по шагам пройди школу Андроид, не знаю, дают еще сертификаты.
    Поставь AS, делай примеры.
    Найди на трекере курсы UDEMY — очень качественные.
     
  25. Like
    Rusland отреагировална bigjorj в *******:ЕГАИС   
    Думаю пришло время и мне рассказать (еще) об одном своем проекте на FMX. С вашего позволения наименование программы убрал из описания.

    *******:ЕГАИС - это приложение для предпринимателей, которым необходимо (согласно новым требованиям закона) подтверждать любое движение алкоголя через систему учета ЕГАИС (Единая Государственная Автоматизированная Информационная Система).
     
     
    *******:КАССА - очень простой front-office для предпринимателей. Полная поддержка ЕГАИС и 54-ФЗ (об онлайн кассах). Работает с фискальными регистраторами АТОЛ, ШТРИХ-М и Viki-print.
    Сайт: https://www.ami-soft.ru/
    Приложение для Android: ЕГАИС-приход Сейчас не развивается. Все усилия на WIndows версию. Но оба приложения используют единые формы и код.
    Прямая ссылка для загрузки ДЕМО-версии
    Используются:
    Delphi Berlin 10.1 upd 2 FireDac SQLITE FastReports FMX2 Parse (пока для системы активации, в разработке личный кабинет для пользователей с выгрузкой чеков и документов) Адаптировано для сенсорных экранов. Есть платные и бесплатные функции.
    Платных пользователей на 09.01.2017 - 1021.
    Программа позволяет:
    Подключение к УТМ по ip адресу или имени компьютера, возможность переключения между УТМ Просмотр входящих документов поставки алкоголя. Краткая информация о строках документа - сумма документа, поставщик, наименование товара Подтверждение, расхождение или отказ от получения накладной в ЕГАИС (платная функция) Запрос повторной отправки накладной на ее номеру Запрос всех неподтвержденных накладных Подтверждение или отказ приема накладной по ее номеру в ЕГАИС Отражение статуса накладной в системе ЕГАИС Отображение остатков в ЕГАИС по 1 и 2 регистру Списание продукции в ЕГАИС по данным остатков или приходной накладной Отправка актов постановки на баланс на 1 и 2 регистр Инвентаризация остатков в магазине Возврат поставщику, перемещение и продажа Передача товара в магазин и возврат на склад Работа с классификаторами товаров и партнеров в ЕГАИС Просмотр перечня служебных документов обмена (при включении режима Эксперт) Просмотр XML содержимого документов для анализа ошибок (при включении режима Эксперт) Автоматическое определение вашего ФСРАР ИД (уникального идентификатора по системе ЕГАИС)  
×
×
  • Создать...