AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Sekunden im Text von TDBEdit (Uhrzeit) werden bei Fokus auf 00 gesetzt
Thema durchsuchen
Ansicht
Themen-Optionen

Sekunden im Text von TDBEdit (Uhrzeit) werden bei Fokus auf 00 gesetzt

Ein Thema von Getox · begonnen am 20. Aug 2019 · letzter Beitrag vom 20. Aug 2019
 
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Sekunden im Text von TDBEdit (Uhrzeit) werden bei Fokus auf 00 gesetzt

  Alt 20. Aug 2019, 15:20
Meine Lösung:
Bevor ich den Thread eröffnet habe, habe ich bereits vom TField onSetText implementiert um den Wert auf den Ursprungswert zurückzusetzen, wenn die Eingabe ungültig ist und man das Edit verlässt. Andernfalls kam es zu Fehlern, wenn man zum Beispiel direkt nach der Eingabe eines ungültigen Wertes den Tab gewechselt hat. Dann hat das Edit intern versucht sich selbst zu fokussieren, was aber nicht ging, weil der Tab nicht mehr aktiv war, wo sich das Edit drauf befindet. Also Fokusfehler. Weil ich aus diesem Grund das OnSetText Event bereits gesetzt habe, klappte das Speichern der eingegebenen Minuten zufällig.

Code:
procedure TFormSetDateTimeEdit.FieldZeitSetText(Sender: TField; const Text: string);
var
  sText: string;
begin
  sText := Text;
  if sText[1] = ' ' then
    sText[1] := '0';
  if sText[5] = ' ' then
    sText[5] := '0';
  if (sText[2] = ' ') or (sText[4] = ' ') or not IsTime(sText) then
    Sender.AsVariant := Sender.oldValue
  else
    Sender.AsDateTime := StrToDateTime('30.12.1899 ' + sText + ':00');
end;
Nun habe ich auch noch das OnGetText Event gesetzt:
Code:
procedure TFormSetDateTimeEdit.FieldZeitGetText(Sender: TField; var Text: string; DisplayText: Boolean);
begin
  Text := FormatDateTime('hh:nn', sender.AsDateTime);
end;
Das DisplayFormat und die EditMask habe ich wie eim Eingangspost beschrieben belassen. Nun klappt alles wie es soll
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 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