Resize Shape oubien JvShape ???????

Signaler
Messages postés
31
Date d'inscription
lundi 21 mai 2007
Statut
Membre
Dernière intervention
21 août 2008
-
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
-
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.

3 réponses

Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
Bonjour,

Bien vu le TJvShape qui lui possède un évènement OnResize..
mais ça marche pas..
 
Il te reste la solution de mettre un TShape en alignement CLI ENT
et de la placer dans un TPanel.

cantador
Messages postés
190
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
17 janvier 2009

Oui CANTADOR !!
ça c'est une bonne Solution !!
BY OFFLAKE
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
Oui enfin c'est pas vraiment le top mais ça doit marcher puisqu'avec le panel cela fonctionne..

cantador