Announcement

Collapse
No announcement yet.

Eingabemaske für Datum

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

  • Eingabemaske für Datum

    Hallo,
    ich habe da ein Problem, un zwar, wenn ich Eingabemasken für Datumsfelder hinterlege (DBedit bzw. bei den Field-Eigenschaften der Query), bekomme ich es nicht hin, das einmal eingeben Datum zu löshen ohne das er meckert: Ungültige Typumwandlung. Wer kann mit nun sagen, wie ich das hinbekomme?

    Gruss
    CS

  • #2
    Hallo,

    in diesem Fall muss die Methode <b>Clear</b> der dazugehörenden TField-Instanz aufgerufen werden

    Comment


    • #3
      Hallo,
      das ist schonmal ein anfang. nun weiss ich aber nicht, wo das einbauen muss, damit es auch funktioniert. Wenn Sie mir da vielleicht noch weiterhelfen könnten, wäre ich Ihnen dankbar.

      Gruss
      C

      Comment


      • #4
        Hallo,

        das folgende Beispiel stammt aus meinem Buch <i>Client/Server-Datenbankentwicklung mit Delphi</i>. Ein globaler Exception-Handler leert die Datumseingaben im TDBEdit oder TDBGrid:
        <pre>
        (* Privater Exception-Handler für alle Exception der Anwendung *)

        procedure TFormMain.AppExceptionHandler(Sender: TObject; E: Exception);
        begin
        // Info's über einen BDE-Fehler anzeigen
        if E is EDBEngineError then begin
        if MessageDlg(EDBEngineError(E).Errors[0].Message,
        mtError, [mbOk, mbRetry], 0) = mrRetry
        // Detail-Formular einblenden
        then FormDBError.ShowDBError(E as EDBEngineError);
        end
        else
        // andere Exceptions
        begin
        // Sonderfall : Datum soll komplett im TDBEdit gelöscht werden
        if (Pos('Ungültiger Eingabewert', E.Message) > 0) then begin
        if MessageDlg('Datum wirklich entfernen?', mtInformation,
        [mbYes, mbNo], 0) = mrYes then
        if FormMain.ActiveControl is TDBEdit
        then TDBEdit(FormMain.ActiveControl).Field.Clear;
        Exit;
        end;
        // Sonderfall : Datum soll komplett im DBGrid gelöscht werden
        if (Pos('kein gültiges Datum', E.Message) > 0) then begin
        if MessageDlg('Datum wirklich entfernen?', mtInformation,
        [mbYes, mbNo], 0) = mrYes then
        if FormMain.ActiveControl is TDBGrid
        then TDBGrid(FormMain.ActiveControl).SelectedField.Clea r;
        Exit;
        end;
        // irgend ein anderer Fehler
        Application.ShowException(E);
        end
        end;
        </pre&gt

        Comment

        Working...
        X