Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   String in DbEdit mit Datafield Float eingeben (https://www.delphipraxis.net/175775-string-dbedit-mit-datafield-float-eingeben.html)

Vis 17. Jul 2013 12:24

Datenbank: MS SQL Server • Version: 2008 • Zugriff über: ADO

String in DbEdit mit Datafield Float eingeben
 
Hallo zusammen,

ich habe eine kleine Schwierigkeit.

Ich habe ein DbEdit das mit einem float-Feld der SQL Tabelle verküpft ist.
Als Wert wird der elektrische Widerstand R gespeichert.

Nun habe ich es mit dem Ereigniss OnGetText schnell geschafft das der float-Widerstandswert als string angezeigt wird (z.B 4R4 für float-Wert 4,4).
Mit OnSetText wollte ich die Eingabe des Benutzer wieder in float umwandeln. Leider kann der Benutzer aber nur Zahlen in das DbEdit eingeben, da es anscheindend über die Verknüpfung mit der SQL Tabelle nur Zahlen zugelassen werden.

Kann mir jemand helfen, wie ich z.B. 4R4 in das DbEdit eingeben kann?

Grüße

Vis 17. Jul 2013 15:05

AW: String in DbEdit mit Datafield Float eingeben
 
Ok, vielleicht ist es gar nicht so sinnvoll den Wert mit Buchstaben einzugeben.

Der Bediener merkt dann schon das keine Buchstaben zulässig sind und wird dann hoffentlich eine normale Zahl eingeben.

Schönen Abend

Jumpy 18. Jul 2013 07:48

AW: String in DbEdit mit Datafield Float eingeben
 
Oder man Benutzt ein normales Edit. Beim öffnen oder wechseln des Datensatzes schreibt man den Übersetzten Wert aus den Daten in das Edit, umgekehrt schreibt man den im Edit geänderten Wert, z.B. nach einem OnChange des Edits in den Datensatz.
Dazu könntest du deine eigene "FloatToStringWithR" und "StringWithRToFloat" Funktionen schreiben.

Ist aber auf jeden Fall ein unschönes gefummel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.

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