2 //********************************************************************
3 // Created by KOL project Expert Version 2.00 on:18-3-2003 12:28:48
4 //********************************************************************
9 Windows
, Kol
, kolgdipv2
;
19 JigSawImage
: pGPImage
;
23 procedure PaintBox1Paint (Sender
: pControl
;DC
:HDC
);
24 procedure changed(sender
:pObj
);
25 procedure DoTimer(Sender
: pObj
);
29 procedure NewForm1( var Result
: PForm1
; AParent
: PControl
);
36 procedure NewForm1( var Result
: PForm1
; AParent
: PControl
);
41 Form
:= NewForm(AParent
,'KOL GDIPlus Library Demo').SetSize(600,400).centeronparent
.Tabulate
;
43 Form
.Add2AutoFree(Result
);
44 form
.OnPaint
:=paintbox1paint
;
45 form
.OnResize
:=Changed
;
46 BackImage
:=NewGPImage('Snowdon.jpg');
47 add2autofree(Backimage
);
48 GlobeImage
:= NewGPImage('globe.gif');
49 Add2Autofree(GlobeImage
);
50 JigSawImage
:= NewGPImage('jigsaw.png');
51 Add2AutoFree(JigSawImage
);
52 if GlobeImage
.CanAnimate
then
54 Timer
:=NewTimer(GlobeImage
.FrameDelay (0) * 5);
55 Timer
.OnTimer
:=DoTimer
;
56 Timer
.Enabled
:= True;
61 procedure TForm1
.DoTimer(Sender
: pObj
);
65 GlobeImage
.TimeFrame
:= GlobeImage
.TimeFrame
+ 1;
66 r
:= MakeRect (347, 120, 347 + 50, 120 + 50);
67 gdiplus
.DrawImage (form1
.GlobeImage
, 347, 120, 50, 50);
68 InvalidateRect (form
.canvas
.Handle
, @r
, False);
72 procedure Tform1
.changed(sender
:pObj
);
75 // Timer.Enabled:=true;
78 procedure TForm1
.PaintBox1Paint (Sender
: pControl
;DC
:HDC
);
81 procedure DrawJoint (X
, Y
: Integer; Join
: TGPPenLineJoin
);
83 GDIPlus
.Pen
.LineJoin
:= Join
;
84 GDIPlus
.DrawLines ([MakePoint (X
, Y
), MakePoint (X
+ 600, Y
+ 300), MakePoint (X
+200, Y
+ sender
.ClientHeight
-10)]);
88 with GDIPlus
^ do begin
91 //Brush :=NewGPLinearGradientBrush(sender.clientrect,white,Black,LinearGradientModeForwardDiagonal);
92 //Fillrectangle(sender.ClientRect);
93 Drawimage(Backimage
,0,0);
94 Font
:= NewGPFont(200, 'Arial', [fsBold
, fsItalic
]);
95 Brush
:= NewGPTextureBrush(JigSawImage
);
96 DrawString ('GDI+', sender
.ClientRect
);
99 Pen
:= NewGPPen(Tomato
);
101 Pen
.Brush
:=NewGPSolidBrush(tomato
);
102 DrawLine (0, 0, sender
.ClientWidth
, sender
.ClientHeight
);
105 Pen
.Brush
:=NewGPHatchBrush(HatchStyleLargeGrid
, ColorFromAlphaColor (185, moccasin
), ColorFromAlphaColor (185, SteelBlue
));
107 DrawEllipse (140, 140, sender
.ClientWidth
-140, sender
.ClientHeight
-200);
109 Pen
.Brush
:=NewGPLinearGradientBrush(sender
.clientrect
,gold
,coral
);
110 DrawJoint(100,10,LineJoinRound
);
112 Pen
.Brush
:=NewGPLinearGradientBrush(MakeRect(0,00,40,40),lemonchiffon
,Black
,LinearGradientModeForwardDiagonal
);
113 DrawEllipse (i
*100+40, 200, 40, 40);