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.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
procedure TTableur.Trier1Click(Sender: TObject);
begin
 
end;
j'ai une erreur de transtypage lorsque je copie toute la fonction dans mon "trier1click"

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 ®