Q&A

  • 스트링, 숫자 비교는 어떻게 하는게 좋은가요...?
EDIT 로부터 스트링을 입력 받을때,

특정부분, 예를 들면, 첫 문자라던가, 전체 스트링중에 어느 한 문자라라도

특정 문자, 혹은 숫자가 오면 안되도록 할때, 그 EDIT로부터 입력받은 스트링 하나하나를 다 비교하는게 효율적인가 해서요,..



일일이 다 비교하지 않고 할 수 있는 방법이 있을까요?





4  COMMENTS
  • Profile
    나그네 2001.05.03 02:24
    델 wrote:

    > EDIT 로부터 스트링을 입력 받을때,

    > 특정부분, 예를 들면, 첫 문자라던가, 전체 스트링중에 어느 한 문자라라도

    > 특정 문자, 혹은 숫자가 오면 안되도록 할때, 그 EDIT로부터 입력받은 스트링 하나하나를 다 비교하는게 효율적인가 해서요,..

    >

    > 일일이 다 비교하지 않고 할 수 있는 방법이 있을까요?

    >

    >



    아래와 같은 방법으로 필터해보세요 ^^

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

    begin

    if Key in ['0'..'9', 'a'..'z'] then

    Caption := 'success'

    else begin

    ShowMessage('잘못 입력하셨습니다');

    Key := #0;

    end;

    end;



    즐프하세요^^

  • Profile
    2001.05.03 03:12
    KeyPress를 했더니, 숫자를 지정하면, 숫자는 전체가 다 안되는군요..



    첫번째에만 숫자가 들어올 수 있도록 할수는 없을까요?

  • Profile
    최용일 2001.05.03 04:38
    안녕하세요. 최용일입니다.



    아래와 같이 하세요...



    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

    begin

    if (TEdit(Sender).Text = '') then

    begin

    if not (Key in ['1'..'9']) then

    Key := #0;

    end

    else

    if (TEdit(Sender).SelStart = 0) then

    if not (Key in ['0'..'9']) then

    Key := #0;

    end;

    end;



    ^^ 항상 즐코하세요...



    델 wrote:

    > KeyPress를 했더니, 숫자를 지정하면, 숫자는 전체가 다 안되는군요..

    >

    > 첫번째에만 숫자가 들어올 수 있도록 할수는 없을까요?

  • Profile
    유레카 2001.05.03 02:23
    델 wrote:

    > EDIT 로부터 스트링을 입력 받을때,

    > 특정부분, 예를 들면, 첫 문자라던가, 전체 스트링중에 어느 한 문자라라도

    > 특정 문자, 혹은 숫자가 오면 안되도록 할때, 그 EDIT로부터 입력받은 스트링 하나하나를 다 비교하는게 효율적인가 해서요,..

    >

    > 일일이 다 비교하지 않고 할 수 있는 방법이 있을까요?

    >

    >



    TEdit의 OnKeyPress란 이벤트를 사용하시면 되는데요.



    = 사용 예 =



    procedure TFrom1.Edit1KeyPress(Sender: TObject; var Key: Char);

    begin

    if Key = #13 then

    begin

    SelectNext(ActiveControl, True, True);

    Key := #0;

    end

    // 숫자만 입력받음

    else if not (Key in ['0'..'9']) then

    Key := #0;

    end;



    즐프하시길..