Canclose

Résolu
pierrotk10d Messages postés 110 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 2 février 2024 - 30 janv. 2019 à 16:35
pierrotk10d Messages postés 110 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 2 février 2024 - 31 janv. 2019 à 10:08
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

1 réponse

pierrotk10d Messages postés 110 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 2 février 2024 3
31 janv. 2019 à 10:08
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;

0
Rejoignez-nous