Letos Опубликовано 1 февраля, 2019 Опубликовано 1 февраля, 2019 (изменено) Изменено 2 февраля, 2019 пользователем Letos Цитата
0 POV Опубликовано 1 февраля, 2019 Опубликовано 1 февраля, 2019 Готов поспорить у тебя использована конструкция with и ты обращаешься в полям которых нет, т.е. к чему-то другому публичному обращаешься. Цитата
0 Letos Опубликовано 1 февраля, 2019 Автор Опубликовано 1 февраля, 2019 7 минут назад, POV сказал: Готов поспорить у тебя использована конструкция with и ты обращаешься в полям которых нет, т.е. к чему-то другому публичному обращаешься. Да нет, обращаюсь к Memo по-простому (тут по событию таймера): ... //отмечаем события троллейбусов for (unsigned int i = 0; i < TrollPositions_main.size(); i++) { sTrollPosition &P=TrollPositions_main[i]; String S=P.Description; if(S!=NoNameSite) { TMemo *m= Form1->Memo1; S=P.TrollNum+": "+S; S+=", "+P.preDescription; S+=", "+P.LastKon; m->Lines->Add(S); vfScrollMemoDown(m); // MapRepaint(); } } ... Вызов своей функции по перерисовке карты MapRepaint(), который тут закомментирован, помогает, но не вставлять же его после каждого действия с компонентами... Цитата
0 Letos Опубликовано 1 февраля, 2019 Автор Опубликовано 1 февраля, 2019 Наверное, попробую компоненты разместить на другой форме (скорее всего, даже VCL), надеюсь, хоть там не будет глюка, но всё же непонятно, почему такое происходит... Цитата
0 POV Опубликовано 1 февраля, 2019 Опубликовано 1 февраля, 2019 (изменено) Попробуй на делфи то же самое - сделать. Я билдером пользуюсь чаще - там глюк га глюке в сравнении с делфи. test.zip Изменено 1 февраля, 2019 пользователем POV Цитата
0 Letos Опубликовано 1 февраля, 2019 Автор Опубликовано 1 февраля, 2019 10 минут назад, POV сказал: Попробуй на делфи то же самое - сделать. Я билдером пользуюсь чаще - там глюк га глюке в сравнении с делфи. test.zip Да, вижу, добавил в примере на твою форму Memo, набираю там текст, канва не нарушается. Но я с FMX очень мало работал, может разница в том, что мы по-разному рисуем канву? Я свою рисую в событии OnPaint (которое по необходимости вызывается), где вызывается функция, отрисовывающая карту и то, что на ней. И рисую, в отличие от твоего примера, между BeginScene и EndScene: ScreenMap->Canvas->BeginScene(); ScreenMap->Canvas->DrawBitmap(MapBmImage,MapRect,ScreenRect,1); DisplayTrolls(ScreenMap); ScreenMap->Canvas->EndScene(); Цитата
0 Letos Опубликовано 1 февраля, 2019 Автор Опубликовано 1 февраля, 2019 Вот разместил компонент TMemo на дополнительной FMX форме, теперь при работе с Memo картинка на первой форме не затрагивается. Цитата
0 Letos Опубликовано 2 февраля, 2019 Автор Опубликовано 2 февраля, 2019 (изменено) А я разобрался от чего такое было. Это моя ошибка. В событии OnPaint у меня было условие: void __fastcall TForm1::MapImagePaint(TObject *Sender, TCanvas *Canvas, const TRectF &ARect) { if(MapRepainting) DisplayMap(); } А так работает: void __fastcall TForm1::MapImagePaint(TObject *Sender, TCanvas *Canvas, const TRectF &ARect) { // if(MapRepainting) DisplayMap(); DisplayMap(); } Почему-то действия на другом компоненте затрагивают перерисовку TImage... Изменено 2 февраля, 2019 пользователем Letos Цитата
Вопрос
Letos

Изменено пользователем Letos7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.