yuri
-
Posts
10 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Events
Store
Blogs
Posts posted by yuri
-
-
Добрый день,
делаю форму с возможностью масштабирования и рисованием пальцем на TfgPaintbox и наткнулся на такой интересный баг:
Если в событии OnPaint вызвать ACanvas.DrawLines то кроме линии на самих точках всегда рисуется точка в координатах [0,0].
Скорее всего это общая проблема для всех TfgCanvas.
Прикрепляю демку с проблемой.
Spoilerprocedure TFormMain.pbSourcePaint(Sender: TObject; const ACanvas: TfgCanvas); begin var vPoints : TfgPoints; try SetLength(vPoints, 2); vPoints[0].SetLocation(150, 150); vPoints[1].SetLocation(300, 300); ACanvas.Stroke.Thickness := 20; ACanvas.DrawLines(vPoints); finally SetLength(vPoints, 0); end; end;
FGX 1.16.0.1, Delphi 11.3.
-
3 часа назад, Артем сказал:
Всем привет! У меня одного падает на скачивании? Почти в самом конце 😞
Скачал сегодня утром, все ок
-
Доброго времени суток.
Все началось с получение странной ошибки при закрытии дочерней формы: "Значение [0] не попадает в требуемый диапазон [0, -1]. Не могу выполнить запрос стиля. Поскольку указанный...".
После нескольких часов отладки удалось выяснить что если у формы задана тема c именем не по умолчанию, то во время уничтожения формы (уже после TfgForm.OnDestroy где обычно чистятся все локальные данные) форма проставляет для TfgCollectionView.parent := nil, что в свою очередь сбрасывает стиль в "Theme", а это тригерит события OnGetItemCount в процедуре GetStyleForItemIndex, ну а дальше уже ошибка описанная выше.
Если сделать на fgFormDestroy вызвать TfgCollectionView.ReloadItems, то сообщение WM_RELOAD_ITEMS все равно не успевает отработать.
Сейчас, для корректной работы, я на fgFormDestroy уничтожаю руками свой экземпляр TfgCollectionView.
В связи с этим вопрос - это баг или просто не документированная особенность и я делаю что-то не так?
P.S. Delphi 10.4.2, FGX native 1.11.0.0, Andoind 32-bit.
При вызове метода DrawLines рисуется лишняя точка в [0,0]
in Closed
Posted · Edited by yuri
I don't think that you see bug of SetLength, maybe you get bug of debugger, because in real life project i use `for i := 0 to Length(vPoints) - 1` a lot of times and all works fine, but i see same colored pixel[0,0].
Strange issue that applying of ZoomMatrix and TranslationMatrix works with this [0,0] pixel like it's really in vPoints array. So it's definitly somehow related with DrawLines method.