Вниз
Скачать: CL | DM;

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

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
14-5233
jurmich
2003-01-16 12:53
2003.02.03
libraries


14-5129
kronprince
2003-01-13 16:37
2003.02.03
Разочаровался я в Delphi :(((


6-5118
Slava V.
2002-12-09 14:55
2003.02.03
Определение сетевой активности программ


3-4739
viper
2003-01-15 17:15
2003.02.03
Проблема вывода на печать в FastReports!


3-4780
Maniak
2003-01-16 16:18
2003.02.03
Как программно можно создать Alias ???




   Наверх