А в 6-м Бейсике это реально реализовать?!
Вид для печати
UA3GDW, UR5FCM:
Ниже один готовый пример, в прицепе - нашел у себя в архивах в коде.
А также ссылка, где описано, как с этим работать. Игорю должно помочь.
http://www.vbforums.com/showthread.php?t=548048
Михаил! Вы сами поняли чего сказали? Double Buffering - это английское название "отрисовки всего в памяти "! Просто это уже реализовано на некоторых компонентах. И в случае с бандмапом это прийдется делать в ручную.
Добавлено через 3 минуты
Ну??!!!! Это именно отрисовка всего в памяти - а потом через BitBlt выводить - абсолютно верно! То, о чем я и писал! Михаил, у меня такое впечатление, что Вы возражаете мне только ради самого возражения :)
Алексей, вы писали в "памяти"... :) Ну "заноза" я... Люблю конкретику во всем, уж извините. Терминология должна всегда соответствовать, иначе разночтения могут быть. И я рад, что мы имели в виду одно и тоже... :) Хотя можно сделать и еще лучше, чем использовать BitBlt - это задействовать сам GPU в графической карте. Согласен, что надо будет писать под два типа - ATI, NVidia, но в базовом варианте команд будет одинаково. Очень маленькие отличия.
Минус, что карты типа Cirrus или интеловские он-боард - не будут работать. Ну для них использовать BitBlt... Определить, какая карта стоит - не сложно.
UA3GDW:
Ну не совсем скрывает... Есть же все: а) Paint event процедура, б) DrawWidth, DrawStyle свойства, в) Line, Point методы. Они же не скрыты. Все остальное да, как под "покровом ночи"... :) Ну так и API никто не запрещает нам использовать, а даже наоборот - рекомендуют.
To UR5FCM
Закачал, запустил, ограничение в 1500 записей, далее тестить в лом, не могу с другими логгерами даже результаты сравнить. Зачем ограничены в записях ??? и так есть ограничение 30 дней.
Как рисую - как обычно без всяких API
Это больше подходит для карты
а БАНДМАР там же линии рисуются
Где он мерцает не вижу (при изменении размера или нет?)
Михаил спасибо за формулы для длиного пути но как прорисовать его пока не понял
Добавлено через 41 секунду
Ну уж нет таковы правила игры
Хотите стать бета тестером пишите
Добавлено через 3 минуты
Так в моей программе этого раньше небыло
UR5FCM:
Это элементарно, Ватсон! :) Всё очень просто. Если у тебя направление (heading) по короткому пути на корреспондента например, 45 градусов. То, направление по длинному пути будет 360 - 45 = 315 градусов. И рисуй себе другую дугу, по той же самой формуле, по которой и короткий путь рисовал. Формула то одна и та же, даже в статье видно. Параметры поменялись и всё.
Не забудь про округление до целочисленного значения в градусах. То есть 52.6 градуса -> 53 и так далее. Для всех типов ротаторов достаточно.
ПС Магическая фраза в статье: "To find the long path, subtract the heading from 360°."
Интересно все же узнать РЕАЛЬНО как это сделать? Как рисовать короткий путь - я Игорю конкретно рассказал. Как длинный рисовать - пока не придумал. Просто опишите алгоритм. По пунктам. Мне реально интересно!
Double Buffering (Двойное буферирование) или русское название "отрисовка в памяти" - создается второй буффер в памяти, в котором все рисуется, а затем выводится на форму все разом. Достоинство этого метода - перед прорисовкой канву, на которой наносим рисунок не надо очищать, что избавляет от неприятного мерцания при использовании прямого вывода.
Добавлено через 5 минут
Это однако крутовато для вывода текстовой информации :) Мы тут вроде как не Квейк пишем!
Справка: BitBlt - самая "низовая" ф-ция работы с видеоизображением Windows. Является самой быстрой из всех существующих, в результате использования этой ф-ции даже на Пентиум - 120 отображение не мерцает.