![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
![]()
замахнулся (а вернее МЕНЯ замахнули) я на написание миниГИСа
возникла проблема: на событие procedure TMF.MainMapMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); я беру координаты в пикселях и преобразую их в координаты, чтобы постоянно отображать координаты курсора. однако в этот момент канва тухнет и ее надо перерисовывать каждый раз (после каждого перемещания!) т.к. объектов на карте может быть досточно много, это вызовет неплохую нагрузку на ресурсы компьютера. не подскажете, как можно обойти постоянную перерисовку канвы? ---- да, и еще один вопрос: я не разобрался с форматированием FloatToStr. как мне можно ограничить длину числа, скажем, 10 цифрами, а целую ее часть, скажем, 7? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
![]()
А можно кусок кода ?
Или пример в архиве ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
![]() |
![]() |
![]() |
#3 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Раз объектов много, то GDI тут не поможет. Надо использовать DirectX или OpenGL. Но если уж очень хочется GDI то залог успеха этого дела, заключается в отрисовки всех частей, и потом при перерисовки не прорисовывать заново, то что уже было прорисовано и хранится в памяти, просто вызвать BitBlt ( или в таком духе, что надо ). Т.е. можете даже просто хранить в TBitmap, и рисовать так же в TBitmap а потом просто перекрывать образцом из памяти вашу канву. Это даст скорость прорисовки, качество но заберет больше ОЗУ.
p.s. видимо читать и думать люди не хотят (пост №4). Последний раз редактировалось BOBAH13; 27.01.2009 в 15:21. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
![]()
кусок кода? ну пожалуйста:
Код:
DrawMap - рисование карты (с предшествующей перегонкой координат в пиксели) Последний раз редактировалось Bayazet; 27.01.2009 в 15:19. Причина: орфография хромает |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
![]()
используя битмап у мен возникали проблемы с простейшим
Canvas.Draw(0,0, bmpMap) компилятор говорил, что в ждал TGraphic, а нашел TBitMap может я неправильно создаю битмапу? Код:
|
![]() |
![]() |
![]() |
#6 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]() Цитата:
![]() ![]() Код:
|
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
![]()
все равно пишет несоответствие типов TGraphic и TBitMap в Canvas.Draw(0,0,bmpMap);
может я недостаточно информации указываю при создании? Последний раз редактировалось Bayazet; 27.01.2009 в 15:35. |
![]() |
![]() |
![]() |
#8 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
код приведите, как у вас объявлена переменная bmpMap ? у нее класс TBitmap? Если да, то какой версией дельфи вы пользуитесь ?
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
![]() Код:
Код:
Код:
Код:
Delphi 7 |
![]() |
![]() |
![]() |
#10 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Ошибки нет. То что вам пишет.. приведите именно в той форме в которой вы ее видите. Без перевода и т.п.
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
хочу стереть линию с канвы.КАК? | harmager | Общие вопросы Delphi | 1 | 24.11.2008 10:28 |
Перерисовка на Image | SERG1980 | Мультимедиа в Delphi | 9 | 09.04.2008 10:24 |
Перерисовка формы | satana | Общие вопросы Delphi | 4 | 18.09.2007 19:42 |
Как распечатать содержимое канвы Image? | ffo | Помощь студентам | 1 | 15.03.2007 20:07 |