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

xenon54

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

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

  • Посещение

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

    14

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

  1. Пост xenon54 - сообщение в ListViewItem Transpatent, как? был отмечен как ответ   
    У стиля листвью есть объект "itembackground" : TColorObject. Выставляете у него свойство "Color" в нужное вам значение с альфа каналом (как пример $11FF0000) и будет вам счастье. 
  2. Пост xenon54 - сообщение в Неблокирующий диалог в мобильном приложении был отмечен как ответ   
    Что мешает указать stylelookup для панели "backgroundstyle" или как там он у вас зашит.
  3. Пост xenon54 - сообщение в XE8 и TApplicationEvents был отмечен как ответ   
    Советую глянуть FGX от Ярослава, там есть реализация дополнительных ивентов.
  4. Пост xenon54 - сообщение в Событие OnMouseUp у TTrackBar был отмечен как ответ   
    Для XE7 можно сделать так: 
    TrackBar1.StylesData['hThumb.OnMouseUp'] := TValue.From<TMouseEvent>(form1.TrackBar1ThumbMouseUp); И не нужно таскать библиотеки с собой.
  5. Пост xenon54 - сообщение в [Редактор кода] [Castalia] Как убрать выделение блоков begin-end в XE8? был отмечен как ответ   
    В настройках касталии отключается
    castalia->options->editor->smart highlighting
  6. Пост xenon54 - сообщение в Создать объект класса, имя которого хранится в переменной был отмечен как ответ   
    Is there a way to instantiate a class by its name in delphi?
  7. Пост xenon54 - сообщение в [iOS] Запуск был отмечен как ответ   
    Для любой компиляции IOS проекта нужна Mac OS. Естественно на трекерах можно найти образ MacOs для WM.
  8. Пост xenon54 - сообщение в [Android] Корректно удаляем TExpander в Android был отмечен как ответ   
    Фактически, когда вы пишете 
    if c is TExpander then FreeAndNil(c); То для мобильных платформ это просто обнуляет локальную ссылку. Деструктор класса вызоветс ятолько тогда когда на объект не осталось не одной ссылки. У вас как минимум еще Parent ссылается на этот объект. Если у вас более нигде нет ссылок на этот объект, то такой код уничтожит объект:
    if c is TExpander then begin c.Parent := nil; end; http://fire-monkey.ru/topic/10-kak-pravilno-udaliat-kontroly-v-runtime/
  9. Пост xenon54 - сообщение в [TidHTTP] Скачивание файлов без замораживания пользовательского интерфейса был отмечен как ответ   
    http://fire-monkey.ru/topic/30-fonovoe-vypolnenie-operatcii-bez-zamorazhivani/
  10. Пост xenon54 - сообщение в Один размер под разные дисплеи был отмечен как ответ   
    Тогда уж проще юзать TScaledLayout
  11. Пост xenon54 - сообщение в [TForm] Задание фонового изображения для формы был отмечен как ответ   
    У формы есть специально свойство Fill для этого.
  12. Пост xenon54 - сообщение в [TidTCPServer] [TidTCPClient] Как отправить файл с сервера на клиент используя Indy10 и получить файл на стороне клиента? был отмечен как ответ   
    Отправка: 
    var len : integer; begin Context.Connection.IOHandler.WriteBufferOpen; Context.Connection.IOHandler.Write(len); Context.Connection.IOHandler.WriteFile(AFileName); Context.Connection.IOHandler.WriteBufferFlush; Context.Connection.IOHandler.WriteBufferClose; Прием ( Тут на клиентской стороне должен быть метод, который по таймеру смотрит есть ли данные на входном буффере ):
    var sz : integer; FS : TMemoryStream; begin if FIdTCPClient.IOHandler.InputBufferIsEmpty then exit; sz := FIdTCPClient.IOHandler.InputBuffer.Size; if sz <= 0 then exit; FS := TMemoryStream.Create; FIdTCPClient.IOHandler.ReadStream(FS,sz);
  13. Пост xenon54 - сообщение в Работа сервиса при закрытом приложении был отмечен как ответ   
    Ну тут все просто. Remote Push Notification.
    Вот, хороший видос на эту тему для ведра тынц
    И сервис никакой не нужен.
    Для ведра это называется  "Google Cloud Messaging"
  14. Пост xenon54 - сообщение в [TListVIew] Отключение DeleteButton был отмечен как ответ   
    Свойство "CanSwipeDelete"
  15. Пост xenon54 - сообщение в Смена родительского компонента для аниматора был отмечен как ответ   
    procedure TForm2.MoveRect(Rect: TRectangle); begin TAnimator.AnimateIntWait(Rect, 'Position.Y', 0); TAnimator.AnimateInt(Rect, 'Position.Y', 152); end; Так вас не устроит?
  16. Пост xenon54 - сообщение в [TPopupBox] Как программно открыть выпадающий список в TPopupBox? был отмечен как ответ   
    type TpopupBox_helper = class helper for TPopupBox procedure ShowPopup; end; procedure TForm1.Button1Click(Sender: TObject); begin PopupBox1.Items.Add('Item1'); PopupBox1.Items.Add('Item2'); PopupBox1.Items.Add('Item3'); PopupBox1.Items.Add('Item4'); PopupBox1.ShowPopup; end; { TpopupBox_helper } procedure TpopupBox_helper.ShowPopup; begin self.click; end;
  17. Пост xenon54 - сообщение в SearchBox и фильтры поиска был отмечен как ответ   
    Эту тему читали?
    http://fire-monkey.ru/topic/781-otklonenie-filtratciia-teksta-ne-korrektno-rab/
     
    У меня с поиском все впорядке в ListView. Ну как впорядке =\ Вот этот фикс сделал, который выше, ну и там строку поиска приходится "передергивать" если хочешь чтобы новые итемы попадали под фильтр, а не тупо вычеркивались и визибла.
  18. Пост xenon54 - сообщение в Запись array of record в файл был отмечен как ответ   
    Вместо "string" в record нужно использовать "array [0..49] of char".
    TXSession = record name : array[0..49] of Char; name2 : array[0..49] of Char; end; А вообще, не уверен что эта тема относится к FM, разве что для не мобильной платформы можно было бы использовать string[50].
  19. Пост xenon54 - сообщение в Выделяется итем, хотя клик идет не по нему был отмечен как ответ   
    Сам спросил, сам ответил...
    В FMX.ListView в функции определения индекса итема по абсолютной координате клика на ListView почему-то заложено такое поведение ( возвращает индекс последнего элемента если клик пришелся на область, вертикальная координата которой больше чем начало последнего итема). Вот так исправляется:
    function TCustomListView.FindItemAbsoluteAt(ViewAt: Integer): Integer; var Left, Right, Pivot, Value: Integer; begin UpdateItemLookups; if Items.Count < 1 then Exit(-1); if ViewAt < 1 then Exit(0); { if ViewAt >= FHeightSums[FHeightSums.Count - 1] then Exit(FHeightSums.Count - 1); } if ViewAt > FHeightSums[FHeightSums.Count - 1] + GetItemHeight( GetItemCount - 1 ) then Exit(- 1);
  20. Пост xenon54 - сообщение в Как отобразить выделенный ListBoxItem не пользуясь цветом фона был отмечен как ответ   
    Если я правильно понял (Вы сделали свой стиль для ListBoxItem и вставили туда свой RadioButton), то:
    1. Вам нужно присвоить "stylename" для этого RadioButton в стиле, допустим назвали вы его "MyRB".
    2. В обработчике событий ListBox'a - OnItemClick пишем:
    procedure TForm1.ListBox1ItemClick(const Sender: TCustomListBox; const Item: TListBoxItem); var i : integer; begin for i := 0 to ListBox1.count-1 do ListBox1.ItemByIndex(i).StylesData['MyRB.IsChecked'] := False; Item.StylesData['MyRB.IsChecked'] := True; end;
  21. Пост xenon54 - сообщение в ListItemBackground был отмечен как ответ   
    Нашел вот это:
    procedure TCustomListView.DrawItemsFill(const StartItem, EndItem: Integer; const LocRect: TRectF; const Opacity: Single; const HeaderIndex: Integer); var I, Sep, AltIndex: Integer; DrawRect, DrawSubRect, SepRect: TRectF; ItemObjects: TListViewItem; SepHeight: Single; begin SepHeight := GetSeparatorLineHeight; for I := StartItem to EndItem do if I <> HeaderIndex then begin ItemObjects := Items[I]; if (ItemObjects <> nil) and ((ItemObjects.Count > 0) or (Items[Index - 1].Purpose <> TListItemPurpose.None)) then begin DrawRect := GetItemRelRect(I, LocRect); if ItemObjects.Purpose = TListItemPurpose.None then begin FBrush.Color := FItemStyleFillColor; Тут "FBrush.Color := FItemStyleFillColor;" можно поменять на свой цвет, допустим в зависимоcти от свойства tag. Получится что-то типа :
    if ItemObjects.Tag <> 0 then FBrush.Color := ItemObjects.Tag else FBrush.Color := FItemStyleFillColor; Вопрос как применить эти изменения не изменяя FMX.ListView? Если написать Helper к TCustomListView в своем юните, то естественно он не подхватывается, а писать его в FMX.ListView ИМХО тупо, уж проще сам метод в TCustomListView поправить. Сделать наследника TlistView как я понял тоже гиблое дело из-за того что метод DrawItemsFill не виртуальный и его не переопределить. Как быть?
  22. Пост xenon54 - сообщение в Активная область Item был отмечен как ответ   
    Hittest сделал false?
  23. Пост xenon54 - сообщение в Как правильно удалить итемы TListbox? был отмечен как ответ   
    Похоже что все оказалось проще простого. У ListBox'a также как и у ListView есть метод items.clear. "Memory warning" больше не срабатывает. 
×
×
  • Создать...