J'utilise un TStringGrid dans laquelle l'utilisateur saisit via une combobox ou un TEdit.
J'ai utilisé l'évènement OnDraxCell.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
   If (ARow = Grille.Row) And
      (ACol = Grille.Col) Then Begin
         ed_Saisie.Visible   := True;
         ed_Saisie.Top       := Grille.Top  + Rect.Top;
         ed_Saisie.Left      := Grille.Left + Rect.Left + 2;
         ed_Saisie.Width     := Rect.Right  - Rect.Left;
         ed_Saisie.Text      := Trim(GrilleCadreCellule(ACol, Grille.Cells[ACol, ARow]));
         ed_Saisie.SetFocus;
      End;
Cela fonctionne. Par contre si la cellule dans laquelle je veux saisir se situe sur la dernère ligne visible à l'écran elle ne récupère pas la bonne valeur dans le TEdit.
Soit il y a un moyen d'empècher cela soit je simule un scroll pour faire avancer ma grille d'une ligne.
Je sais le faire en VB avec une Flexgrid mais pas sous Delphi.