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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      4

    • Постов

      2 124


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

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

    Модераторы


    • Баллы

      1

    • Постов

      2 517


  3. xenon54

    xenon54

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


    • Баллы

      1

    • Постов

      385


  4. kami

    kami

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


    • Баллы

      1

    • Постов

      643


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

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

  1. Brovin Yaroslav

    Аналог Post в FMX android

    С моей точки зрения, метод TThread.Queue имеет один весомый недостаток. А именно: Если вызов метода TThread.Queue идет в главном потоке, то код будет вызыван немедленно. class procedure TThread.Queue(const AThread: TThread; AMethod: TThreadMethod); var LSynchronize: PSynchronizeRecord; begin if AThread <> nil then AThread.Queue(AMethod) else begin New(LSynchronize); try LSynchronize.FThread := nil; LSynchronize.FSynchronizeException := nil; LSynchronize.FMethod := AMethod; Synchronize(LSynchronize, True); // <-- Смотрим сюда finally if MainThreadID = CurrentThread.ThreadID then Dispose(LSynchronize); end; end; end; А потом на кусочек этого кода: class procedure TThread.Synchronize(ASyncRec: PSynchronizeRecord; QueueEvent: Boolean = False); var SyncProc: TSyncProc; SyncProcPtr: PSyncProc; begin if CurrentThread.ThreadID = MainThreadID then begin if Assigned(ASyncRec.FMethod) then ASyncRec.FMethod() else if Assigned(ASyncRec.FProcedure) then ASyncRec.FProcedure(); end else Из реализации метода Synchronize, как раз и видно, что код будет вызван немедленно, если текущий тред - это главный поток. Итог TThread.Queue заменяет PostMessage, если вызов идет не из главного потока. Если вызов TThread.Queue идет из главного потока, то это равносильно прямому вызову процедуры или метода.
    2 балла
  2. Разве Tethering работает через интернет? Емнип, он способен обнаруживать "коллег" и подключаться только в одной подсети.
    1 балл
  3. По скольку указанная мною цена оказалась для участников форума завышенной. То я сбрасываю цену: Учащиеся - 1 000 р Остальные - 1 200 р
    1 балл
  4. xenon54

    ListViewItem Transpatent, как?

    У стиля листвью есть объект "itembackground" : TColorObject. Выставляете у него свойство "Color" в нужное вам значение с альфа каналом (как пример $11FF0000) и будет вам счастье.
    1 балл
  5. Главные отличия TListView от TListBox в: TListBoxItem - контрол, TListViewItem - нет В TListBoxItem можно добавлять любые контролы, используя Parent. В TListVIewItem - нет. TListVIewItem хранит только данные для отображения TListVIewItem сам выполняет отрисовку хранимых данных через метод Render За счет собственно ручной отрисовки в TListVIewItem достигается прирост скорости и малое потребление памяти (хранение только актуальных данных) Чтобы создать свой вариант TListViewItem, нужно создать свой класс итема, в нем реализовать требуемые данные (например время) и создать in-place редактор для редактирования времени, зарегистрировать его и тд. P.S. В вашем случае, проще использовать Master-Detail подход. При котором по нажатию на итем, будет открываться вкладка для редактирования информации об итеме, в том числе время через TTimeEdit. Это будет быстрее и проще. P.S.P.S. Если же вы все-таки хотите создать свой итем, будьте готовы, что придется детально изучить, как это делается в самом TListVew.
    1 балл
  6. ListView1.DeleteButtonText := 'Удалить'; // меняем текст ListView1.CanSwipeDelete := false; // отключить появление кнопки
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...