Avatar billede ncp Nybegynder
28. marts 2002 - 13:25 Der er 7 kommentarer og
1 løsning

Tager kun med nogle tegn...

Hej - så er jeg her igen ;)

Hvordan gør man sådan at en editbox
kun skriver tegne '0','1','2','3','4','5','6','7','8','9' og ',' og ',' må kun skrives een gang ???
Avatar billede morten_s Nybegynder
28. marts 2002 - 14:10 #1
procedure TForm1.Edit1Change(Sender: TObject);
var
  KommaSat : Boolean;
  i : Integer;
  Set1: set of char;
  InPut : char;

begin
Set1 := ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ','];
KommaSat := False;
  for i := 1 to length(Edit1.Text) do
  begin
    InPut := Edit1.Text[i];
  if (InPut = ',') and KommaSat then
      ShowMessage('Nu er der to kommaer');
    if (InPut = ',') and not KommaSat then
      KommaSat := True;
    if not (InPut in set1) then
    ShowMessage('Nu er der ikke tal i feltet');
  end;

end;
Avatar billede ncp Nybegynder
28. marts 2002 - 14:22 #2
synes ikke lige det virker, har jeg gjort noget forkert:

procedure TForm1.Edit7Change(Sender: TObject);
var
  KommaSat : Boolean;
  i : Integer;
  Set1: set of char;
  InPut : char;

begin
Set1 := ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ','];
KommaSat := False;
  for i := 1 to length(Edit1.Text) do
  begin
    InPut := Edit1.Text[i];
  if (InPut = ',') and KommaSat then
      ShowMessage('Nu er der to kommaer');
    if (InPut = ',') and not KommaSat then
      KommaSat := True;
    if not (InPut in set1) then
    ShowMessage('Nu er der ikke tal i feltet');
  end;
end;
Avatar billede morten_s Nybegynder
28. marts 2002 - 14:24 #3
begin
Set1 := ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ','];
KommaSat := False;
  for i := 1 to length(Edit1.Text) do <---HER SKA STÅ EDIT7
  begin
    InPut := Edit1.Text[i];
Avatar billede morten_s Nybegynder
28. marts 2002 - 14:25 #4
for i := 1 to length(Edit1.Text) do
  begin
    InPut := Edit1.Text[i]; <--HER SKAL OGSÅ STÅ EDIT7
  if (InPut = ',') and KommaSat then
      ShowMessage('Nu er der to kommaer'
Avatar billede ncp Nybegynder
28. marts 2002 - 14:29 #5
ok, kan man få den til at fjerne det "forbudte tegn" ?
Avatar billede morten_s Nybegynder
28. marts 2002 - 14:34 #6
Jep, husk at rette til Edit7

procedure TForm1.Edit1Change(Sender: TObject);
var
  KommaSat : Boolean;
  i : Integer;
  Set1: set of char;
  InPut : char;
  OutPut : String;

begin
Set1 := ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ','];
KommaSat := False;
  for i := 1 to length(Edit1.Text) do
  begin
    InPut := Edit1.Text[i];
    if (InPut = ',') and KommaSat then
    begin
      Edit1.Text := OutPut;
      Exit;
    end;
    if (InPut = ',') and not KommaSat then
      KommaSat := True;
    if not (InPut in set1) then
        begin
      Edit1.Text := OutPut;
      Exit;
    end;
    Output := OutPut + Input;
  end;
end;
Avatar billede ncp Nybegynder
28. marts 2002 - 14:48 #7
Jeg satte lige to "Edit7.SelStart := i;" så den ikke gik tilbage når der kom et grimt tegn, så nu er den helt perfekt...

mange tak...
Avatar billede morten_s Nybegynder
28. marts 2002 - 15:07 #8
selv tak, og ja den blev faktisk skide god ;)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester