Copie du wikimiroir

Ceci est un miroir du wiki de pascal.chat. La modification, l’historique et la connexion se trouvent là-bas.

TSplitter/fr

Deutsch · English · Français · Suomi · Русский

Un TSplitter est un composant qui peut être placé sur un panneau ou une fiche telle une barre horizontale ou verticale pour séparer fonctionnellement deux panneaux.

Le contrôle peut être utilisé comme un séparateur visuel entre deux moitiés de votre fiche et permet à l'utilisateur de votre application de le déplacer soit horizontalement soit verticalement. ..

TSplitter peut fonctionner basiquement dans deux modes différents : via Align (manière Delphi) ou via AnchorSides (manière différente).

Splitter et Align

La propriété Align peut être utilisée pour de simples agencements comme deux contrôles ou un lignes de contrôles. Par exemple quand vous avez besoin de quelques contrôles librement redimensionnables tels un mémo et un ListBox.

L'exemple suivant vous montre comment.

En conception

  1. Créez une nouvelle fiche.
  2. Placez un TMemo sur la fiche (clic gauche sur l'icône du TMemo dans la palette de composant pour le sélectionner, puis clic gauche sur la fiche).
  3. Dans l'inspecteur d'objet définissez la propriété Align du Memo1 à alLeft.
  4. Placez un TSplitter sur la fiche.
  5. L'alignement par défaut est déjà alLeft.
  6. Placez un autre TMemo sur la fiche.
  7. Dans l'inspecteur d'objet définissez la propriété Align du Memo2 à alClient.

A l'exécution

Vous pouvez aussi réaliser cela par code au lieu de le faire en conception :

pascal
procedure TMainForm.FormCreate(Sender: TObject);
var
  Memo1: TMemo;
  Splitter1: TSplitter;
  Memo2: TMemo;
begin
  Memo1:=TMemo.Create(Self);
  with Memo1 do begin
    Name:='Memo1';
    Parent:=Self;
    Align:=alLeft;
  end;
  Splitter1:=TSplitter.Create(Self);
  with Splitter1 do begin
    Name:='Splitter1';
    Parent:=Self;
    Left:=1; // position it right of Memo1
    Align:=alLeft;
  end;
  Memo2:=TMemo.Create(Self);
  with Memo2 do begin
    Name:='Memo2';
    Parent:=Self;
    Align:=alClient;
  end;
end;

Splitter avec AnchorSides

L'ancrage des côtés permet des agencements plus précis. Alors que la propriété Align remplit tout l'espace, AnchorSides permet d'ancrer des contrôles à un autre contrôle partageant le même parent.

En conception

  1. Créez une nouvelle fiche.
  2. Placez un TMemo sur la fiche (clic gauche sur l'icône du TMemo dans la palette de composant pour le sélectionner, puis clic gauche sur la fiche).
  3. Dans l'inspecteur d'objet définissez la propriété Align du Memo1 à alLeft.
  4. Placez un TSplitter sur la fiche.
  5. Définissez son alignement (propriété Align) à alNone.
  6. Sélectionnez le Memo1.
  7. Voir -> Editeur d'ancre.
  8. Ancrer le côté gauche du Memo1 au Splitter1.
  9. Placez un autre TMemo sur la fiche.
  10. Dans l'inspecteur d'objet définissez la propriété Align du Memo2 à alRight.
  11. Ancrez le côté gauche de Memo2 à Splitter1. Assurez-vous d'ancrer au côté droit du Splitter1 (le bouton de l'éditeur d'ancre en dessous du Combobox)/

A l'exécution

Vous pouvez aussi réaliser les mêmes actions comne ci-dessus par le code au lieu de le faire avec l'inspecteur d'objet en conception :

pascal
procedure TMainForm.FormCreate(Sender: TObject);
var
  Memo1: TMemo;
  Splitter1: TSplitter;
  Memo2: TMemo;
begin
  Memo1:=TMemo.Create(Self);
  with Memo1 do begin
    Name:='Memo1';
    Parent:=Self;
    Align:=alLeft;
  end;
  Splitter1:=TSplitter.Create(Self);
  with Splitter1 do begin
    Name:='Splitter1';
    Parent:=Self;
    Align:=alNone;
    Left:=100; // some value
    AnchorParallel(akBottom,0,Parent);
  end;
  Memo1.AnchorToNeighbour(akRight,0,Splitter1);
  Memo2:=TMemo.Create(Self);
  with Memo2 do begin
    Name:='Memo2';
    Parent:=Self;
    Align:=alRight;
    AnchorToNeighbour(akLeft,0,Splitter1);
  end;
end;

Voir aussi


From the Free Pascal wiki, page "TSplitter/fr", as it stood on 2021-03-07 after a change by Roland57, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Version 1, dernière modification par WikiArchive .