Gripsplitter: un splitter avec "grippy"

Description

Ce package introduit un nouveau composant: le TGripSplitter.

Celui-ci a un fonctionnement assez différent du TSplitter standard. Pour l'utiliser, il faut déjà créer un contrôle quelconque, dont on met la propriété "Align" à alLeft, alRight, alBottom ou alTop (si ce n'est pas le cas, le GripSplitter associé ne fera rien). Ensuite, on peut créer un TGripSplitter, dont on assigne la propriété "Associate" au composant précédemment créé. Automatiquement, le GripSplitter va se mettre au bon endroit par rapport au composant, (parent et alignement), et permettre de le redimensionner. En mode "design" (c'est à dire dans Delphi), on peut manipuler le GripSplitter avec le bouton droit de la souris (csDesignInteractive in ControlState).

Le GripSplitter (voir capture et exemple) possède un bouton central qui permet de replier/déplier le contrôle "Associate". La propriété qui indique si le GripSplitter est replié est "Snapped".

Les thèmes de Windows XP sont supportés par le composant, il faudra utiliser un TXPManifest pour qu'ils soient utilisés.

Source / Exemple :


TGripSplitter=class(TCustomControl)
  public
    property Vertical:Boolean read GetVertical;                                         //Vertical or not (read-only, the associate align determines it)
  published
    property Associate:TControl read FAssociate write SetAssociate;                     //Associate control

    property Size:Integer read FSize write SetSize default 15;                          //Width if vertical, Height if horizontal

    property MinSplitSize:Integer read FMinSplitSize write SetMinSplitSize default 50;  //Min associate size
    property MaxSplitSize:Integer read FMaxSplitSize write SetMaxSplitSize default 0;   //Max associate size

    property Snapped:Boolean read FSnapped write SetSnapped;                            //Associate is "snapped" against parent border

    property Transparent:Boolean read FTransparent write SetTransparent;                       //Transparent or not
    property SizingCursor:TCursor read FSizingCursor write SetSizingCursor default crHSplit;   //Sizing mous cursor
    property UseThemes:Boolean read FUseThemes write SetUseThemes default True;                //Use Windows themes
    property Beveled:Boolean read FBeveled write SetBeveled;                                   //Draw a frame rect

    property OnResize:TNotifyEvent read FOnResize write SetOnResize;                           //When resize occurs
  end;

Conclusion :


Pour tester le composant:
-Compiler et installer le package GripSplitter (dans le répertoire "lib/")
-Compiler et exécuter le programme d'exemple Project1.dpr (dans le répertoire "example/")

Le composant est niveau débutant en ce qui concerne son utilisation, le package est niveau "Expert".

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.