Jeg skal love for du kager noget rundt i det her. En god hjælp til os er at stille præcise spørgsmål. Du kunne f.eks. have læst korrektur på dit spørgsmål og måske endda kopieret lidt kode med. Så kunne mbsnet, michael og jeg sandsynligvis have sparet nogle kommentarer.
Endelig - og det er fordi klokken er mange, så kunne du læse en bog om programmering først. Dine spørgsmål er billige points for os for det er helt basale ting der spørges om.
Hvad spørgsmålet angår:
Hvis du bruger den globale variabel DecimalSeparator kan du se hvilket tegn den pågældende maskine har som decimalseparator. Skal det være fint så har Delphi en struktur der hedder TFormatSettings. Bruger du den (og GetFormatSettings), kan du styre hvad der skal adskille heltal fra decimaldelen (også i tråde).
Endelig, og det har jeg vist nævnt før, brug KeyPressed eventet:
procedure TForm1.Edit1OnKeyPressed(Sender: TObject; var Key: char); begin if Key >= #32 then if not (Key in ['0'..'9',DecimalSeparator,'-']) then Key := #0; end;
På den måde forhindrer du en stor del af fejlindtastningerne. Der skal mere kode til at bremse at brugeren trykker på decimalseparatortegnet flere gange. Den komplette kode kan jeg eventuelt klistre ind.
procedure TForm1.Edit1OnKeyPressed(Sender: TObject; var Key: char); begin if Key >= #32 then if not (Key in ['0'..'9',DecimalSeparator,'-']) then Key := #0;
if Key = DecimalSeperator then if Pos(DecimalSeperator, (Sender as TEdit).Text9 > 0 then Key := #0; end;
Hvis minus kun må optræde engang så prøv det her : procedure TForm1.Edit1OnKeyPressed(Sender: TObject; var Key: char); begin if Key >= #32 then if not (Key in ['0'..'9',DecimalSeparator,'-']) then Key := #0;
if Key = DecimalSeperator then if Pos(DecimalSeperator, (Sender as TEdit).Text) > 0 then Key := #0;
if Key = '-' then if Pos('-', (Sender as TEdit).Text) > 0 then Key := #0; end;
Der efter ved du faktisk det er et gyldigt kommatal som står i dit edit felt... Med ovennævnte løsning kan du endda få flere editfelter til at bruge den samme onchange event.
Jens BOrrisholt
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.