nit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TRechteck =
class(TObject)
private
z: Integer;
x1, x2, y1, y2: Integer;
clr: TColor;
cvs: TCanvas;
procedure anfassen;
procedure OnMouseMove(x, y: Integer);
function rechteckGetroffen(
var Getroffen: BOOL): Boolean;
end;
TForm1 =
class(TForm)
btnRechteck: TButton;
lblXPosition: TLabel;
lblYPosition: TLabel;
lblXValue: TLabel;
lblYValue: TLabel;
procedure FormCreate(Sender: TObject);
procedure btnRechteckMouseMove(Sender: TObject; Shift: TShiftState;
x, y: Integer);
procedure btnRechteckMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; x, y: Integer);
procedure btnRechteckMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; x, y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; x, y: Integer);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
RechtEck: TRechteck;
DragFlag: BOOL;
MemX, MemY: Integer;
implementation
{$R *.dfm}
procedure TRechteck.anfassen;
var
FGetroffen: BOOL;
z: Integer;
begin
rechteckGetroffen(FGetroffen);
if FGetroffen
then
Form1.btnRechteck.Caption := '
true';
end;
procedure TForm1.btnRechteckMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; x, y: Integer);
begin
DragFlag := True;
MemX := x;
MemY := y;
end;
procedure TForm1.btnRechteckMouseMove(Sender: TObject; Shift: TShiftState;
x, y: Integer);
begin
RechtEck.OnMouseMove(x, y);
RechtEck.anfassen;
if not DragFlag
then
exit;
btnRechteck.Left := btnRechteck.Left + (x - MemX);
btnRechteck.Top := btnRechteck.Top + (y - MemY);
end;
procedure TForm1.btnRechteckMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; x, y: Integer);
begin
DragFlag := False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RechtEck := TRechteck.Create;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
x, y: Integer);
begin
Form1.btnRechteck.Caption := '
false';
end;
function TRechteck.rechteckGetroffen(
var Getroffen: BOOL): Boolean;
var
pt: TPoint;
begin
pt := Form1.btnRechteck.ScreenToClient(Mouse.CursorPos);
if PtInRect(Form1.btnRechteck.ClientRect, pt)
then
begin
Result := True;
end;
end;
{ TRechteck }
procedure TRechteck.OnMouseMove(x, y: Integer);
begin
Form1.lblXValue.Caption := IntToStr(x);
Form1.lblYValue.Caption := IntToStr(y);
end;
end.