![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод текста на экран [D6, 95/98]
Rubey © (2006-03-22 08:12:00)Прошу знатоков помочь решить проблему вывода текста для просмотрана экран. Пытаюсь вывести объектом CANVAS некую квитанцию об оплате. Для этого создаю дополнительную форму KVOUT , но не знаю как напустить на нее вывод. Единственное, что получается - это прописать код вывода квитанции в батон формы KVOUT и пи его нажатии все работает.
Посоветуйте как вывести текст из главной формы, без нажатия батогов в дополнительной форме. Может это принципиально невоможно, но тогда как это делается иначе ?
C уважением - Рубей.
222.03.2006
SEMYONov (2006-03-23 08:14:00) [1]:-) Мне нужно нарисовать теккст по верх всех приложений, а потомо через некоторое время сделать так чтобы он исчез.
Procedure DrawOnScreen;
var
DC:HDC;
DesktopCanvas:TCanvas;
R: TRect;
begin
DC:=GetDC(0); // получили DC экрана
try
DesktopCanvas:=TCanvas.Create;
DesktopCanvas.Handle:=DC;
R.Top := screen.height div 2;
R.Left := screen.Width div 2;
windows.DrawText(dc,'ОСТАЛОСЬ 5 МИНУТ!!!',17,r,DT_SINGLELINE);
finally
ReleaseDC(0,DC);
DesktopCanvas.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
drawonscreen;
end;
А вот как его стереть, помимо того чтобы поводить формами по экрану я не знаю.
ТЮзер (2006-03-22 12:13:00) [2]> А если я нарисовал непосредственно на экране - как его обновить (refresh)
Не надо рисовать непосредственно на экране.
SEMYONov (2006-03-22 11:53:00) [3]А если я нарисовал непосредственно на экране - как его обновить (refresh)
ЮЮ (2006-03-22 11:31:00) [4]
> Единственное, что получается - это прописать код вывода
> квитанции в батон формы KVOUT и пи его нажатии все
> работает.
Код рисования на форме должен быть расположен в обработчике OnPaint этой формы. В OnClick батона - не выход: проведи над формой другую форму и всё сотрется
SEMYONov (2006-03-22 10:36:00) [5]Очень полезная вещь! Но я что то долго дрюкался, но так и не понял как стереть то, что мы вывели на экран? (на подобии refresh)
Gydvin (2006-03-22 10:25:00) [6]поробуй так
KVOUT.canvas
Handle (2006-03-22 09:32:00) [7]
var
dtc: TCanvas;
begin
dtc:=TCanvas.Create;
dtc.Handle:=GetDC(Hwnd_Desktop);
dtc.Font.Size:=9;
dtc.Brush.Color:=clWhite;
dtc.Font.Color:=clBlack;
dtc.TextOut(400,400,' Прошу знатоков помочь решить проблему вывода текста для просмотрана экран.');
ReleaseDC(dtc.Handle,Hwnd_Desktop);
dtc.Free;
TUser (2006-03-22 08:58:00) [8]> Пытаюсь вывести объектом CANVAS некую квитанцию об оплате.
Часто для этого используют специальные генераторы отчетов.
Если же хочешь именно на канвас - то проблем тоже не болжно быть. У канвы есть метод TextOut, также поможет TextWidth/TextHeight.