Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: CL | DM;

Вниз

Форма   Найти похожие ветки 

 
Rustamus ©   (2004-01-09 22:07) [0]

Как "обрезать" форму по рисунку как по трафарету?


 
Teren   (2004-01-09 23:09) [1]

Не очень понял, что надо. Если обрезать форму по координатам, то смотри функции SetWindowRgn, CreatePolygonRgn


 
Mihey ©   (2004-01-10 01:40) [2]

По рисунку так по рисунку:

procedure CropWindow( Handle: HWnd; Picture : TPicture );
var
hrgn, hrgn1 : integer;
hdc : integer;
x, y : integer;
Color : TColor;
begin
// Color := Picture.Bitmap.Canvas.Pixels[ 0, 0 ];
Color := clWhite;
hdc := GetDC( Handle );
hrgn := CreateRectRgn( 0, 0, Picture.Graphic.Width, Picture.Graphic.Height );
for x := 1 to Picture.Graphic.Width do
for y := 1 to Picture.Graphic.Height do
if Picture.Bitmap.Canvas.Pixels[ x - 1, y - 1 ] = Color then begin
hrgn1 := CreateRectRgn( x - 1, y - 1, x, y);
CombineRgn( hrgn, hrgn, hrgn1, RGN_DIFF );
DeleteObject( hrgn1 );
end;
SetWindowRgn( Handle, hrgn, true );
//DeleteObject( hrgn );
ReleaseDC( Handle, hdc);
end;

procedure UncropWindow( Handle: HWnd; Picture : TPicture );
var
hrgn : integer;
hdc : integer;
begin
hdc := GetDC( Handle );
hrgn := CreateRectRgn( 0, 0, Picture.Graphic.Width , Picture.Graphic.Height );
SetWindowRgn( Handle, hrgn, true );
ReleaseDC( Handle, hdc );
end;


 
Intell ©   (2004-01-10 11:12) [3]

Если хочешь пример, то сообщи на мыло и я вышлю! Там всё подробно описано - как и что.



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

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

Наверх




Память: 0.47 MB
Время: 0.036 c
1-63092
Kiril-
2004-01-08 15:21
2004.01.20
case integer of


7-63414
FireMan_Alexey
2003-11-05 14:53
2004.01.20
Как можно убрать прогу из списка процессов?


1-63151
jiurajhgjhgty
2004-01-06 22:30
2004.01.20
Хочу в Excel кое-что из delphi удалить.Не знаю как


1-63155
Rimd
2004-01-06 15:54
2004.01.20
TMenu


9-62952
Жека
2003-06-17 23:40
2004.01.20
Как анимировать 3-мерные модели в DirectX.