Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Delete-Aktion abbrechen (https://www.delphipraxis.net/1125-delete-aktion-abbrechen.html)

FBrust 21. Okt 2002 21:59


Delete-Aktion abbrechen
 
Hallo,

in einem meiner Programme habe ich die Abfrage "Datensatz löschen" durch einen eigenen Dialog ersetzt. Erst wenn der Anwender auf "OK" klickt soll der Datensatz gelöscht werden. Aber bisher ist es so, dass, sobald ich auf den "-"-Button klicke, der Datensatz trotzdem gelöscht wird.

Der Code für den DB-Navigator sieht so aus:



Code:
  if Button = nbDelete then begin
    strMsgText := 'Soll der Kunde "';
    strMsgText := strMsgText +
                      dmGeneral.tblSD_Cust.FieldByName('strShortName').AsString;
    strMsgText := strMsgText + '" mit allen untergeordneten Daten ';
    strMsgText := strMsgText + ' wirklich gelöscht werden?';
    if Application.MessageBox(PChar(strMsgText),'Sicherheitsabfrage',
        MB_OKCANCEL + MB_ICONEXCLAMATION) = IDOK then begin
      Showmessage('Hier soll mal delete stehen und ein paar andere Dinge');
    end else
      dmGeneral.tblSD_Cust.Cancel;
  end;
Beim Klick auf "Abbrechen" passiert dann nix mehr, nur die Dialogbox verschwindet halt :?: :?:

Hat vielleicht jemand einen Tip?

Danke

Frank

Hansa 21. Okt 2002 23:22

Hi,

Code:
Beim Klick auf "Abbrechen" passiert dann nix mehr, nur die Dialogbox verschwindet halt
Was soll denn da passieren ?? Das da liegt an der Logik Deines Programmes. In Deinem Programm steht nichts anderes drin.

Gruß
Hansa

LCS 22. Okt 2002 10:49

Hi
an deiner Stelle würde ich den Code direkt im BeforeDelete-Ereignis plazieren:
Code:
procedure ...BeforeDelete(DataSet: TDataSet)
begin
  ...
  strMsgText := 'Soll der Kunde "';
    strMsgText := strMsgText + 
                      dmGeneral.tblSD_Cust.FieldByName('strShortName').AsString;
    strMsgText := strMsgText + '" mit allen untergeordneten Daten ';
    strMsgText := strMsgText + ' wirklich gelöscht werden?';
    if Application.MessageBox(PChar(strMsgText),'Sicherheitsabfrage',
        MB_YESNO + MB_ICONEXCLAMATION) = IDNO then
          Abort;
Wenn du den Dialog mit JA/NEIN Schaltflächen machst, ist die ganze Geschichte auch eindeutiger. Bei OK/Abbrechen gibts immer Leute, die damit nicht klarkommen.

Gruss Lothar

FBrust 22. Okt 2002 15:46

Hallo Lothar,

das sind zwei sehr gute Vorschläge. Vielen Dank dafür.


Grüsse

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz