procedure Tdata.ok1Click(Sender: TObject);
var i : integer;
begin
for i:=0 to self.ComponentCount-1 do
begin
if (self.Components[i]) is TDBEdit and
((self.Components[i] as TDBEdit).Tag=1) then
begin
if Length((self.Components[i] as TDBEdit).Text)<=0 then
begin
showmessage('입력되지않은곳이 있습니다');
(self.Components[i] as TDBEdit).SetFocus;
Exit;
end
else main.lotno_sh.Text:=lotno.Text+'-'+lotse.Text;
end;
if (self.Components[i]) is TDBCombobox and
((self.Components[i] as TDBCombobox).Tag=1) then
begin
if Length((self.Components[i] as TDBCombobox).Text)<=0 then
begin
showmessage('입력되지않은곳이 있습니다');
(self.Components[i] as TDBCombobox).SetFocus;
Exit;
end
else
begin
main.devicesel_sh.Text:=devicesel.Text;
main.interval_sh.Text:=interval.Text;
main. chips_sh.Text:=chips.Text;
main.machine_sh.Text:=machine.Text;
close;
end;
machinetbl.Append;
machinetbl.FieldByName('Lot_num').asstring:=lotno.Text;
machinetbl.FieldByName('Device').asstring:=devicesel.Text;
machinetbl.FieldByName('Lot_serial').asstring:=lotse.Text;
machinetbl.FieldByName('Chipsize').asstring:=chips.Text;
machinetbl.FieldByName('검사수준').asstring:=interval.Text;
machinetbl.FieldByName('장비번호').asstring:=machine.Text;
machinetbl.Post;
end;
end;
{ with data.FindComponent('check_group') as TDBCheckbox do
for i := 0 to self.ComponentCount-1 do
begin
if self.ComponentCount<1 then begin
showmessage('no input');
(self.Components[i] as TDBCheckbox).SetFocus;
end;
end; }
//위에껀 체크박스가 다섯개가 있는데..이중 한개이상은 꼭 체크해야되여..
//근데 어떻게 해줘야될지 몰라서 그냥 놔둔거구여...
if machine.text='A' then begin
main.ma_abtn.caption:='A On';
end;
end;
실행을 시키면 다 입력해줬는데두 입력되지않은곳이 있다는 메세지가 계속 떠서여..
어디가 잘못된건지..좀봐줘여..
소스에서는 tag가 1인 에디트와 콤보는 다 첵크하게 되어 있는데...
메세지가 보인다음.. 에러난 곳으로 이동 하지 않아요???
그 이동하는걸 보시면 될것 같은데..음.. 잘 모르겠다...
그리고 그룹으로 묶여 있는 첵크박스5개.. 그냥 if문 쓰면 되죠...
첵크박스 이름이 chBox1..5라면
if not (chBox1.Checked and chBox2.Checked and chBox3.Checked ....
chBox5.Checked ) then
begin
showmessage('야 하나 찍어.. ');
chBox1.SetFocus;
Exit;
end;
소스는 괜찮은것 같네요... 아!! 그리고 tag는 안해도 되는데... 보통 검사할 에디트와
하지 말아야할 에디트가 있어서.. 그렇게 한겁니다...
음. 메일은 받았는데.. 제가좀 늦게 봐서.. 답장은 안했어요.. 죄송..
아직 해결 못하셨을줄 알았으면 보낼걸 그랬네요...
그럼.. 즐거운시간 되세요..
- 하얀까마귀 -
heimdal wrote:
> procedure Tdata.ok1Click(Sender: TObject);
> var i : integer;
> begin
> for i:=0 to self.ComponentCount-1 do
> begin
> if (self.Components[i]) is TDBEdit and
> ((self.Components[i] as TDBEdit).Tag=1) then
> begin
> if Length((self.Components[i] as TDBEdit).Text)<=0 then
> begin
> showmessage('입력되지않은곳이 있습니다');
> (self.Components[i] as TDBEdit).SetFocus;
> Exit;
> end
> else main.lotno_sh.Text:=lotno.Text+'-'+lotse.Text;
> end;
> if (self.Components[i]) is TDBCombobox and
> ((self.Components[i] as TDBCombobox).Tag=1) then
> begin
> if Length((self.Components[i] as TDBCombobox).Text)<=0 then
> begin
> showmessage('입력되지않은곳이 있습니다');
> (self.Components[i] as TDBCombobox).SetFocus;
> Exit;
> end
> else
> begin
> main.devicesel_sh.Text:=devicesel.Text;
> main.interval_sh.Text:=interval.Text;
> main. chips_sh.Text:=chips.Text;
> main.machine_sh.Text:=machine.Text;
> close;
> end;
> machinetbl.Append;
> machinetbl.FieldByName('Lot_num').asstring:=lotno.Text;
> machinetbl.FieldByName('Device').asstring:=devicesel.Text;
> machinetbl.FieldByName('Lot_serial').asstring:=lotse.Text;
> machinetbl.FieldByName('Chipsize').asstring:=chips.Text;
> machinetbl.FieldByName('검사수준').asstring:=interval.Text;
> machinetbl.FieldByName('장비번호').asstring:=machine.Text;
> machinetbl.Post;
> end;
> end;
> { with data.FindComponent('check_group') as TDBCheckbox do
> for i := 0 to self.ComponentCount-1 do
> begin
> if self.ComponentCount<1 then begin
> showmessage('no input');
> (self.Components[i] as TDBCheckbox).SetFocus;
> end;
> end; }
> //위에껀 체크박스가 다섯개가 있는데..이중 한개이상은 꼭 체크해야되여..
> //근데 어떻게 해줘야될지 몰라서 그냥 놔둔거구여...
> if machine.text='A' then begin
> main.ma_abtn.caption:='A On';
> end;
> end;
>
> 실행을 시키면 다 입력해줬는데두 입력되지않은곳이 있다는 메세지가 계속 떠서여..
> 어디가 잘못된건지..좀봐줘여..