안녕하십니까.다시 질문드립니다.
다름이 아니고 사소한 질문 하나 하려고 합니다.
다음의 소스에서 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;
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;