Активность

Лента обновляется автоматически     

  1. Сегодня
  2. krapotkin

    Has the FGX Native project been abandoned?

    Yaroslav is on vacations now. The library is still under development. But he tells that it's close to be a beta. It's full of all-new revolutionary features, so their's implementation is hard and slow
  3. krapotkin

    Фреймворк для стандартного ListView

    ага тоже столкнулся. не профилировал пока, но в целом логично, он там выражения парсит непрерывно, размеры-то динамические, зависят от каждой строки данных надо попробовать установить жесткие, посмотреть, как изменится нагрузка
  4. Евгений Корепов

    Фреймворк для стандартного ListView

    Очень сильно жрет CPU при изменении размеров формы - 100% CPU
  5. krapotkin

    Фреймворк для стандартного ListView

    Всем привет! После долгого творческого запоя я запилил альфу либы, которая позволяет юзать обычный, не-генномодифицированный ListView. Данные подаются в виде модели данных, описание раскладки итема лежит в JSON. Для работы пишется примитивный наследник класса-адаптера, который биндит данные модели на элементы из JSON. Я решил, что руками делать это дешевле чем через RTTI { TMyAdapter } procedure TMyAdapter.SetupDrawableContent(const ADrawable: TListItemDrawable; const AData: TMyData); begin if SameText( ADrawable.Name, 'text') then begin (ADrawable as TListItemText).Text := AData.Text; end else if SameText( ADrawable.Name, 'detail') then begin (ADrawable as TListItemText).Text := AData.Detail; end else if SameText( ADrawable.Name, 'balance') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Balance); end else if SameText( ADrawable.Name, 'reserved') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Reserved); end end; Главная хитрость и отличие от стандартного DynamicAppearance+LiveBinding - переменная высота итемов ListView и использование арифметики в описании раскладки. Можно указать Detail.Y = Text.Bottom + 5, ItemHeight = Detail.Bottom + 10, Detail.W = ItemWidth/2 - X {"Kind":"rect","Name":"BonusRect","Value":"", "Place":{"X":"itemwidth*3/4","Y":"Text.Y","W":"ItemWidth/4-5","H":"50"}, "BorderColor":"#FF005500", "Color":"lime", "LineWidth":3}, {"TextHAlign":2,"TextVAlign":1,"Kind":"text","Name":"Balance","Value":"", "Place":{"X":"BonusRect.x+5","Y":"Text.Y","W":"BonusRect.w-10","H":"50"}, "WordWrap":true, "Color" :"Black", "Font":{"Size":18,"Style":""}} ], "ItemHeight":"detail.bottom+10", Это дает довольно гибкую систему. Не на все случаи жизни, но все, что нужно, можно после автоматической раскладки дополнительно приписать в OnUpdateObjects Код для работы примерно такой procedure TForm1.FormCreate(Sender: TObject); begin data:= TMyDataList.CreateFromFile(ExePath()+'data.json'); // загрузка в модель данных Adapter := TMyAdapter.Create(lvWallets, data.Items, ExePath()+'pattern.json'); // создание адаптера и загрузка шаблона Adapter.Pattern.SetupListView(lvWallets); // задать отступы и разную мелочь Adapter.ResetView(); // здесь в цикле из модели данных создается нужное количество итемов ListView end; procedure TForm1.lvWalletsUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin Adapter.SetupContent(AItem); // загрузить текст, картинки и другое содержимое в элементы итема Adapter.Pattern.DoLayout(AItem); // поправить раскладку в соответствии с содержимым элементов итема end; Для использования кроме стандартных - текст, картинка, кнопка - создано несколько дополнительных элементов итема - прямоугольник, круг, уголок, линия. Отличие от ModernLV - , 1) все происходит без правки системных файлов 2) пока нет колонок и других особых изысков. На результат работы смотреть тут. Исходники пока не причесаны, будут чуть позже ListViewFramework.7z
  6. Вчера
  7. Почему бесконечном? Тут как захотите. Обычно делают как-то так : While not (Terminated or fStopped) do begin DoSomeActions; end;
  8. pic service

    Прозрачность TImage's, наложение...

    Да, спасибо - то что нужно!)
  9. mmover

    Прозрачность TImage's, наложение...

    Не совсем понятно что именно нужно. Если просто установить прозрачность для TImage, то у него есть свойство Opacity. Если необходимо работать именно с Bitmap, то можно попробовать так: ... M.SetPixel(x, y, PremultiplyAlpha(CurrentPixelColor));
  10. Максим Шуйский

    Полоса на форме справа (Android)

    во вложении. Пустой проект, только стиль добавлен, а полоса сразу есть PolosaSprava.zip
  11. pic service

    Прозрачность TImage's, наложение...

    Доброго времени суток, уважаемые мастера Делфи и ещё более многоуважаемые подмастерья) Собственно очередной вопрос от осваивающего FMX) Положил 2 Timage на форму. У верхнего меняю альфа-канал, программно, по пикселям. Но почему-то вместо обычной прозрачности, относительно подложки - возникает эффект Screen из фш по типу And смешивания изображений. Не пойму в связи с чем это может быть связано? Глюк FMX или мой кривой код? Альфу меняю попиксельно так: TAlphaColorRec(CurrentPixelColor).A := ...; SetPixel(x,y,CurrentPixelColor);
  12. giveaway

    Кроссплатформенность TWebBrowser?

    Строю приложение под Win и Mac OS X с использованием TWebBrowser. В Винде оно нормально открывает файлы html, в Маке же браузер не работает, - просто пустое окно даже для примитивных html файлов. Читаю в сети отзывы, и что-то не понятно по кроссплатформенности компонента. Для Мака она есть? Или надо пользоваться альтернативой?
  13. В смысле в бесконечном цикле?
  14. kami

    Has the FGX Native project been abandoned?

    +1 for "No news for a long time"! @Brovin Yaroslav - can you comment?
  15. Vitaldj

    СУБД SQLite не открывается в Run Time

    Скорее всего что то с путем напутали. Попробуйте перед коннектом, проверить путь к файлу БД. Есть ли файл? Может он у вас вообще не деплоится?
  16. Vitaldj

    Has the FGX Native project been abandoned?

    No. Development goes in the closed regimen. Only alphatesters.
  17. А какие ещё способы проверки есть? Экранная клавиатура сама свернулась, так как на форме не стало полей для ввода текста. Но if (FService <> nil) and (TVirtualKeyboardState.Visible in FService.VirtualKeyBoardState) всё равно возвращает True.
  18. Dstaryh

    СУБД SQLite не открывается в Run Time

    procedure TFMain.FDConnection1BeforeConnect(Sender: TObject); begin {$IF DEFINED(ANDROID)} FDConnection1.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'auto.sqlite'); {$ENDIF} end; запрос к FDQuery  select * from Automobili
  19. Это если приложение не требует дополнительных разрешений (на устройствах начиная с 7 андроида их надо запрашивать в реальном времени, что берлин делать не умеет), и если не надо делать уведомлений в приложении (также после 8 андроида уже должны быть каналы, которые также не реализованы в берлине). Плюс неимоверные глюки с Медиаплеером, если вручную ставить TargetSDK большее версии 22 в берлине (правда они и 10.3 остались, но другие). И это только то что я заметил по своим проектам. Если все этого не используется, то да, можно и на берлине делать, по мне он тоже постабильнее был в андроиде.
  20. H Visli

    Has the FGX Native project been abandoned?

    I haven’t heard of any news for this project for a long time. Is it dystocia or is it stopped?
  21. Последняя неделя
  22. slav_z

    Не отображается текст

    попробуйте указать цвет и вид заполнения... Canvas.Fill.Color и Canvas.Fill.Kind (текст - это заливка... поэтому Fill)
  23. Очень просто - в потоке проверяйте наличие данных. Появился ответ - меняйте состояние контролов. Он будет работать в фоновом режиме. Можно даже снизить ему приоритет.
  24. giveaway

    Не отображается текст

    Формирую документ для печати и хочу в него добавить программно некий текст, фигуры и изображение. Вот кусок кода: TRectF RectF(10, 10, 30, 30); BitmapTmp->Canvas->DrawRect(RectF, 0, 0, AllCorners, 100); BitmapTmp->Canvas->FillText(RectF, ImageSel->Name, false, 1, TFillTextFlags() << TFillTextFlag::RightToLeft, // TFillTextFlags(), TTextAlign::Center, TTextAlign::Center); Прямоугольник отрисовывается нормально, а текст не отображается. Что я делаю не так?
  25. Не путайте людей! Все работает и на Берлине, нужно лишь внести изменения в манифест. Сам не смог перейти на РИО, целая гора косяков (((
  26. Можете использовать поток вместо таймера.
  1. Загрузить ещё активность