Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

Проблема с выводом графика   Найти похожие ветки 

 
-matrix- ©   (2006-01-10 15:23) [0]

Хотелось бы узнать у Мастеров, каким образом можно осуществить следующую ситуацию: мне требуется в правом нижнем углу экрана рисовать 3х мерную диаграмму (график), но не сплошную, а с "просветами" на остальные окна. Мне хотелось бы сделать это наилучшим способом с точки зрения быстродействия, тк она будет обновляться каждые 1-2 с. Пока программа работает следующим образом: в памяти рисуется bitmap со всеми координатними плоскостями и графиком, затем он (по идее) должен рисоваться поверх все окон. Но, во-первых, я не нашел инфы по выводу Tbitmap"а  на экран, а во-вторых, я не определился с задним фоном графика: сделать его прозрачным или скринить то место на экране и уже сверху него рисовать данный график?
Заранее спасибо


 
-matrix- ©   (2006-01-11 20:16) [1]

Хм, переформулируем запрос в вопросы:
 1. Наиболее быстрый способ работы с графикой - рисование на canvas"е bitmap"а, находящегося в памяти, и затем его вывода?
 2. Как мне нарисовать конкретный bitmap поверх всех окон?
 3. Если картинка имеет "просветы", те скозь нее видны другие окна, то как лучше это реализовать: сначала скриним данный участок экрана, потом сверху него рисуем все что надо и помещаем итоговый рисунок поверх окон, или просто использовать transparent в этом bitmap"е?

ps Не мне Вам указывать, но (вдруг ускользнуло от админов?) у Вас не работает ссылка на другие сайты, не скачивается дайджест, да и поиск глючит...


 
Хинт ©   (2006-01-11 20:23) [2]

Я думаю лучше рисовать не на экране (BitBlt), а просто создать форму с AlphaBlend"ом, кинуть на неё TImage и отображать уже в Image.Picture.Bitmap (правда подойдет только для XP).

Если всё же хочешь рисовать - то вот пример:
var
DC:HDC;
Bmp:TBitmap;
begin
...
DC:=GetDC(0);
BitBlt(dc,pt.X,pt.Y,HintBMP.Width,HintBMP.Height,HintBMP.Canvas.Handle,0,0,SRCCOPY);
ReleaseDC(0, DC);
end;


 
Deka ©   (2006-01-12 12:17) [3]

В дополнение к [2] могу сказать, что просто график без фона может смотреться довольно плохо если будет отрисовываться на чем-нибудь пестром (бывают же пестрые обои?). Поэтому IMHO лучший способ - это сделать полупрозрачную форму
(прозрачность может регулировать юзер), а на ней уже отрисовывать график.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.062 c
1-1137420572
oleg__
2006-01-16 17:09
2006.02.12
Стандартное PopupMenu в TRxRichEdit


2-1138210666
Proxytel
2006-01-25 20:37
2006.02.12
Обработка события клавиатуры при неактивном окне программы


6-1130246746
Monah
2005-10-25 17:25
2006.02.12
как сделать ирк клиент средствами делфи


1-1137264807
-matrix-
2006-01-14 21:53
2006.02.12
Переполнение памяти


11-1119439102
rAx
2005-06-22 15:18
2006.02.12
не могу использовать свойство HINT для меток





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский