Voilà!
Je suis passé par un chemin détourné pour y arriver!
voici donc le code du bouton6 (effacer l'historique)
----------------------------------
procedure TForm1.Button6Click(Sender: TObject);
var
i:string;
begin
entre2.Enabled:=true;
ping.Visible:=true;
pingencours.Caption:='';
lstreplies.Clear;
i:=IBOQuery2.fieldbyname('cle_t_ping').AsString;
cledeping.Caption:=dbgrid2.Fields[0].AsString;
cledeping.Visible:=true;
IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text:= 'delete from T_PING where cle_t_ping='''+i+'''';
IBOQuery2.ExecSQL;
IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text := 'select * from T_PING order by PING_DATE';
IBOQuery2.Open;
while dbgrid2.Fields[0].Value = 0 do
begin
entre2.Enabled:=false;
exit;
end;
----------------------------------
Sur l'événement OnEnter du bouton6 , j'ai mis Entre2timer , qui est le timer permettant d'espacer les suppressions.Le timer est pour l'instant règlé sur 500ms.
Voici le code du timer:
-----------------------------------
procedure TForm1.entre2Timer(Sender: TObject);
var
i:string;
begin
i:=IBOQuery2.fieldbyname('cle_t_ping').AsString;
IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text:= 'delete from T_PING where cle_t_ping='''+i+'''';
IBOQuery2.ExecSQL;
IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text := 'select * from T_PING order by PING_DATE';
IBOQuery2.Open;
while dbgrid2.Fields[0].Value = 0 do
begin
entre2.Enabled:=false;
exit;
end;
end;
-----------------------------------
Problème résolu !!!
Merci de l'aide mais Truncate ça marchait pas ;-)