initial commit
[rofl0r-KOL.git] / units / gdiplus / KOLGDIPLUS1.pas
blob564bd140ba757c0109b736c979da44fbde1709b2
1 unit KOLGDIPLUS1;
2 //********************************************************************
3 // Created by KOL project Expert Version 2.00 on:18-3-2003 12:28:48
4 //********************************************************************
7 interface
8 uses
9 Windows, Kol, kolgdipv2;
11 type
14 PForm1=^TForm1;
15 TForm1=object(Tobj)
16 Form:pControl;
17 BackImage,
18 GlobeImage,
19 JigSawImage: pGPImage;
20 Timer:pTimer;
22 public
23 procedure PaintBox1Paint (Sender: pControl;DC:HDC);
24 procedure changed(sender:pObj);
25 procedure DoTimer(Sender: pObj);
26 end;
29 procedure NewForm1( var Result: PForm1; AParent: PControl );
31 var
32 Form1:pForm1;
34 implementation
36 procedure NewForm1( var Result: PForm1; AParent: PControl );
37 begin
38 New(Result,Create);
39 with Result^ do
40 begin
41 Form:= NewForm(AParent,'KOL GDIPlus Library Demo').SetSize(600,400).centeronparent.Tabulate;
42 Applet:=Form;
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
53 begin
54 Timer:=NewTimer(GlobeImage.FrameDelay (0) * 5);
55 Timer.OnTimer:=DoTimer;
56 Timer.Enabled := True;
57 end;
58 end;
59 end;
61 procedure TForm1.DoTimer(Sender: pObj);
62 var
63 r: TRect;
64 begin
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);
69 end;
72 procedure Tform1.changed(sender:pObj);
73 begin
74 // form.invalidate;
75 // Timer.Enabled:=true;
76 end;
78 procedure TForm1.PaintBox1Paint (Sender: pControl;DC:HDC);
79 var i:integer;
81 procedure DrawJoint (X, Y: Integer; Join: TGPPenLineJoin);
82 begin
83 GDIPlus.Pen.LineJoin := Join;
84 GDIPlus.DrawLines ([MakePoint (X, Y), MakePoint (X + 600, Y + 300), MakePoint (X+200, Y + sender.ClientHeight-10)]);
85 end;
87 begin
88 with GDIPlus^ do begin
89 DeviceContext := DC;
90 Clear (white);
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);
100 Pen.Width := 10;
101 Pen.Brush:=NewGPSolidBrush(tomato);
102 DrawLine (0, 0, sender.ClientWidth, sender.ClientHeight);
105 Pen.Brush :=NewGPHatchBrush(HatchStyleLargeGrid, ColorFromAlphaColor (185, moccasin), ColorFromAlphaColor (185, SteelBlue));
106 Pen.Width := 20;
107 DrawEllipse (140, 140, sender.ClientWidth-140, sender.ClientHeight-200);
108 Pen.Width := 16;
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);
114 end;
115 end;
119 end.