![]() |
[Delphi] MatchesMask für EditMask
Hallo,
ich habe folgendes Problem. Ich setzte bei ein paar Feldern manchmal EditMask (im Feld des TTable). Es können aber schon Werte in dem Feld stehen die der Maske nicht entsprechen. Jetzt möchte ich den alten Wert wenn er der Maske nicht entspricht löschen. MatchesMask funktioniert wohl leider nur für Dateinamen. Hier ein kleines aus dem Code der leider nicht funktioniert wie gewollt:
Code:
data.TAukopfAUKVERSNR.EditMask:='000/00/000000000;1;_';
data.TAukopfAUKABSCHADENNR.EditMask:='000-00-00000000-0;1;_'; data.TAukopfAukABSZEIT.EditMask:='00.00.0000'; if data.TAukopf.State in [dsedit,dsinsert] then begin if not MatchesMask(data.TAukopfAUKVERSNR.AsString,'000/00/000000000;1;_') then data.TAukopfAUKVERSNR.Value:=''; if not MatchesMask(data.TAukopfAUKABSCHADENNR.AsString,'000-00-00000000-0;1;_') then data.TAukopfAUKABSCHADENNR.Value:=''; if not MatchesMask(data.TAukopfAukABSZEIT.AsString,'00.00.0000') then data.TAukopfAukABSZEIT.Value:=''; end; |
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Programmieren allgemein" nach "Datenbanken" verschoben.
|
Re: [Delphi] MatchesMask für EditMask
Würde sows ausreichen?
Delphi-Quellcode:
s := data.TAukopfAUKVERSNR.Value;
data.TAukopfAUKVERSNR.Value := ''; data.TAukopfAUKVERSNR.EditMask := '000/00/000000000;1;_'; data.TAukopfAUKVERSNR.Value := s; |
Re: [Delphi] MatchesMask für EditMask
Habe es gerade ausprobiert, in der hoffung das es eine Exception schmeißt. Aber leider schmeißt der Wert wird einfach abgeschnitten.
Code:
s := data.TAukopfAUKVERSNR.Value; //s='1111111111'
data.TAukopfAUKVERSNR.Value := ''; data.TAukopfAUKVERSNR.EditMask := '000/00/000000000;1;_'; data.TAukopfAUKVERSNR.Value := s; //Danach wir im Feld angezeigt: 111. |
Re: [Delphi] MatchesMask für EditMask
OK, man könnte noch diese Zeile anhängen
Delphi-Quellcode:
if data.TAukopfAUKVERSNR.Value <> s then data.TAukopfAUKVERSNR.Value := '';
Delphi-Quellcode:
procedure SetNewMask(Feld: KeineAhnungWas; Mask: String);
var s: String; begin s := Feld.Value; Feld.Value := ''; Feld.EditMask := '000/00/000000000;1;_'; Feld.Value := s; if Feld.Value <> s then Feld.Value := ''; end; SetNewMask(data.TAukopfAUKVERSNR, '000/00/000000000;1;_'); Ansonsten müßte man "nur" erstmal rausfinden, über welche Funktion wirklich verglichen wird. |
Re: [Delphi] MatchesMask für EditMask
Code:
Fast perfekt, aber in der Datenbank bleibt leider der alte Sring erhalten. Die vorerst endgültige Lösung:
if data.TAukopfAUKVERSNR.Value <> s then data.TAukopfAUKVERSNR.Value := ''
Code:
Ist zwar nicht schön, aber es funktioniert :)
if versnrDBEdit.text <> s then data.TAukopfAUKVERSNR.Value := ''
BIG THX Zitat:
|
Re: [Delphi] MatchesMask für EditMask
Geht noch besser:
Code:
So spare ich mir die Variablen :)
if versnrDBEdit.text <> data.TAukopfAUKVERSNR.Value then data.TAukopfAUKVERSNR.Value := ''
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 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