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

krapotkin

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

    2 011
  • Зарегистрирован

  • Посещение

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

    176

Ответы сообщества

  1. Пост krapotkin - сообщение в Как открыть окно "Поделиться" был отмечен как ответ   
    \Samples\Object Pascal\Mobile Snippets\ShareSheet
  2. Пост krapotkin - сообщение в Найти положение центра пальца в OnMouseDown был отмечен как ответ   
    да ну полноте ж)))  я всегда включаю отображение касания и вижу прям кружок, куда касаюсь
    и система дает координаты центра этого кружка, так что не загоняйтесь с софтом, это хард
  3. Пост krapotkin - сообщение в Перенос на другой компьютер был отмечен как ответ   
    ну. явно установка не удалась. совсем
    вот ссылки на образ
    ftp://ftpd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2.iso
    http://altd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2.iso
    win 10 позволяет по правой кнопке смонтировать образ как диск. далее все как обычно
    ессн сначала зачистить все что вы написали выше. вроде еще в AppData что-то валяется.
  4. Пост krapotkin - сообщение в Ошибка при компиляции был отмечен как ответ   
    последнее - банально перезагрузить девайс. если не помогло, то и компьютер
  5. Пост krapotkin - сообщение в Помогите проиграть звук в MediaPlayer был отмечен как ответ   
    что показывает функция TDirectory->GetFiles(TPath->GetHomePath()) ?
  6. Пост krapotkin - сообщение в Вывод данных был отмечен как ответ   
    1) Со стилями тормоза из-за того, что каждый раз итему переприсваивается стиль, и начинается реальный кипеш там под капотом.
    Вполне можно было просто подложить rectangle и просто задавать его цвет у каждого item. Ведь на самом деле в стилях вы делаете именно это, просто меняете цвет rectangle который где-то там в стиле.
    2) Зачем создавать динамически все контролы, если можно все оформить в TFrame и просто создавать его и класть хоть в listBox хоть в ScrollBox. (Это по сути одно и то же почти)
    3) Все зависит от количества элементов. Если их 30, то listBox вывезет. если 300 - то ни listBox ни ScrollBox тут не вывезут.
    Тогда надо брать ListView. Там все чуть сложнее, но зато нет проблем с производительностью.
     
  7. Пост krapotkin - сообщение в Работа с БД в класс был отмечен как ответ   
    Хорошей практикой является следующая концепция.
    Есть модель данных (МД) - набор классов, описывающий все, что происходит в вашей программе, и хранящий все нужные данные. 
    А есть отдельный модуль, который отвечает за загрузку и сохранение этой МД. В нем класс-"загрузчик". Чтобы вам было удобнее, можно в качестве такого модуля сделать Datamodule, в котором будут все нужные все компоненты и методы.
    При этом становится не суть важно, откуда идет загрузка, хоть из интернета, хоть из БД.
    Вопросов с выделением этих процессов в отдельные потоки не будет, только нужно помнить только одно - один поток - один Datamodule. Т.е. создавать их надо динамически.
    создали объект модели данных, создали datamodule, вызвали некий метод для загрузки данных в объект. 
    Хорошим тоном будет не создавать/уничтожать Datamodule каждый раз заново, потому что процесс подключения к БД довольно длительный по сравнению с простым запросом в БД. Поэтому можно создать какой-то пул(массив, список) уже созданных DM  и брать одну штуку из него для совершения операции, и возвращать обратно по ее окончанию.
    Получается, что каждый поток будет иметь свой Datamodule и следовательно свой FDConnection и свой FDQuery для каждой операции.
    Надеюсь, я ответил на ваш вопрос
  8. Пост krapotkin - сообщение в Движущееся изображение был отмечен как ответ   
    onPaint вызывается не когда вы хотите, а когда система считает нужным 
    а чтоб она посчитала нужным, вызывайте Invalidate.
  9. Пост krapotkin - сообщение в Отрисовка прямоугольника. был отмечен как ответ   
    Если вы хотите на чем-то рисовать, не надо портить стены, возьмите бумагу, холст там..
    Специально придуман PaintBox именно для ваших целей.
    Но для демо ровно то же самое вместо PaintBox.OnPaint сделал на Form.OnPaint
    Работает одинаково, на windows и android. Уверен, что ровно так же все будет на всех остальных ОС.
    type TForm1 = class(TForm) procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); private FCrd: TPointF; public end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin FCrd := PointF(X,Y); end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin Invalidate; end; procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); begin Canvas.Fill.Color := TAlphaColorRec.Wheat; Canvas.FillRect(rectf(FCrd.X, FCrd.Y, FCrd.X+100, FCrd.Y+100), 0,0,[], 1); end; там в проекте еще дофига разных странных решений и ошибок. Но это уже оффтоп...
  10. Пост krapotkin - сообщение в TBitmapData был отмечен как ответ   
    Считалось, что до RIO TBitmap НЕ потокобезопасен. В RIO рапортовали, что справились с этим. Не помню, проверял кто или нет
    Но TBitmapSurface был потокобезопасен уже тогда. Возможно, стоит готовить данные там, а потом просто отдавать в Bitmap
    https://stackoverflow.com/questions/37602538/delphi-tbitmap-to-string-via-tbitmapsurface-and-back-to-tbitmap
    https://stackoverflow.com/questions/51523321/how-to-draw-fmx-surface-tbitmapsurface-on-fmx-graphics-tbitmap/51526855
     
  11. Пост krapotkin - сообщение в Как заменить цвет фона TextButton в listview был отмечен как ответ   
    по мне, так лучше сделать собственного наследника TDrawable по примеру того как сделана сама эта кнопка. я делал такое, когда мне надо было иконки, уголки и другие нестандартные элементы
  12. Пост krapotkin - сообщение в Как хранить картинки? был отмечен как ответ   
    всегда лучше копировать куски из одной большой картинки, чем иметь много маленьких, поэтому ImageList самое то
    при этом нужно помнить про разумные ограничения по размеру этой "большой". поэтому даже если по одному листу на персонажа, никакой разницы не будет
    хранить так и так придется в файле, загружая при старте
    хранение в памяти самый сложный вопрос
    нужно чтобы все под рукой, и одновременно не переборщить с памятью. на мобилах ее немного. поэтому тут никто вам не ответит. крутите туда -сюда
  13. Пост krapotkin - сообщение в Как создать диаграмму из бд? был отмечен как ответ   
    нет никакого подключения
    просто в цикле по датасету создаете точки в сериях
    никакой автоматики. все вручную
  14. Пост krapotkin - сообщение в Выполнение операции после скрытия меню был отмечен как ответ   
    есть более интересный и по-мне, более правильный способ
    по нажатию в меню не сразу выполняете что-то, а ЗАПИСЫВАЕТЕ действие, которое ВЫПОЛНИТСЯ по событию закрытия мультивью
    тогда реакция наступает визуально правильная и дальше крутите колеса, запускайте потоки и все такое
  15. Пост krapotkin - сообщение в Задать область прокрутки TListBox был отмечен как ответ   
    вместо невидимости попробуйте Height = 0 
    ?
  16. Пост krapotkin - сообщение в Debugger paramentr и activity android:name был отмечен как ответ   
    возможно что-то я делаю не так
     




  17. Пост krapotkin - сообщение в Hint для Андроид был отмечен как ответ   
    для полноценной подсказки и на windows и на android я в критических местах добавляю малую кнопку с вопросиком ))
  18. Пост krapotkin - сообщение в Подгрузка элементов в момент дистанция Scrollbox был отмечен как ответ   
    поищите тему от @Равиль Зарипов (ZuBy)
    он делал пример реализации
  19. Пост krapotkin - сообщение в [THTTPClient] Как скачать файл с System.Net.HttpClient? был отмечен как ответ   
    а что подсказать-то? где код для ревью?
    h:=THttpClient.Create;
    resultStream:=TFileStream.Create(....);
    h.get(URL, resultStream);
    h.free;
    resultStream.free;
  20. Пост krapotkin - сообщение в Перехват события OnClick в динамическом массиве TBotton был отмечен как ответ   
    тут для новичка стоит сказать, что
    1) этот массив нужно бы делать полем формы
    2) приведенный кусок тоже должен находиться в методе этой формы
    3) тогда указание Form1. не нужно 
    4) присваивание метода OnClick без скобок!  
    MyButton[I].OnClick := MyOnClick; где MyOnClick это procedure TForm1.MyOnClick(Sender:TObject); 5) не обязательно, но ОБЫЧНО владельцем созданного объекта назначают не его родителя а саму форму или фрейм
    MyButton := TButton.Create(Self)
  21. Пост krapotkin - сообщение в Изменение ширины MultiView был отмечен как ответ   
    тема поднималась уже. нет, нельзя...
  22. Пост krapotkin - сообщение в ошибка при удаление ListViewItem был отмечен как ответ   
    нельзя удалять себя из обработчика себя
    нужно запустить
    TTask.Run(procedure begin TThread.Synchronize(procedure begin ваше действие с компонентом end) end);
  23. Пост krapotkin - сообщение в Зачем создается дополнительный файл формы был отмечен как ответ   
    это не случайные символы. и создаете вы его сами, когда НАСЛЕДУЕТЕ master-форму для конкретных платформ и разрешений
    http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_FireMonkey_Views
  24. Пост krapotkin - сообщение в Получить список элементов которые сейчас видны был отмечен как ответ   
    думаю, подойдет
    a:=lst1.ItemByPoint(10,0);
    b:=lst1.ItemByPoint(10,lst1.height);
     
  25. Пост krapotkin - сообщение в TDropTarget, пунктирная линия между компонентами, Windows был отмечен как ответ   
    вот. один компонент на форме. граница есть
    никто вас не заставляет использовать dropTarget но реализация перетаскивания из explorer полностью ляжет на вас, как и было раньше

×
×
  • Создать...