TSplitter/fr: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: TSplitter/fr
| Old | New | Line | |
|---|---|---|---|
| 1 | + | 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. | |
| 2 | + | ||
| 3 | + | 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. .. | |
| 4 | + | ||
| 5 | + | TSplitter peut fonctionner basiquement dans deux modes différents : via [[Autosize / Layout/fr|Align]] (manière Delphi) ou via [[Autosize / Layout/fr|AnchorSides]] (manière différente). | |
| 6 | + | ||
| 7 | + | # Splitter et Align | |
| 8 | + | ||
| 9 | + | 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. | |
| 10 | + | ||
| 11 | + | L'exemple suivant vous montre comment. | |
| 12 | + | ||
| 13 | + | ## En conception | |
| 14 | + | ||
| 15 | + | 1. Créez une nouvelle [[TForm/fr|fiche]]. | |
| 16 | + | 2. Placez un [[TMemo/fr|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). | |
| 17 | + | 3. Dans l'inspecteur d'objet définissez la propriété Align du Memo1 à alLeft. | |
| 18 | + | 4. Placez un TSplitter sur la fiche. | |
| 19 | + | 5. L'alignement par défaut est déjà alLeft. | |
| 20 | + | 6. Placez un autre TMemo sur la fiche. | |
| 21 | + | 7. Dans l'inspecteur d'objet définissez la propriété Align du Memo2 à alClient. | |
| 22 | + | ||
| 23 | + | ## A l'exécution | |
| 24 | + | ||
| 25 | + | Vous pouvez aussi réaliser cela par code au lieu de le faire en conception : | |
| 26 | + | ||
| 27 | + | ``` pascal | |
| 28 | + | procedure TMainForm.FormCreate(Sender: TObject); | |
| 29 | + | var | |
| 30 | + | Memo1: TMemo; | |
| 31 | + | Splitter1: TSplitter; | |
| 32 | + | Memo2: TMemo; | |
| 33 | + | begin | |
| 34 | + | Memo1:=TMemo.Create(Self); | |
| 35 | + | with Memo1 do begin | |
| 36 | + | Name:='Memo1'; | |
| 37 | + | Parent:=Self; | |
| 38 | + | Align:=alLeft; | |
| 39 | + | end; | |
| 40 | + | Splitter1:=TSplitter.Create(Self); | |
| 41 | + | with Splitter1 do begin | |
| 42 | + | Name:='Splitter1'; | |
| 43 | + | Parent:=Self; | |
| 44 | + | Left:=1; // position it right of Memo1 | |
| 45 | + | Align:=alLeft; | |
| 46 | + | end; | |
| 47 | + | Memo2:=TMemo.Create(Self); | |
| 48 | + | with Memo2 do begin | |
| 49 | + | Name:='Memo2'; | |
| 50 | + | Parent:=Self; | |
| 51 | + | Align:=alClient; | |
| 52 | + | end; | |
| 53 | + | end; | |
| 54 | + | ``` | |
| 55 | + | ||
| 56 | + | # Splitter avec AnchorSides | |
| 57 | + | ||
| 58 | + | 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. | |
| 59 | + | ||
| 60 | + | ## En conception | |
| 61 | + | ||
| 62 | + | 1. Créez une nouvelle [[TForm/fr|fiche]]. | |
| 63 | + | 2. Placez un [[TMemo/fr|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). | |
| 64 | + | 3. Dans l'inspecteur d'objet définissez la propriété Align du Memo1 à alLeft. | |
| 65 | + | 4. Placez un TSplitter sur la fiche. | |
| 66 | + | 5. Définissez son alignement (propriété *Align*) à alNone. | |
| 67 | + | 6. Sélectionnez le Memo1. | |
| 68 | + | 7. Voir -\> Editeur d'ancre. | |
| 69 | + | 8. Ancrer le côté gauche du Memo1 au Splitter1. | |
| 70 | + | 9. Placez un autre TMemo sur la fiche. | |
| 71 | + | 10. Dans l'inspecteur d'objet définissez la propriété *Align* du Memo2 à alRight. | |
| 72 | + | 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)/ | |
| 73 | + | ||
| 74 | + | ## A l'exécution | |
| 75 | + | ||
| 76 | + | 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 : | |
| 77 | + | ||
| 78 | + | ``` pascal | |
| 79 | + | procedure TMainForm.FormCreate(Sender: TObject); | |
| 80 | + | var | |
| 81 | + | Memo1: TMemo; | |
| 82 | + | Splitter1: TSplitter; | |
| 83 | + | Memo2: TMemo; | |
| 84 | + | begin | |
| 85 | + | Memo1:=TMemo.Create(Self); | |
| 86 | + | with Memo1 do begin | |
| 87 | + | Name:='Memo1'; | |
| 88 | + | Parent:=Self; | |
| 89 | + | Align:=alLeft; | |
| 90 | + | end; | |
| 91 | + | Splitter1:=TSplitter.Create(Self); | |
| 92 | + | with Splitter1 do begin | |
| 93 | + | Name:='Splitter1'; | |
| 94 | + | Parent:=Self; | |
| 95 | + | Align:=alNone; | |
| 96 | + | Left:=100; // some value | |
| 97 | + | AnchorParallel(akBottom,0,Parent); | |
| 98 | + | end; | |
| 99 | + | Memo1.AnchorToNeighbour(akRight,0,Splitter1); | |
| 100 | + | Memo2:=TMemo.Create(Self); | |
| 101 | + | with Memo2 do begin | |
| 102 | + | Name:='Memo2'; | |
| 103 | + | Parent:=Self; | |
| 104 | + | Align:=alRight; | |
| 105 | + | AnchorToNeighbour(akLeft,0,Splitter1); | |
| 106 | + | end; | |
| 107 | + | end; | |
| 108 | + | ``` | |
| 109 | + | ||
| 110 | + | # Voir aussi | |
| 111 | + | ||
| 112 | + | - [[doc:lcl/extctrls/tsplitter.html|Doc. TSplitter]] | |
| 113 | + | - [[TPairSplitter/fr|TPairSplitter]] | |
| 114 | + | ||
| 115 | + | --- | |
| 116 | + | *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](/wiki-contact).* |
