Canclose [Résolu]

Signaler
Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
-
Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
-
Bonjour,
Comment faire pour s'assurer que toutes les tables d'une fiche ne sont pas mode dsEdit ou dsInsert avant de fermer la fiche. J'aimerais utiliser Canclose. Comment passer la liste des tables à la fonction IsTableEnEdition? j'ai un peu de difficulté à me remettre dedans. C'est l'age!
procedure TfEdition.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
// peut on faire: for i := 0 to le nombre de tables ?
CanClose := IsTableEnEdition(DM. Table[i]);
end;

function TfEdition.IsTableEnEdition(DataSet: TDataSet): Boolean;
begin
Result := True;
With TDBDataset(Dataset) do begin
if (State in dsEditModes) then begin
if MessageDlg('Appliquer les modifications avant de fermer ?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Cancel
else
Result := False;
end;
end;
end;

Cordiales salutations
A voir également:

1 réponse

Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
3
Bonjour,
J'ai trouvé.

procedure TfEdition.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var i: Integer;
begin
For i := 0 To DM.ComponentCount -1 do
If (DM.Components[i] is TTable) then
CanClose := IsTableEnEdition(Components[i] as TTable);
end;

function TfEdition.IsTableEnEdition(DataSet: TDataSet): Boolean;
begin
Result := True;
With TDBDataset(Dataset) do begin
if (State in dsEditModes) then begin
if MessageDlg('Appliquer les modifications avant de fermer ?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Cancel
else
Result := False;
end;
end;
end;