Edge :TEdge;

Résolu
Taktaky Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 21 août 2008 - 3 juil. 2008 à 11:36
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 3 juil. 2008 à 21:17
Salut

ou puis je trover les Objets Edge en Delphi7 ?
j ai trouve un code mais je dois mettere les Controlls sur la Form comme :
Edge,  ...

voila le code :

type

  TEdge= (eNone,eTopLeft,eTopRight,eBottomLeft,eBottomRight);


  TForm1 = class (TForm)


...


  private

    { Private-Deklarationen }

    r1,r2,r3,r4:TRect;


    edge:TEdge;


...

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,


  Y: Integer);

begin

  if ptinRect(r1,Point(x,y)) then edge: =eTopLeft else

  if PtInRect(r3,Point(x,y)) then edge:= eBottomRight else

  if ptinRect(r2,Point(x,y)) then edge: =eTopRight else

  if PtInRect(r4,Point(x,y)) then edge:= eBottomLeft else

    edge: =eNone;


  case edge of

    eNone:Panel1.Cursor:= crDefault;


    eTopLeft,eBottomRight:Panel1.Cursor:=crSizeNWSE;


    eTopRight,eBottomLeft: Panel1.Cursor:=crSizeNESW;


  end ;

end;

procedure TForm1.Panel1Resize(Sender: TObject);

begin

  r1: =rect(0,0,5,5);


  r3:=rect(panel1.width-5,panel1.height-5,panel1.width,panel1.height);


  r2:=rect(r1.left,r3.top,r1.right,r3.bottom);


  r4:=rect(r3.left,r1.top,r3.right,r1.bottom);

end;

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;


  Shift: TShiftState; X, Y: Integer);

begin

  if edge<>eNone then

  begin

    releaseCapture;


    case edge of

      eTopLeft:Panel1.PerForm(WM_SysCommand, $F004, 0);


      eTopRight:Panel1.PerForm(WM_SysCommand, $F007, 0);


      eBottomLeft:Panel1.PerForm(WM_SysCommand, $F005, 0);


      eBottomRight:Panel1.PerForm(WM_SysCommand, $F008, 0);


    end;


  end;

end;

4 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 juil. 2008 à 14:16
bonjour,


çà marche :


unit Unit1;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;


type


  TEdge = (eNone, eTopLeft, eTopRight, eBottomLeft, eBottomRight);


  TForm1 = class(TForm)


    Panel1: TPanel;
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Panel1Resize(Sender: TObject);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);


  private
    r1, r2, r3, r4: TRect;
    edge: TEdge;
  public
    { Déclarations publiques }
  end;


var
  Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ptinRect(r1, Point(x, y)) then edge := eTopLeft else
    if PtInRect(r3, Point(x, y)) then edge := eBottomRight else
      if ptinRect(r2, Point(x, y)) then edge := eTopRight else
        if PtInRect(r4, Point(x, y)) then edge := eBottomLeft else
          edge := eNone;
  case edge of
    eNone: Panel1.Cursor := crDefault;
    eTopLeft, eBottomRight: Panel1.Cursor := crSizeNWSE;
    eTopRight, eBottomLeft: Panel1.Cursor := crSizeNESW;
  end;
end;


procedure TForm1.Panel1Resize(Sender: TObject);
begin
  r1 := rect(0, 0, 5, 5);
  r3 := rect(panel1.width - 5, panel1.height - 5, panel1.width, panel1.height);
  r2 := rect(r1.left, r3.top, r1.right, r3.bottom);
  r4 := rect(r3.left, r1.top, r3.right, r1.bottom);
end;


procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if edge <> eNone then
  begin
    releaseCapture;
    case edge of
      eTopLeft: Panel1.PerForm(WM_SysCommand, $F004, 0);
      eTopRight: Panel1.PerForm(WM_SysCommand, $F007, 0);
      eBottomLeft: Panel1.PerForm(WM_SysCommand, $F005, 0);
      eBottomRight: Panel1.PerForm(WM_SysCommand, $F008, 0);
    end;
  end;


end;


end.

mais PAS le OnMouseMove du fait que ptinRect() ne trouve rien
donc, il ne trouve pas le TRect..

J'ai essayé r1,r2,r3,r4:TRect;  en public mais quedal.
je vois pas pour l'instant.
  
cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 juil. 2008 à 14:57
ben non en fait tout marche...(les quatres cursors fonctionnent)
j'ai cru au départ que tu voulais déplacer le panel avec la souris...
je sais pas d'où vient ton erreur.
peut-être une écriture mal placée..

cantador
3
Taktaky Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 21 août 2008
3 juil. 2008 à 15:02
Hi

sda marche bien maintenet ;) Merci
je voudrais maintenet la meme mais avec Rectangle

Ou puis je changer
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 juil. 2008 à 21:17
You put the TShape(align : alclient) into the TPanel.

cantador
0
Rejoignez-nous