procedure Tfrm_Gen.picFormResizeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: integer);
begin
If ssLeft
in Shift
Then
mDrag := True
end;
procedure Tfrm_Gen.picFormResizeMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: integer);
Var
L : Integer;
//Form links
T : Integer;
//Form Top
W : Integer;
//form weite
H : Integer;
//Form Höhe
mPBRec : TRECT;
//'Record der PicBox
POINT : TPOINT;
//'Maus Position
begin
L := self.left;
T := self.top;
W := self.Width;
H := self.Height;
//MouseDown ereignis ausgelößt?
If mDrag = True
Then
begin
//Aktuelle Position der PictureBox ermitteln
GetWindowRect(picFormResize.Handle, mPBRec);
//Aktuelle Cursor Position ermitteln
GetCursorPos(POINT);
If (POINT.x >= mPBRec.Right - 5)
And (POINT.y >= mPBRec.Bottom - 5)
Then
begin
self.left := L;
self.top := T;
self.Width := W + mRightStep;
self.Height := H + mHeightStep;
//Neue Position der PictureBox ermitteln. Alte wurde verändert
GetWindowRect(picFormResize.Handle, mPBRec);
//Cursor Position setzen auf die mitte der PicBox
//damit nicht die nächste abfrage ausgelößt wird
SetCursorPos(mPBRec.Left + ((mPBRec.Right - mPBRec.Left)
div 2) - 3,
mPBRec.Top + ((mPBRec.Bottom - mPBRec.Top)
div 2) - 3 );
exit;
end;
If (POINT.x <= mPBRec.left)
And (POINT.y <= mPBRec.top)
Then
begin
//Standart weite erzwingen wenn Formweite unter 4125
If w < 275
Then
w := 275;
//Standart höhe erzwingen wenn Formhöhe unter 1740
If h < 116
Then
h := 116;
self.left := L;
self.top := T;
self.Width := W - mRightStep;
self.Height := H - mHeightStep;
//Neue Position der PictureBox ermitteln. Alte wurde verändert
GetWindowRect(picFormResize.Handle, mPBRec);
//Cursor Position setzen auf die mitte der PicBox
//damit nicht die nächste abfrage ausgelößt wird
SetCursorPos( mPBRec.left + ((mPBRec.Right - mPBRec.left)
div 2) - 3,
mPBRec.Top + ((mPBRec.Bottom - mPBRec.Top)
div 2) - 3);
exit;
end;
//******* Form Schrittweise nach Rechts verschieben abhängig von der Cursor Position *******
If (POINT.x >= (mPBRec.left + (mPBRec.Right - mPBRec.left)))
Then
begin
self.left := L;
self.top := T;
self.Width := W + mRightStep;
self.Height := H;
//Neue Position der PictureBox ermitteln. Alte wurde verändert
GetWindowRect(picFormResize.Handle, mPBRec);
//Cursor Position setzen auf die mitte der PicBox
//damit nicht die nächste abfrage ausgelößt wird
SetCursorPos( mPBRec.left + ((mPBRec.Right - mPBRec.left)
div 2) - 3,
mPBRec.Top + ((mPBRec.Bottom - mPBRec.Top)
div 2) - 3);
//******* Form Schrittweise nach Unten verschieben abhängig von der Cursor Position *******
end else
If (POINT.y >= (mPBRec.tOp + (mPBRec.Bottom - mPBRec.tOp)))
Then
begin
self.left := L;
self.top := T;
self.Width := W;
self.Height := H + mHeightStep;
//Neue Position der PictureBox ermitteln. Alte wurde verändert
GetWindowRect(picFormResize.Handle, mPBRec);
//Cursor Position setzen auf die mitte der PicBox
//damit nicht die nächste abfrage ausgelößt wird
SetCursorPos(mPBRec.left + ((mPBRec.Right - mPBRec.left)
div 2) - 3,
mPBRec.Top + ((mPBRec.Bottom - mPBRec.Top)
div 2) - 3);
//******* Form Schrittweise nach Links verschieben abhängig von der Cursor Position *******
end else
If (POINT.x <= (mPBRec.Right + (mPBRec.left - mPBRec.Right) - 6))
Then
begin
//Standart weite erzwingen wenn Formweite unter 4125
If w < 275
Then
w := 275;
self.left := L;
self.top := T;
self.Width := W - mRightStep;
self.Height := H;
//Neue Position der PictureBox ermitteln. Alte wurde verändert
GetWindowRect(picFormResize.Handle, mPBRec);
//Cursor Position setzen auf die mitte der PicBox
//damit nicht die nächste abfrage ausgelößt wird
SetCursorPos(mPBRec.left + ((mPBRec.Right - mPBRec.left)
div 2) - 3,
mPBRec.Top + ((mPBRec.Bottom - mPBRec.Top)
div 2) - 3);
//******* Form Schrittweise nach Oben verschieben abhängig von der Cursor Position *******
end else
If (POINT.y <= (mPBRec.Bottom + (mPBRec.Top - mPBRec.Bottom)) - 6)
Then
begin
//Standart höhe erzwingen wenn Formhöhe unter 1740
If h < 116
Then
h := 116;
self.left := L;
self.top := T;
self.Width := W ;
self.Height := H - mHeightStep;
//Neue Position der PictureBox ermitteln. Alte wurde verändert
GetWindowRect(picFormResize.Handle, mPBRec);
//Cursor Position setzen auf die mitte der PicBox
//damit nicht die nächste abfrage ausgelößt wird
SetCursorPos(mPBRec.left + ((mPBRec.Right - mPBRec.left)
div 2) - 3,
mPBRec.Top + ((mPBRec.Bottom - mPBRec.Top)
div 2) - 3);
end;
end;
end;
procedure Tfrm_Gen.picFormResizeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: integer);
begin
If mDrag
Then
mDrag := False;
end;