Du kunne jo lave en event til EditBox'ens OnExit, som så sådan ud:
procedure EditExit(Sender: TObject);
var Legal: Boolean; Temp: Integer;
begin
Legal := Length(Text) = 6;
try
Temp := StrToInt(Text); // Test om det er et gyldigt tal.
except
Legal := False; // Hvis det ikke er.
end;
if not Legal then // Hvis krikerierne ikke blev opfyldt begin MessageBox(Screen.ActiveForm.Handle, 'Ugyldig værdi!', 'Fejl', MB_OK); SetFocus; // Giv Edit'en fokus end;
delphidaner's svar virker bedst synes jeg. DOG er der lige et lille problem: Hvis man skriver både tal og bogstaver (f.eks. 123abc, men ikke abc123!) crasher programmet, og skriver det ikke er en gyldig integer værdi (hvilket jo er logisk nok ;) )!!!
Hvis du lige kan lave det om, så får du dine point !
Function ValiderTekst(Tekst:String): Boolean; Var Code, V : integer; Begin Val(Tekst, V, Code); If (code = 0) and (length(tekst) = 6) then Result := True else Result := false; end;
procedure TForm1.Edit1Exit(Sender: TObject); begin If not validerTekst(edit1.text) then Showmessage('Fejl i indtastningen!!!'); end;
Val er en Delphi funktion, der netop har til formål at validere om en tekst kan oversættes til et heltal...
Returværdien af variablen Code, kan også benyttes til at fortælle på hvilken plads i teksten der opstod et problem. Men når værdien af den er nul, er det fordi det er gået godt.
Sorry delphidaner, men retep kom først med en helt brugbar løsning, så point'ene går til ham !
Snownall
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.