Q&A

  • 다시 길이제한에 대한 답변 부탁드립니다...


안녕하십니까.다시 질문드립니다.

다름이 아니고 사소한 질문 하나 하려고 합니다.

다음의 소스에서 dgdit1이라는 에디트 박스에 글자 길이를 제한하고 싶습니다.

일단 오브젝트 인스펙터에서 글자의 maxlength를 4로 제한하였습니다.

그리고 4글자 이하일때도 추가를 하지 못하게만들고 싶습니다.

if문을 사용하여 하고 싶은데 꼭 말씀 부탁드립니다.

저는 인단 length를 정수로 지정한 다음

if length(dgdit1.text)<>4 then

이라는 문장을 사용하여 작성하였는데 n1인식하지 못하는것 같습니다.

문법사용에서 무엇이 잘못되었는지 답변 부탁드립니다.



procedure TForm2.Button1Click(Sender: TObject);

var

length:integer;

begin

with form1 do

if (dgdit1.Text <> '') and (dgdit2.text <> '') and

(ddit1.text <> '') and (dgdit3.text <> '') then



begin

query1.Close ;

query1.SQL.clear ;

query1.SQL.Add('insert into test ');

query1.SQL.Add(' (DATE1, NAME, IDEN_NO, BASIC_P,');

query1.SQL.Add(' DUTY_P, FAM_P, CERT_P, TECH_P,');

query1.SQL.Add(' ATTEN_P, SALE_P, BONUS, ETC, FOOD,');

query1.SQL.Add(' TRANS, MED_P, NAT_P, DISS_P,');

query1.SQL.Add(' EMP_P, FIRST, RESI_P )');

query1.SQL.Add(' values ');

query1.SQL.Add('(:n1, :n2, :n3, :n4,');

query1.SQL.Add(' :n5, :n6, :n7, :n8,');

query1.SQL.Add(' :n9, :n10, :n11, :n12, :n13,');

query1.SQL.Add(' :n14, :n15, :n16, :n17,');

query1.SQL.Add(' :n18, :n19, :n20 )');

if length(dgdit1.text)<>4 then

showmessage('dgdit1에4글자를 입력해야 합니다')

else

query1.parambyname('n1').asstring :=dgdit1.Text+'년'+dgdit2.Text+'월'+ddit1.text+'일';

query1.parambyname('n2').Asstring := dgdit3.Text;

query1.parambyname('n3').Asstring := dgdit4.Text+'-'+juedit1.Text;

2  COMMENTS
  • Profile
    loke 2001.06.01 04:58
    답변이 될지 모르겠지만...

    if length(trim(dgdit1.text))<>4 then //여기에다 trim 함수를 한번 써보시고





    procedure TForm2.Button1Click(Sender: TObject);

    var

    length:integer;

    begin

    with form1 do

    if length(trim(dgdit1.text))<>4 then begin

    showmessage('dgdit1에4글자를 입력해야 합니다');

    exit;

    end;

    if (dgdit1.Text <> '') and (dgdit2.text <> '') and

    (ddit1.text <> '') and (dgdit3.text <> '') then



    이렇게 해 주시면 될것 같은데요^^







    그리고 이 조건이 맞으면 아래의 것을 처리 하지 않으실려면...

    위치를 윗쪽으로 옮기시고



    초보 wrote:

    >

    > 안녕하십니까.다시 질문드립니다.

    > 다름이 아니고 사소한 질문 하나 하려고 합니다.

    > 다음의 소스에서 dgdit1이라는 에디트 박스에 글자 길이를 제한하고 싶습니다.

    > 일단 오브젝트 인스펙터에서 글자의 maxlength를 4로 제한하였습니다.

    > 그리고 4글자 이하일때도 추가를 하지 못하게만들고 싶습니다.

    > if문을 사용하여 하고 싶은데 꼭 말씀 부탁드립니다.

    > 저는 인단 length를 정수로 지정한 다음

    > if length(dgdit1.text)<>4 then

    > 이라는 문장을 사용하여 작성하였는데 n1인식하지 못하는것 같습니다.

    > 문법사용에서 무엇이 잘못되었는지 답변 부탁드립니다.

    >

    > procedure TForm2.Button1Click(Sender: TObject);

    > var

    > length:integer;

    > begin

    > with form1 do

    > if (dgdit1.Text <> '') and (dgdit2.text <> '') and

    > (ddit1.text <> '') and (dgdit3.text <> '') then

    >

    > begin

    > query1.Close ;

    > query1.SQL.clear ;

    > query1.SQL.Add('insert into test ');

    > query1.SQL.Add(' (DATE1, NAME, IDEN_NO, BASIC_P,');

    > query1.SQL.Add(' DUTY_P, FAM_P, CERT_P, TECH_P,');

    > query1.SQL.Add(' ATTEN_P, SALE_P, BONUS, ETC, FOOD,');

    > query1.SQL.Add(' TRANS, MED_P, NAT_P, DISS_P,');

    > query1.SQL.Add(' EMP_P, FIRST, RESI_P )');

    > query1.SQL.Add(' values ');

    > query1.SQL.Add('(:n1, :n2, :n3, :n4,');

    > query1.SQL.Add(' :n5, :n6, :n7, :n8,');

    > query1.SQL.Add(' :n9, :n10, :n11, :n12, :n13,');

    > query1.SQL.Add(' :n14, :n15, :n16, :n17,');

    > query1.SQL.Add(' :n18, :n19, :n20 )');

    > if length(dgdit1.text)<>4 then

    > showmessage('dgdit1에4글자를 입력해야 합니다')

    > else

    > query1.parambyname('n1').asstring :=dgdit1.Text+'년'+dgdit2.Text+'월'+ddit1.text+'일';

    > query1.parambyname('n2').Asstring := dgdit3.Text;

    > query1.parambyname('n3').Asstring := dgdit4.Text+'-'+juedit1.Text;

  • Profile
    초보 2001.06.01 22:50
    그런데 missing operator or semicolon이라는 메시지가 계속 뜨는데 어떻게 하죠....

    우악 이것 하나만 처리하면 되는데...

    제발 부탁 또 부탁합니다..

    가르쳐 주세요..