Announcement

Collapse
No announcement yet.

Frage zum Ereignis BeforeAction des DBNavigators

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage zum Ereignis BeforeAction des DBNavigators

    Hallo,<br>
    <br>
    folgendes Problem:<br>
    in einem DBGrid möchte ich einen beliebigen Datensatz über das Delete-Icon des DBNavigators löschen. Bevor der Datensatz jedoch gelöscht werden kann, muss anhand bestimmter Einträge im Datensatz geprüft werden, ob dieser wiklich gelöscht werden darf (das löschen ist z.B. von einem Datumseintrag im Datensatz abhängig). Mit folgendem Ereignis versuche ich nun die Prüfung zu starten:<br>
    <br>
    <b>procedure</b> TForm3.DBNavigator1BeforeAction(Sender: TObject;
    <p>Button: TNavigateBtn);</p><br>
    <b>begin</b>
    <p>If Button = nbDelete then
    PruefeGueltigkeitLoeschen(Button);</p>
    <b>end</b>;
    <br>
    In der Prozedur PruefeGueltigkeitLoeschen(Button) wird festgestellt, ob der Datensatz die Kreterien für das Löschen erfüllt. Es ist jedoch egal ob die Kreterien erfüllt sind oder nicht, der Datensatz wird gelöscht. Wie kann ich nun den Löschvorgang abbrechen, wenn die Kreterien nicht erfüllt sind? Ist das Ereignis BeforeAction die falsche Methode um das Problem zu lösen? Wer kann mir einen Tipp geben?
    <br><br>
    Gruß,<br>
    Marco

  • #2
    hat sich erledigt. Danke für Eure Mühe, fürs reinschaue

    Comment


    • #3
      Hallo Marco,<BR>
      freundlicher wäre es, dann auch die Lösung anzugeben.<BR>
      Pete

      Comment


      • #4
        Hallo Peter,<br>
        <br>
        ist schon richtig und ich würde es ja auch gern, aber ich war zu voreilig. Das Problem ist noch nicht ganz gelöst. Vielleicht hast Du es auch schon mitbekommen. Wenn das Problem gelöst ist, werde ich das Ergebnis posten.<br>
        <br>
        Gruß,<br>
        Marc

        Comment


        • #5
          Hallo, <br><br>
          benutze doch das Ereignis von TTable <br>
          <PRE>
          procedure TDM1.TableBeforeDelete(DataSet: TDataSet);
          begin
          if not(PruefeGueltigkeitLoeschen) then
          raise EAbort.Create('');
          end;
          </PRE>
          <br>
          Ronn

          Comment

          Working...
          X