Was verstehst du unter "Sicherung"?
Sicher gehen, dass alle Edit-Felder Zahlen enthalten, oder
dass bei falscher Eingabe der alte Wert zurück gesichert, also wieder in das Feld geschrieben wird.
Also für die Problematik
'' ist kein Integerwert empfiehlt sich evtl.
StrToIntDef
Für das Sichern der korrekten Werte könnte man ein
Array [0..ANZ_EDITFELDER] of string nehmen.
Delphi-Quellcode:
// Alles ungetestet !!
const
ANZ_EDITFELDER := 10; // Weils ja 11 Felder sind und wir bei 0 anfangen zu zählen
var
SaveValues : array [0..ANZ_EDITFELDER] of string;
...
procedure TFRM_Rentenversicherungsnummer.FormCreate (Sender: TObject);
begin
for i:=0 to ANZ_EDITFELDER do
SaveValues[i] := '';
end;
procedure TFRM_Rentenversicherungsnummer.EDT_Z1Exit(Sender: TObject);
var
nTestInt : integer;
begin
nTestInt := StrToIntDef(EDT_Z1.text,-1);
if nTestInt = -1 then
begin
ShowMessage('Bitte Zahl eingeben');
EDT_Z1.text := SaveValues[1];
end elsebegin
SaveValues[1] := EDT_Z1.text; // für EDT_Z0 -> SaveValues[0] ; für EDT_Z8 SaveValues[8]
end;
end;
Wenn man das ganze noch mit Mooshead's und bitsetter's Vorschlägen kombiniert wird da ne ganz runde Sache draus ... denke ich.
Ich frage mich allerdings, wie man verhindern will, dass die TMaskEdit's leer sind, denn Defaultwerte sind in dem Fall bestimmt ungünstig.