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 20: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 22: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 09: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 14: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 03:37 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-2025 by Thomas Breitkreuz