DBGrid의 CompoentCount에 대한 질문입니다.
procedure TfkGyejong_jae.dbgYearDblClick(Sender: TObject);
var
aa : integer;
begin
aa := dbgYear.ComponentCount;
if aa = 0 then
showmessage('자료가 없습니다.')
else begin
with dmCocos.qJong3 do
begin
close;
parambyname('euigubun').asstring := inttostr(rgGubun.itemindex);
parambyname('brand').asstring := copy(cbBrand.text,1,1);
parambyname('year').asstring := dbgYear.fields[0].value;
open;
end;
with dmCocos.qJong4 do
begin
close;
parambyname('euigubun').asstring := inttostr(rgGubun.itemindex);
parambyname('brand').asstring := copy(cbBrand.text,1,1);
parambyname('year').asstring := dbgYear.fields[0].value;
open;
end;
lYear.caption := dbgYear.fields[0].value;
lGyejeol.caption := '';
lDaeJong.caption := '';
lSoJong.caption := '';
end;
end;
위의 코딩이 진행이 되기전에 조회 버튼에 의하여
dbgYear grid에 조회된 내역이 있습니다..
dbgYear인 Dbgrid 위와같이 코딩을 한 후 마우스를 더블 클릭시
DbGrid ComponentCount의 값이 0이 되어
실제 Db Grid상에 값이 있는대도
위의 코딩에서 0인 부분이 실행이 됩니다.
Dbgrid 셀내의 값의 정렬방향은 오른쪽 정렬인데
마우스로 정렬 방향이 왼쪽으로 변경을 시킨 후 마우스 더블 클릭을 하면
DbGrid ComponentCount의 값이 1이 되어
위의 코딩의 0이 아닌 것이 실행이 됩니다.
제가 잘 몰라서 죄송합니다...
아시는 분의 대답을 부탁드립니다....
if dbgYear.DataSource.DataSet.isEmpty then 또는
if dbgYear.DataSource.DataSet.RecordCount > 0 then 을 사용해 보십시오.