![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
рисовать на канве то, что находится под ней (под формой) [D7, Win95/98]
Ландграф Павел © (2005-09-04 21:13:00)Нужно сделать форму буквой "Г", т.е. одну прямоугольную область сделать прозрачной, думаю кинуть канву, и нарисовать на ней то, что должны мы видеть=) подскажите как реализовать...
Ландграф Павел (2005-09-05 20:04:00) [1]Турист>> Спасибо, быстро и работает!
LiqSir>> Компы на которых w98 "такие"... что этот код будет тормозить всю систему=)
LiqSir (2005-09-04 21:43:00) [2]используй TransparentColor в свойствах формы.
Если не получится, вот код, делает снимок экрана:
var
Form1: TForm1;
BackgroundCanvas: TCanvas;
BGbitmap: TBitmap;
BGbitmap := TBitmap.Create;
BGbitmap.Width := Screen.Width;
BGbitmap.Height := Screen.Height;
BackgroundCanvas := TCanvas.Create;
BackgroundCanvas.Handle := GetDC(0);
BGbitmap.Canvas.CopyRect(Rect(0,0,Screen.Width,Screen.Height),BackgroundCanvas
,Rect(0,0,Screen.Width,Screen.Height));
Турист (2005-09-04 21:36:00) [3]>Ландграф Павел © (04.09.05 21:13)
вариант Zacho © (04.09.05 21:32) [1]
procedure TForm1.FormCreate(Sender: TObject);
var
Rgn1, Rgn2, Rgn3: HRGN;
begin
Width := Height div 2;
Rgn1 := CreateRectRgn(0, 0, Width, Height);
try
Rgn2 := CreateRectRgn(60, 60, Width, Height);
try
Rgn3 := CreateRectRgn(0, 0, 0, 0);
CombineRgn(Rgn3, Rgn1, Rgn2, RGN_DIFF);
SetWindowRgn(Handle, Rgn3, False)
finally
DeleteObject(Rgn2)
end
finally
DeleteObject(Rgn1)
end
end;
Zacho (2005-09-04 21:32:00) [4]Лучше почитай про регионы.