IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Comment changer un resize


Sujet :

Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Comment changer un resize
    Bonjour,

    J'bien avancé dan smon resize de TWincontrol.

    Maintenant j'aimerais pouvoir faire comme dans delphi.
    Je m'exiplque :
    Lorsqu'on pose un composant, on a des poignées (chez moi bleu), par exemple un Tedit. On peut ensuite le move et on peut le resize.
    Lorsqu'on resize par exemple de gauche à droite et que l'on va plus loin que le right du composant, le right devient en quelque sorte le left, le composant ne bouge pas mais se redissine sur la droite.

    Voilà où j'en suis actuellement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    procedure TFDossierTiers.PoigneMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    Var
      NewPos: TPoint;
      i : integer;
      PanelParent : TSPanel;
    begin
      if not Assigned(Sender) then exit;
      if not (Sender is TMyShape) then exit;
      if not Assigned(TControl(Sender).Parent) then exit;
      if not (TControl(Sender).Parent is TsPanel) then exit;
      PanelParent := TsPanel(TMyShape(Sender).Parent);
     
      if FPoignePositioner then
      begin
      // On cache les poignées pendant le resize
        if FPassage = 0 then
          With PanelParent do
            for i := 0 to ControlCount - 1 do
              if (Controls[i] is TMyShape) then
                if TMyShape(Controls[i]).FocusControl = TMyShape(Sender).FocusControl then
                   TMyShape(Controls[i]).Visible := False;
     
        FPassage := 1;
     
        GetCursorPos(NewPos);
        With TMyShape(Sender) do
        begin
          Case TMyShape(Sender).Tag of
           {$REGION 'Haut-Gauche'}
           0:
           begin
    // ...
           end;
           {$ENDREGION}
           {$REGION 'Haut-Milieu'}
           1:
           begin
    // ...
           end;
           {$ENDREGION}
           {$REGION 'Haut-Droite'}
           2:
           begin
    // ...
           end;
           {$ENDREGION}
           {$REGION 'Milieu-Droite'}
           3:
           begin
             TMysPanel(FocusControl).Width := Left - TMysPanel(FocusControl).Left;
             Left := Left - oldPos.X + newPos.X;
           end;
           {$ENDREGION}
           {$REGION 'Bas-Droite'}
           4:
           begin
    // ...
           end;
           {$ENDREGION}
           {$REGION 'Bas-Milieu'}
           5:
           begin
    // ...
           end;
           {$ENDREGION}
           {$REGION 'Bas-Gauche'}
           6:
           begin
    // ...
           end;
           {$ENDREGION}
           {$REGION 'Milieu-Gauche'}
           7:
           begin
             TMysPanel(FocusControl).Width:= TMysPanel(FocusControl).Width + (oldPos.X - newPos.X);
             TMysPanel(FocusControl).Left := Left + Width;
             Left := Left - oldPos.X + newPos.X;
           end;
           {$ENDREGION}
          end;
     
          oldPos := newPos;
     
        end;
      end;

    Donc dans le Case = 7, actuellement si je vais trop vers la droite le composant disparait.

    Donc, comment peut-on faire se traitement pour que le composant ce redessine à droite ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Je mettrais l'intelligence au Down et non au Move et je travaillerais avec BoundsRect plutôt qu'avec Left/Width, Top/Height qui entraînent plein de calcul
    Le principe est de définir un point de référence en fonction de la poignée sélectionnée (Top/Left, Top/Right...). Ensuite, c'est n'est plus que du Min, Max. Le tout en coordonnées Parent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    unit Unit1;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Math;
     
    type
      TResizeMode = (rmAll, rmWidth, rmHeight);
     
      TForm1 = class(TForm)
        Panel1: TPanel;
        procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
        procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
        procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     
      private
        ResizeActive :boolean;
        ResizeRef    :TPoint;
        ResizeMode   :TResizeMode;
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      ResizeActive := TRUE;
     
      //L'intelligence est à mettre ici pour la sélection du point de référence
      //Le point inverse à la poignée sélectionnée !
     
      with TControl(Sender).BoundsRect do
      //case MonTest of
      //  mtBottomRight : begin
                            ResizeRef  := TopLeft;
                            ResizeMode := rmAll;
      //                  end;
      //  mtRight :       begin
      //                    ResizeRef  := Point(Left, 0);
      //                    ResizeMode := rmWidth;
      //                  end;
      //  ...
      //end;
    end;
     
    procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    var
      Pt :TPoint;
      R  :TRect;
     
    begin
      if ResizeActive then
      begin
        R := TControl(Sender).BoundsRect;
     
        //Coordonnées Parent
        Pt := TControl(Sender).ClientToParent(Point(X,Y));
     
        if ResizeMode in [rmAll, rmWidth] then
        begin
          R.Left   := Min(Pt.X, ResizeRef.X);
          R.Right  := Max(Pt.X, ResizeRef.X);
        end;
     
        if ResizeMode in [rmAll, rmHeight] then
        begin
          R.Top    := Min(Pt.Y, ResizeRef.Y);
          R.Bottom := Max(Pt.Y, ResizeRef.Y);
        end;
     
        TControl(Sender).BoundsRect := R;
      end;
    end;
     
    procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      ResizeActive := FALSE;
    end;
     
    end.

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut Andy comment vas-tu ?

    C'est vrai je suis dans des calculs trop complexe.
    Là j'étais entrain de changer et me dire de bloquer la taille du compo, mais je n'y arrive pas quand je vais a droite le composant se déplace grrrrrr.

    Bref,

    Ta proposition j'ai un gros doute.

    Moi au début j'ai un compo qui n'a pas de poigné, si je CTRL+CLIC dessus je fais apparaitre les poignées (les pognées sont toutes des Shapes):

    Evenement sur le down du panel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    procedure TFDossierTiers.ControlMouseDown(Sender: TObject;Button: TMouseButton;Shift: TShiftState;X, Y: Integer);
    Var
      R: TRect;
      sPanelParent : TsPanel;
      i: Integer;
      MyShape : TMyShape;
    begin
      UniteErreur := 'DossierTiers';
      ProcedureOuFonctionErreur := 'ControlMouseDown';
     
      if not Assigned(Sender) then exit;
      if not (Sender is TMysPanel) then exit;
      if not Assigned(TControl(Sender).Parent) then exit;
      if not (TControl(Sender).Parent is TsPanel) then exit;
      if TMysPanel(Sender).tag <> 2 then exit;
     
      sPanelParent := TsPanel(TMysPanel(Sender).Parent);
      if (Y > sPanelParent.ClientHeight) or (X > sPanelParent.ClientWidth) then exit;
     
      if (ssCtrl in Shift) then
      begin
        if TMysPanel(Sender).Hint <> TsMemo.ClassName then
        begin
         {$REGION '2 Poignées'}
          for i := 0 to 1 do
          begin
            MyShape := TMyShape.Create(self);
            MyObjListShape.Add(MyShape);
            With MyShape do
            begin
              Parent := sPanelParent;
              DoubleBuffered := True;
              Case i of
                {$REGION 'Milieu Droite'}
                0:
                begin
                  Cursor := crSizeWE;
                  tag := 3;
                  Left := TMysPanel(Sender).Left + TMysPanel(Sender).Width;
                  Top  := TMysPanel(Sender).Top + (TMysPanel(Sender).Height div 2) - 2;
                end;
                {$ENDREGION}
                {$REGION 'Milieu Gauche'}
                1:
                begin
                  Cursor := crSizeWE;
                  tag := 7;
                  Left := TMysPanel(Sender).Left - 4;
                  Top  := TMysPanel(Sender).Top + (TMysPanel(Sender).Height div 2) - 2;
                end;
                {$ENDREGION}
              end;
              FocusControl := TMysPanel(Sender);
              OnMouseDown := PoigneMouseDown;
              OnMouseMove := PoigneMouseMove;
              OnMouseUp   := PoigneMouseUp;
            end;
          end;
         {$ENDREGION}
    //...
    end;
    Et comme tu peux le voir j'affecte les evenements PoigneMouseDown, PoigneMouseMove, PoigneMouseUp au shape à ce moment précis, ensuite je gère depuis ces évenements à la fois le resize du panel et le move de la poignée...

    J'ai absolument besoin de mes poignées visuellement pour l'utilisateur, de plus je fais de la multisélection de compo :
    - pour le free, les poignées lui permettent de savoir lesquelles il a sélèctionné
    - pour l'alignement, une fois la sélèction fais j'ai des bouttons qui permette des alignement divers.

    donc il faut que je puisse faire ta proposition en cliquant sur les poignées, qui eux meme font bouger mon panel.

    Pour résumé:
    1) sur le panel je gère
    ControlMouseDown (création et placement des poignées)
    ControlMouseMove (uniquement pour le move du panel)
    ControlMouseUp (retour du move du panel

    2)Sur le shape (poignées visuelles) je gère
    PoignesMouseDown (actuellement je le clipRect)
    PoignesMouseMove (move shape et resize panel)
    PoignesMouseUp (replacement des poignées)

    Je vais voir avec ta proposition comment m'en sortir.

    a+

    PS : je t'aurai un jour je t'aurai...

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Ça ne change rien au principe. Les DOWN,MOVE,UP seront les événements du TShape, mais agiront toujours sur Panel1.BoundsRect

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Re,

    Bon je viens à l'arrache d'éssayer, quand je resize à un moment je tombe sur "ressource système insuffisante" MDR....

    voilà ce que j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    procedure TFDossierTiers.PoigneMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    Var
      R: TRect;
      PanelParent: TsPanel;
    begin
      UniteErreur := 'DossierTiers';
      ProcedureOuFonctionErreur := 'PoigneMouseDown';
     
      if not Assigned(Sender) then exit;
      if not (Sender is TMyShape) then exit;
      if not Assigned(TControl(Sender).Parent) then exit;
      if not (TControl(Sender).Parent is TsPanel) then exit;
      PanelParent := TsPanel(TControl(Sender).Parent);
     
      // Limite de déplacement
      With PanelParent do
      Begin
        R.TopLeft     := ClientToScreen(BoundsRect.TopLeft);
        R.BottomRight := ClientToScreen(BoundsRect.BottomRight);
        R.Left    := R.Left + ValPoignes;
        R.Top     := R.Top + ValPoignes;
        R.Bottom  := R.Bottom - ValPoignes;
        R.Right   := R.Right - ValPoignes;
        ClipCursor(@R);
      End;
     
      ResizeActive := TRUE;
     
      //L'intelligence est à mettre ici pour la sélection du point de référence
      //Le point inverse à la poignée sélectionnée !
     
      With TMyShape(Sender).FocusControl.BoundsRect do
      //case MonTest of
      //  mtBottomRight : begin
                            ResizeRef  := TopLeft;
                            ResizeMode := rmAll;
      //                  end;
      //  mtRight :       begin
      //                    ResizeRef  := Point(Left, 0);
      //                    ResizeMode := rmWidth;
      //                  end;
      //  ...
      //end;
     
    end;
     
    procedure TFDossierTiers.PoigneMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
      var
      Pt :TPoint;
      R  :TRect;
     
    begin
      if ResizeActive then
      begin
        R := TMyShape(Sender).FocusControl.BoundsRect;
     
        //Coordonnées Parent
        Pt := TMyShape(Sender).FocusControl.ClientToParent(Point(X,Y));
     
        if ResizeMode in [rmAll, rmWidth] then
        begin
          R.Left   := Min(Pt.X, ResizeRef.X);
          R.Right  := Max(Pt.X, ResizeRef.X);
        end;
     
        if ResizeMode in [rmAll, rmHeight] then
        begin
          R.Top    := Min(Pt.Y, ResizeRef.Y);
          R.Bottom := Max(Pt.Y, ResizeRef.Y);
        end;
     
        TMyShape(Sender).FocusControl.BoundsRect := R;
      end;
    end;
     
    procedure TFDossierTiers.PoigneMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    Var
      i: integer;
      PanelParent : TSPanel;
      aFocusControl: TWinControl;
      aMyShape: TMyShape;
    begin
      UniteErreur := 'DossierTiers';
      ProcedureOuFonctionErreur := 'PoigneMouseDown';
     
      ResizeActive := FALSE;
      ClipCursor(nil);
    end;
    Au passage comment tu fais pour avoir des déplacements que horizontal ou que verticale ?


  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Je me suis mal exprimé.

    Mes Panels que je souhaite resize à l'aide des poignées de type Tshape, sont des Panel qui contiennent réellement des TEdit, TLabel, TCheckBox, etc... en enable à false;

    ILLUSTRATION



    J'ai fais ce choix car il subsite des problèmes divers sur le move and resize de certain composant
    exemple : le move du TcheckBox je perdais le composant pendant le déplacement, deplus il se cochait tout seul...

    donc j'ai prix comme idée de n'avoir que des panels conteneur des ses composants.

    Si j'utilise ta proposition au premier down il me réduit le panel (et donc le composant) systématiquement ce qui oblige toujours de le retaillé à l'initiale.

    Je voudrais par exemple pour tout mes panels (sauf celui qui contient le TMemo)
    -a- Limite le déplacement sur la parent qui est aussi un PANEL (ça ok avec cliprect)
    -b- uniquement avec 2 poignées milieugauche et milieudoit (çà ok)
    -c- si le left du compo devient le right, il faut inverser
    -d- si le right du compo devient le left, il faut inverser

    Le c et d en fait j'y arrive.... enfin comment dire soit l'un soit l'autre mes pas les deux, je faisais cela

    if FocusControl.width = 0 then if tag = 3 then tag := 7;

    ou cela
    if FocusControl.width= 0 then if tag = 7 then tag := 3;

    Mais si j'essaie les deux comme ceci
    if FocusControl.width = 0 then
    if tag = 3 then tag := 7 else if tag = 7 then tag :=3;
    ça marche pas pour l'un ou pour l'autre

    Ce traitement je le faisais à la fin de mon case dans le move de la poignée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    procedure TFDossierTiers.PoigneMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    Var
      NewPos : TPoint;
      i : integer;
      PanelParent : TSPanel;
    begin
    // ...
      if FPoignePositioner then
      begin
      // On cache les poignées pendant le resize
        if FPassage = 0 then
          With PanelParent do
            for i := 0 to ControlCount - 1 do
              if (Controls[i] is TMyShape) then
                if TMyShape(Controls[i]).FocusControl = TMyShape(Sender).FocusControl then
                   TMyShape(Controls[i]).Visible := False;
    
        FPassage := 1;
    
        GetCursorPos(NewPos);
        With TMyShape(Sender) do
        begin
          Case TMyShape(Sender).Tag of
    // ...
           $REGION 'Milieu-Droite'
           3:
           begin
             FocusControl.Width := Left - FocusControl.Left;
             Left := Left - oldPos.X + newPos.X;
           end;
           $ENDREGION
    // ...
           $REGION 'Milieu-Gauche'
           7:
           begin
             FocusControl.Width:= FocusControl.Width + (oldPos.X - newPos.X);
             FocusControl.Left := Left + Width;
             Left := Left - oldPos.X + newPos.X;
           end;
           $ENDREGION
          end;
    ICI
    if FocusControl.width = 0 then if tag = 3 then tag := 7;
    
    // PAs les deux
    // if FocusControl.width= 0 then if tag = 7 then tag := 3;
    
          oldPos := newPos;
    
        end;
      end;
    end;
    Incompréhensible que l'un ou l'autre seul fonctionne mais pas les if imbriquées mon composant disparait dans ce cas...

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    Si j'utilise ta proposition au premier down il me réduit le panel (et donc le composant) systématiquement ce qui oblige toujours de le retaillé à l'initiale.
    Bon d'un autre côté, je te montre le principe. Pas de poignée, pas de positionnement précis sur l'angle ou bord... Là je te laisse faire

    Maintenant, s'il n'y a que du gauche-droite, c'est encore plus simple : point de référence à droite si tu choisis la poignée de gauche et inversement. Ensuite, Min,Max la même chose.

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    s'il n'y a que du gauche-droite, c'est encore plus simple : point de référence à droite si tu choisis la poignée de gauche et inversement. Ensuite, Min,Max la même chose.
    J'ai bien compris le système.

    Mais je ne peux pas l'appliquer uniquement parcque visuellement ça retaille systématiquement le Panel au départ.

    Ce que je cherchai vraiment c'est de faire exactement le même déplacement de composant qu'on retrouve en conception sur DELPHI.

    Pour avancer j'ai jouer avec le clipRect et tanpis pour le déplacement de gauche à droite qui fais déplacer mon panel vers la droite si la réduction est trop grande.

    A moins que tu puisse m'aider pour bloquer le déplacement lorsque je prend une poigné de gauche et que je vais à droite et que j'atteinds une taille Width de 20 ?

  9. #9
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Bon,

    J'ai fini pas trouver le blocage.

    J'en resterai là, a moins que je me repenche sur l'inversion style DELPHI.

    Merci à toi AndNotor.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Comment changer dans une chaine
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 13/05/2004, 13h17
  2. Comment changer l'heure système ?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 26/04/2004, 10h24
  3. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42
  4. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53
  5. TextOut : comment changer de font
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 15/07/2002, 20h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo