Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.03;
Скачать: 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 вся ветка

Текущий архив: 2003.02.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
4-5355
Troll
2002-12-21 22:06
2003.02.03
Как нажать TAB?????


14-5215
ledzzz
2003-01-15 15:30
2003.02.03
barcode-компоненты для Delphi5


1-4862
pet
2003-01-24 18:59
2003.02.03
ярлык


1-4879
Lomman
2003-01-24 22:20
2003.02.03
Run-TIme Button


14-5243
oleon
2003-01-16 12:04
2003.02.03
Здраствуйте. Нужно нарисовать схему Базы данных.