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

krapotkin

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

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

  • Посещение

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

    210

Весь контент krapotkin

  1. по поводу RecordCount уже миллион раз говорилось, что это количество сфетченных записей а не количество записей в датасете и никогда для перебора не используется цикл for dataset.open; while not dataset.eof do begin ... dataset.next; end; dataset.close; ручное сравнение записей с массивом данных тоже странный алгоритм для работы с SQL сервером все должно сводиться к подготовке данных для сервера и дальнейшей уже серверной работы, а не загрузки всей базы в память 512 Мб
  2. отложилась пока в связи с переустановкой MAC OS XCode и всего стека ...
  3. я еще раз в этой теме приложу тестовый проект полностью рабочий под берлин с ресайзом ListViewTestBerlin.7z
  4. krapotkin

    listView

    да и порядок вызова обработчиков тоже поменялся! и Item.Begin/EndUpdate и List.Begin/EndUpdate совершенно не влияют на их вызовы...
  5. а на телефоне грид вообще не вариант в вот уже на планшете - можно и посмотреть и действительно desktop программы от переезда удерживает на 95% отсутствие внятного грида может, давайте отдельную тему заведем/перенесем/отредактируем отдельно по пожеланиям в гриды, раз уж разработчик среди нас может, и ListView тоже у нас, нет?
  6. krapotkin

    listView

    да. Было так же. Берлин заставил подолбаться...
  7. Вот тут бы определиться - два клика через "большой" интервал очень отличаются от Double Click. В Windows это очевидно прямо в Explorer В классическом гриде ничего подобного не происходит, и при DblClick мы точно знаем, что Col, Row установлены уже на кликнутую ячейку. От нативности это имхо не зависит
  8. krapotkin

    listView

    могу выложить проект тестовый 2 дня на нем тренился ))) ListViewTestBerlin.7z
  9. ну так, с ходу - DblClick селектом не заменить для десктопа дабл - все-таки предпочтительный способ совершения действий но намек понят и запомнен я правда понял намек еще в XE3 по-своему - нигде больше не использую гриды....
  10. у меня наоборот, снялись некоторые баги. часть пришлось рефакторить, но стало лучше
  11. открыл, кинул грид. 5 секунд вписал grid1.onDblClick и контрол+клик по нему. они public. еще 5 сек. написал grid1.onDblClick := MyOldDblClick; итого 15 сек на решение проблемы а куда делись исходники? триал?
  12. krapotkin

    listView

    могу порекомендовать только свой способ тотально всё что нужно создавать самому в OnUpdatingObjects procedure XXX.CreateItem(); begin fUpdating:=true; item := ListView.items.Add(); item.Data['key1']:=value1; item.Data['key2']:=value2; fUpdating:=false; item.Adapter.ResetView(item); // вот тут вызовется OnUpdatingObjects! end; procedure XXX.UpdatingObjects(); begin if FUpdating then exit; h:=5; // НАЗВАНИЕ aText:=SetupTextObject(sText, AItem.Data['key1'].AsString, freeWidth , -1, 10, h, TListItemAlign.Leading, TListItemAlign.Leading, TTextAlign.Leading, TTextAlign.Leading); aText.Font.Style := [TFontStyle.fsBold]; aText.Font.Size := 18; atext.Height := CalculateHeight(atext, lvWallets); h:=h+atext.Height; ... // линия посредине line := aitem.Objects.FindObjectT<TListItemLine>('key2'); if line=nil then line := TListItemLine.Create(AItem); line.name := sLine; line.width := lvWallets.width - lvWallets.itemspaces.left - lvWallets.itemspaces.right -10 -10; line.height := 1; line.color := Emerald; line.placeOffset.x := 10; line.placeOffset.y := h; line.lineWidth:=1; h:=h+5; .... AHandled:=true; end; код неточный, только для иллюстрации идеи в этом случае лучше всего режим Dynamic. Там не создаются лишние "предустановленные" элементы Text Detail и т.д.
  13. на всех андроид устройствах нет смысла пользоваться прямым указанием папки доступные программе папки перечислены в class TPath из System.IOUtils.pas пример uses System.IOUtils; fname := TPath.combine(TPath.GetDocumentsPath, 'myfile.txt');
  14. мы точно в одной и той же теме пишем? изначальный вопрос. "был проект, я его открыл в новой версии IDE. Обработчики не срабатывают" При чем тут предки и т.п.?
  15. сделать маркер в виде подписи
  16. это и так будет работать, без всяких класс-хаков только зачем?
  17. создать в дизайнере, приделать код из старых обработчиков
  18. ошибка возникла, когда вы в новом режиме поставили туда этот компонент, а потом в мастере удалили...
  19. так я же говорю, там в Custom режиме просто создаются ListItemText c именем T,D,B и т.д. в Dynamic смотрите на названия элементов, вы их сами создаете и они видны в окне Structure тем не менее, для Header и Footer создается элемент с именем Text и все работает так же как и раньше procedure TForm1.b1Click(Sender: TObject); begin lv1.Items[trunc(SpinBox1.Value)].Text := lv1.Items[trunc(SpinBox1.Value)].Text + '1'; end;
  20. procedure TForm1.b1Click(Sender: TObject); begin lbl1.Text:=lv1.Items[trunc(SpinBox1.Value)].Text; end; function TForm1.CreateItem(purpose: TListItemPurpose; const s:string): TListViewItem; begin Result := lv1.Items.Add; result.Purpose := purpose; result.text := s; end; procedure TForm1.FormCreate(Sender: TObject); begin CreateItem(TListItemPurpose.Header, 'Header 1'); CreateItem(TListItemPurpose.None, 'Item 1'); CreateItem(TListItemPurpose.None, 'Item 2'); CreateItem(TListItemPurpose.None, 'Item 3'); CreateItem(TListItemPurpose.Footer, 'Footer 1'); CreateItem(TListItemPurpose.Header, 'Header 2'); CreateItem(TListItemPurpose.None, 'Item 4'); CreateItem(TListItemPurpose.None, 'Item 5'); CreateItem(TListItemPurpose.Footer, 'Footer 3'); SpinBox1.Max := lv1.ItemCount-1; end;
  21. ей лучше знать, раз в файле формы есть TTMSFMXHTMLText, среда пытается его прочитать, а его и нет... она же не придумает такое сложное слово просто текстовым поиском по всему каталогу искать, найти, вычеркнуть
  22. запустить отладчик и узнать почему падает. вроде очевидно Segmentation Fault на Android это наш родной Access Violation и чаще всего сам по себе не приходит...
  23. футер и хедер это обычные итемы. на них лежат ListItemText, у тех есть Text можно посмотреть код FindDrawable и найти способ как получить ссылку на них но думаю, это обычный Item.TextObject
  24. способ по ссылке снимает любые ограничения, какую надо, такую и делаешь
  25. разочаровался во встроенных объектах, теперь все объекты list item создаю сам. зато полный контроль, что когда создано... сделал себе дополнительные классы TListItemCircle, TListItemRect, TListItemLine и даже TListItemTri - треугольную меточку в угол итема. Вроде закрыл все свои потребности, в том числе в закрашивании итема. Есть проблемка. Чтобы все нормально работало в ListView.OnClickItemEx нужно задавать каждому элементу конкретные размеры. Если элементы пересекаются, клик детектируется на первом по времени создания. Но тогда, если подставлять цветной прямоугольник под весь итем, то все клики упадут на него! Надо думать...
×
×
  • Создать...