This example effect chart:
Code files:
Unit Unit1;
Interface
Uses
Windows, Messages, sysutils, variants, Classes, Graphics, Controls, Forms,
Dialogs;
Type
TForm1 = Class (Tform)
Procedure Formpaint (Sender:tobject);
Procedure Formcreate (Sender:tobject);
Procedure Formdestroy (Sender:tobject);
Procedure Formmousedown (Sender:tobject; Button:tmousebutton;
Shift:tshiftstate; X, Y:integer);
Procedure Formmousemove (Sender:tobject; Shift:tshiftstate; X, Y:integer);
Procedure Formmouseup (Sender:tobject; Button:tmousebutton;
Shift:tshiftstate; X, Y:integer);
End
Var
Form1:tform1;
Implementation
{$R *.DFM}
Uses Gdipobj, GDIPAPI;
Var
X:integer = 20;
Y:integer = 20;
W:integer = 100;
H:integer = 50;
F:byte;
A,b:integer;
P:tgppen;
Procedure Tform1.formcreate (Sender:tobject);
Begin
P: = Tgppen.create (Makecolor (255,0,0), 2);
End
Procedure Tform1.formdestroy (Sender:tobject);
Begin
P.free;
End
Procedure Tform1.formmousedown (Sender:tobject; Button:tmousebutton;
Shift:tshiftstate; X, Y:integer);
Begin
F: = 1;
A: = X;
B: = Y;
End
Procedure Tform1.formmousemove (Sender:tobject; Shift:tshiftstate; X
Y:integer);
Begin
if (f = 0) then Exit;
If Ssctrl in Shift then
Begin
F: = 2;
Text: = ' Ctrl key pressed, mouse resizable ';
End else Text: = ' does not press the CTRL key, the mouse can adjust the position ';
A: = X-a;
B: = Y-b;
Repaint;
A: = X;
B: = Y;
End
Procedure Tform1.formmouseup (Sender:tobject; Button:tmousebutton;
Shift:tshiftstate; X, Y:integer);
Begin
F: = 0;
End
Procedure Tform1.formpaint (Sender:tobject);
Var
G:tgpgraphics;
Begin
G: = Tgpgraphics.create (Canvas.handle);
G.clear (Makecolor (255,255,255));
Case F of
1:begin
INC (X,a);
INC (Y,B);
End
2:begin
INC (W,a);
INC (H,B);
End
End
G.drawellipse (P, x, Y, W, h);
G.free;
End
End.
Form file:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 176
ClientWidth = 337
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
OnDestroy = FormDestroy
OnMouseDown = FormMouseDown
OnMouseMove = FormMouseMove
OnMouseUp = FormMouseUp
OnPaint = FormPaint
PixelsPerInch = 96
TextHeight = 13
end