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

Вниз

Вывод текста поверх всех окон.   Найти похожие ветки 

 
ReYken   (2002-11-18 11:43) [0]

Подскажите, плз, как вывести текст (не на окне), а поверх всех окон,
без формы, на несколько секунд, а потом его убрать?

Заранее благодарен.


 
Song   (2002-11-18 11:49) [1]

Получаешь DC десктопа, связываешь его с TCanvas. И выводишь через TCanvas.TextOut(координаты, текст);


 
ReYken   (2002-11-18 12:32) [2]

Да нее... поверх _всех_ окон! И надо типа 25 кадра, меньше чем на секунду и убрать. Типа анимации. Текст меняется.


 
han_malign   (2002-11-18 13:44) [3]

GetDC(0)- помоему, а если убирать то сначала вырезать фон, а потом прорисовывать его на место.


 
ReYken   (2002-11-18 13:46) [4]

Ага... и будут огромные тормоза... я ж грю что надо меньше чем на секунду а потом другой текст.


 
han_malign   (2002-11-18 13:51) [5]

Перерисовка всего экрана будет тормознутее.
(SetWindowRgn по тексту вообще жуть)
InvalidateRect?


 
ReYken   (2002-11-18 13:54) [6]

Вот и я тоже подумал может SetWindowRgn........ :(...

А что такое InvalidateRect я не зна....


 
Godness   (2002-11-22 22:14) [7]

var
Shit:HDC;
begin
Shit := GetDC(0); {этой функцией ты можеш рисовать где угодно (ну почти), 0 - дескриптор рабочего стола, получаеш в переменной Shit ссылку на контекст воспроизведения данного обьекта. Или так - GetDC(Button1.Handle) - рисуеш на бутоне; или так - функцией FindWindow получаеш дескриптор чужого окна и е...ш его}
Rectangle(Shit, 10, 10, 200, 200);
ReleaseDC(0,ScreenDC); {желательно освободить дескриптор (можно не сразу как ты понимаеш) иначе маст дай 98 может выдать глюк (у меня бывало)}


 
Godness   (2002-11-22 22:28) [8]

P.S.
...ля забыл - стереть это дело на рабочем столе надо путем обновления последнего. Делается это так InvalidateRect(Shit);
Низкоуровневая функция, перерисовывает экран быстрее всех других функций. Правда, не совсем точно помню колличество параметров см. Help, хотя вроде все правильно.


 
Godness   (2002-11-22 22:33) [9]

...ля, ...ля лохонулся - InvalidateRect(0) - передаеш дескриптор рабочего стола !?


 
apay   (2002-11-24 23:58) [10]

используй DirectDraw, вырезай кусок экрана, делай копию, на ней пиши, выплескивай это на экран, ч/з 1/25 сек. восстанавливый кусок из заполненного. только не забудь на эти 1/25 сек. залокить область ч/з DirectDraw и залокить область, а то если например в это время окошко таскать будут, то фигня может получиться...


 
Yuri Btr   (2002-11-25 12:05) [11]

Кто нибудь подскажите, что передавать в InvalidateRect!
После вывода текста, мне нужно его убрать и перерисовать экран.
я пытаюсь
InvalidateRect(0,DesktopRect,true);
где DesktopRect : TRect
но надо какой то lpRect ???

И ещё, для корректного восстановления внешнего вида окон, нужно запоминать предыдущий Canvas а затем восстанавливать? или можно просто стереть выведенную надпись?

Заранее спасибо!


 
Yuri Btr   (2002-11-25 12:06) [12]

Сорри, всё работает
InvalidateRect(0,nil,true);



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

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

Наверх





Память: 0.47 MB
Время: 0.01 c
14-5215
ledzzz
2003-01-15 15:30
2003.02.03
barcode-компоненты для Delphi5


3-4758
Sectey
2003-01-16 10:30
2003.02.03
Координаты текущей ячейки в Grid-е


3-4774
Whippi
2003-01-16 17:22
2003.02.03
А можно ли както использовать?


1-4825
xxxCrazyManxxx
2003-01-23 08:20
2003.02.03
help onClick


1-5001
Valeris
2003-01-23 16:42
2003.02.03
Функция замены одного символа на другой





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский