Salut à tous, je voudrais partager avec vous mon souci, voilà un petit programme qui se compose d'un DBGrid avec un speedbutton dans la dernière colonne. J'ai pris cette (exemple) sur le net :

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
procedure TForm1.sDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  MRect: TRect;
Begin
  IF (Column.Index = 11) Then
  Begin
    MRect := THackDBGrid(sDBGrid1).CellRect(Column.Index + 1,
      THackDBGrid(sDBGrid1).Row);
    if gdSelected in State then
    SuppAvis.Left := MRect.Left + 2;
    SuppAvis.Width := (MRect.Right - MRect.Left) - 4;
    SuppAvis.Top := MRect.Top + 2;
    SuppAvis.Height := MRect.Height - 4;
    SuppAvis.Parent := sDBGrid1;
    SuppAvis.Visible := True;
  End;
end;
Le code de l'événement OnClick du speedbutton :

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
procedure TForm1.sBitBtn1Click(Sender: TObject);
begin
  IF MessageDlg('Confirmez la Suppression', mtWarning,
    [mbYes, mbNo], 0) = mrYes Then
  Begin
    Try
      Table.Delete;
    Except
      On E: EFDDBEngineException Do
      Begin
        ShowMessage('Erreur !' + E.Message);
        Raise;
      End;
    End;
  End;
end;
Tout marchait très bien. À chaque fois que je sélectionnais une ligne du DBGrid le speedbutton apparaissait et quand j'appuyai sur ce dernier il exécutait la procédure sBitBtn1Click.
À un moment donné je ne sais quelle bêtise j'ai commis.
Maintenant le button apparait toujours mais quand je clique sur le bouton il ne lance plus la procedure sBitBtn1Click.
J'ai refait complètement le programme, mais le problème du click et toujours là, je suis sans solutions depuis deux jours. Merci pour votre aide

Delphi 10.3