bonjour a tous,
je voudrais adapter une procédure que j'ai récupérer sur le net qui détecte le clique sur le haut d'une colonne d'un stringgrid en l'apellant losque je fait un clique gauche et que je choisi de faire cette procédure.
voici la procédure de tri que j'ai récuperer sur le net qui tri lorsqu'on clique sur une colonne fixe
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 { L'événement OnMouseUp de la grille nous permet de détecter un clic dans un entête de colonne. } procedure Ttableur.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); function InvertSort(ASortOrder: TSortOrder): TSortOrder; begin case ASortOrder of soUp: result:= soDown; soDown: result:= soUp; else result:= soUp; end; end; Var gridCoord: TGridCoord; PosSouris: TPoint; GRect: TGridRect; Begin isMouseDown:=False; with Sender as TStringGrid do begin // On récupère la cellule dans laquelle le click a eu lieu gridCoord:= MouseCoord(X, Y); // On teste si c'est bien un entête de colonne éditable if (gridCoord.Y < StringGrid1.FixedCols) and (gridCoord.X >= StringGrid1.FixedRows) then begin // Si on a cliqué sur une colonne déja triée on inverse le type de tri if gridCoord.X = FSortedCol then FSortOrder:= InvertSort(FSortOrder) else // Sinon, on tri par ordre ascendant begin FSortedCol:= gridCoord.X; FSortOrder:= soUp; end; Sort; // L'appel à la méthode de tri end; end; end;
et voici mon popup menu d'ou je voudrais apeller la procédure de tri au lieu qu'elle se fasse sur le clique d'une colonne fixe.
j'ai une erreur de transtypage lorsque je copie toute la fonction dans mon "trier1click"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TTableur.Trier1Click(Sender: TObject); begin end;
je pense qu'il faut faire passer une variable par ma procédure "trier1click" mais je ne sais pas trop comment m'y prendre !
merci pour vos réponses
© Seb ®
Partager