Q&A

  • text에 대한 문의 입니다.
text가 3개가 있습니다.

a.text

b.text

c.text 있다고 하면

예로 a = b * c

를 계산하여야 하는데..

b와 c는 text로 값을 받아야 합니다.

a,b,c는 모두 real형 입니다.

이때 b의 텍스창이나 또는 c의 텍스트창에 아무값을 안넣거나 텍스트중간에 값을 넣을경우 에러가 발생되는데.. 이런 에러를 발생안나게 할려면 어떻게 하면 좋겠습니까.

아시는 분은 가르켜주시면 고맙겠습니다.

2  COMMENTS
  • Profile
    나두초보 2001.11.07 00:56
    입력되는 값을 체크하면 될것같습니다.

    Keypress 이벤트에서 입력되는 값이 숫자와 점(소숫점)만 입력이

    가능하게 하거나 아니면 계산 전에 입력된 값이 숫자값인지 문자 값인지

    체크하연 될것같은데요.

    그리고 문자 중간에 입력된 값이라면 혹 앞뒤가 blank 라면 TRIM 함수를 사용

    하시면 됩니다.



    참고로 저는 이련 경우 숫자 Edit Box 콤포넌트를 사용하고 있습니다.

    자료실에서 찾아보면 고수님들이 만들어 놓은 콤포넌트가 있을 거예요 ^^

    도움이 되었으면 합니다.

    즐코 하세요



    영프리오 wrote:

    > text가 3개가 있습니다.

    > a.text

    > b.text

    > c.text 있다고 하면

    > 예로 a = b * c

    > 를 계산하여야 하는데..

    > b와 c는 text로 값을 받아야 합니다.

    > a,b,c는 모두 real형 입니다.

    > 이때 b의 텍스창이나 또는 c의 텍스트창에 아무값을 안넣거나 텍스트중간에 값을 넣을경우 에러가 발생되는데.. 이런 에러를 발생안나게 할려면 어떻게 하면 좋겠습니까.

    > 아시는 분은 가르켜주시면 고맙겠습니다.

  • Profile
    영프리오 2001.11.07 02:41
    나두초보 wrote:

    > 입력되는 값을 체크하면 될것같습니다.

    > Keypress 이벤트에서 입력되는 값이 숫자와 점(소숫점)만 입력이

    > 가능하게 하거나 아니면 계산 전에 입력된 값이 숫자값인지 문자 값인지

    > 체크하연 될것같은데요.

    > 그리고 문자 중간에 입력된 값이라면 혹 앞뒤가 blank 라면 TRIM 함수를 사용

    > 하시면 됩니다.

    >

    > 참고로 저는 이련 경우 숫자 Edit Box 콤포넌트를 사용하고 있습니다.

    > 자료실에서 찾아보면 고수님들이 만들어 놓은 콤포넌트가 있을 거예요 ^^

    > 도움이 되었으면 합니다.

    > 즐코 하세요

    >

    귀하의 답변에 감사드립니다.

    제가 어떻게 해서 해결은 했습니다.

    함수를 이용해서 정수만 받아들일수 있도록 했습니다.

    그러니깐.. 앞에 space나 ','또는 문자는 걸러주고 숫자만 받을수 있도록 했습니다.

    코드는 밑에 보시는 바와 같습니다.



    function TForm1.gfDelallstr(s0: string): string;

    var

    i :integer;

    begin

    result:=s0;

    for i:=1 to length(s0) do

    if (strtointdef(s0[i],-1)=-1) then delete(result,pos(s0[i],result),1);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    var e1,e2,e3 : real;

    begin

    edit1.Text := gfDelallstr(edit1.Text);

    edit2.Text := gfDelallstr(edit2.Text);

    if edit1.Text = '' then edit1.text :='0';

    if edit2.Text = '' then edit2.text :='0';

    e1 := strtofloat(edit1.Text);

    e2 := strtofloat(edit2.Text);

    e3 := e1 * e2;

    edit3.Text := floattostr(e3);

    end;