Salut
le code sa marche tres bien avec panel
mais avec JvShape, Shape no ?!!!!
je voudrais changer le les Demonssion de Shape avec la serie mais je ne peut pas
voir L'Image a gouche
et voila le code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, JvExExtCtrls, JvShape;
type
TEdge = (eNone, eTopLeft, eTopRight, eBottomLeft, eBottomRight);
TForm1 = class(TForm)
JvShape1: TJvShape;
procedure JvShape1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure JvShape1Resize(Sender: TObject);
procedure JvShape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
r1, r2, r3, r4: TRect;
edge: TEdge;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.JvShape1Resize(Sender: TObject);
begin
r1 := rect(0, 0, 5, 5);
r3 := rect(JvShape1.width - 5, JvShape1.height - 5, JvShape1.width, JvShape1.height);
r2 := rect(r1.left, r3.top, r1.right, r3.bottom);
r4 := rect(r3.left, r1.top, r3.right, r1.bottom);
end;
procedure TForm1.JvShape1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ifptinRect(r1, Point(x, y))then edge := eTopLeft else
ifPtInRect(r3, Point(x, y))then edge := eBottomRight else
ifptinRect(r2, Point(x, y))then edge := eTopRight else
ifPtInRect(r4, Point(x, y))then edge := eBottomLeft else
edge := eNone;
case edge of
eNone: JvShape1.Cursor := crDefault;
eTopLeft, eBottomRight: JvShape1.Cursor := crSizeNWSE;
eTopRight, eBottomLeft: JvShape1.Cursor := crSizeNESW;
end;
end;
procedure TForm1.JvShape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if edge <> eNone then
begin
releaseCapture;
case edge of
eTopLeft: JvShape1.PerForm(WM_SysCommand, $F004, 0);
eTopRight: JvShape1.PerForm(WM_SysCommand, $F007, 0);
eBottomLeft: JvShape1.PerForm(WM_SysCommand, $F005, 0);
eBottomRight: JvShape1.PerForm(WM_SysCommand, $F008, 0);
end;
end;
end;
end.
Afficher la suite