Mega Code Archive

 
Categories / Delphi / Graphic
 

Any Shape Colored Form (( Professional ))

Title: Any-Shape Colored Form (( Professional )) Question: What is the best way to draw a form just as i IMAGINE it ?? well try this simple code, all you need is the ability to count to 60 !! :-)) Answer: Well, Declare these 2 sentences to your PROTECTED declaration procedure EvEraseBkgnd(var M: tMessage); message WM_ERASEBKGND; procedure EvNcHitTest(var M: tMessage); message WM_NCHITTEST; Then Of Course, add them in the body code !! Procedure tForm1.EvEraseBkgnd(var M:tMessage); Begin { No Erase Window Background.... } M.Result:=1; End; Procedure tForm1.EvNcHitTest(var M:tMessage); Begin Inherited; { If Hit in Client Area then simulate hit in Caption Area } if M.Result=HTCLIENT then M.Result:=HTCAPTION; End; make the following OnFormPaint Procedure.. procedure TForm1.FormPaint(Sender: TObject); Var Buffer : tBitmap; Begin Buffer:=tBitmap.create; Buffer.LoadFromResourceName(hinstance,'FORM'); Bitblt(Canvas.handle,0,0, Buffer.width,Buffer.height, Buffer.canvas.handle,0,0, SrcCopy); Buffer.free; end; And On Your Form, Put Any Buttons Or TEdits Or Anything You Want To Add, Try Your Form, I think it is working just as it used to work all the time, that is true, this is not the secret, the big part is here OnFormCreate Procedure Needs To Be Added :-)) procedure TForm1.FormCreate(Sender: TObject); var Region1 : array of tPoint; Region1hrgn : hRgn; Begin SetLength(Region1,59); Region1[0].X:=12; Region1[0].Y:=6; Region1[1].X:=484; Region1[1].Y:=6; Region1[2].X:=484; Region1[2].Y:=7; Region1[3].X:=486; Region1[3].Y:=7; Region1[4].X:=486; Region1[4].Y:=8; Region1[5].X:=487; Region1[5].Y:=8; Region1[6].X:=487; Region1[6].Y:=9; Region1[7].X:=488; Region1[7].Y:=9; Region1[8].X:=488; Region1[8].Y:=10; Region1[9].X:=489; Region1[9].Y:=10; Region1[10].X:=489; Region1[10].Y:=12; Region1[11].X:=490; Region1[11].Y:=12; Region1[12].X:=490; Region1[12].Y:=285; Region1[13].X:=489; Region1[13].Y:=285; Region1[14].X:=489; Region1[14].Y:=287; Region1[15].X:=488; Region1[15].Y:=287; Region1[16].X:=488; Region1[16].Y:=288; Region1[17].X:=487; Region1[17].Y:=288; Region1[18].X:=487; Region1[18].Y:=289; Region1[19].X:=486; Region1[19].Y:=289; Region1[20].X:=486; Region1[20].Y:=290; Region1[21].X:=484; Region1[21].Y:=290; Region1[22].X:=484; Region1[22].Y:=291; Region1[23].X:=101; Region1[23].Y:=291; Region1[24].X:=100; Region1[24].Y:=290; Region1[25].X:=99; Region1[25].Y:=290; Region1[26].X:=98; Region1[26].Y:=289; Region1[27].X:=97; Region1[27].Y:=288; Region1[28].X:=96; Region1[28].Y:=287; Region1[29].X:=95; Region1[29].Y:=286; Region1[30].X:=95; Region1[30].Y:=284; Region1[31].X:=94; Region1[31].Y:=283; Region1[32].X:=94; Region1[32].Y:=200; Region1[33].X:=93; Region1[33].Y:=199; Region1[34].X:=93; Region1[34].Y:=198; Region1[35].X:=92; Region1[35].Y:=197; Region1[36].X:=91; Region1[36].Y:=196; Region1[37].X:=90; Region1[37].Y:=195; Region1[38].X:=89; Region1[38].Y:=194; Region1[39].X:=88; Region1[39].Y:=194; Region1[40].X:=87; Region1[40].Y:=193; Region1[41].X:=14; Region1[41].Y:=193; Region1[42].X:=13; Region1[42].Y:=192; Region1[43].X:=12; Region1[43].Y:=192; Region1[44].X:=11; Region1[44].Y:=191; Region1[45].X:=10; Region1[45].Y:=190; Region1[46].X:=9; Region1[46].Y:=189; Region1[47].X:=8; Region1[47].Y:=188; Region1[48].X:=8; Region1[48].Y:=187; Region1[49].X:=7; Region1[49].Y:=186; Region1[50].X:=7; Region1[50].Y:=184; Region1[51].X:=6; Region1[51].Y:=183; Region1[52].X:=6; Region1[52].Y:=12; Region1[53].X:=7; Region1[53].Y:=11; Region1[54].X:=7; Region1[54].Y:=10; Region1[55].X:=8; Region1[55].Y:=9; Region1[56].X:=9; Region1[56].Y:=8; Region1[57].X:=10; Region1[57].Y:=7; Region1[58].X:=11; Region1[58].Y:=7; Region1hrgn:=CreatePolygonRgn(Region1[0],59,2); SetWindowRgn(Handle, Region1hrgn, True); End; Please Comment...... ===================== Ruslan Abu Zant Opilki-Net http://www.opilki.net/ Admin@Opilki.Com ICQ 116-416 =====================