Q&A

  • 델파이 왕초보자 입니다. 퀀텀그리에서 선택row를 for문을돌면서 값을 변수에 저장하고 싶은데 오류가 납니다...
procedure Tf_p200.cxButton2Click(Sender: TObject);
var
  i : integer;
  jepum, gu, danwi, pummyung : string;
  bmTemp : TBookmark;
begin
  if cxGrid1DBTableView1.Controller.SelectedRowCount > 0 then
  begin
    for  i := 1 to cxGrid1DBTableView1.Controller.SelectedRowCount do
    begin
     // GotoBookmark(pointer(DBGrid4.SelectedRows.Items[i]));
  
    ---> dbgrid 에서 선택부분의 주소값으로 가기 위해서 사용한 부분입니다.      
           이것을 이용해서 퀀텀그리드에서도 위와 비슷한 방법으로 아래 처럼 하였습니다.  
    
      bmTemp := pointer(cxGrid1DBTableView1.Controller.SelectedRows[i]);

      query1.DataSource.DataSet.GotoBookmark(bmTemp);  ---> 오류메세지 발생
       --> access violation at address 006343ff in module 'aaa.exe' . read of address 00000030
             이런메세지가 발생합니다.
            퀀텀그리드에서 선택부분의 수 만큼 for 문을 돌려면 변수의 값을 저장하고 싶은데 원인을
            모르겠어요....
            이 방법 말고 다른 방법이 있다면 가르쳐 주세요.... 고수님들 부탁드려요~~~
            
    end;
  end;
  end;

end.
2  COMMENTS
  • Profile
    구창민 2008.10.16 17:38
    안녕하세요..

    퀀텀 그리드는 잘 모르지만, SelectedRowCount -1 로

    for 문을 한번 돌려보세요..

    참고로 access violation 은 없는 주소값을 접근할때 발생합니다..
  • Profile
    가르쳐주삼 2008.10.16 19:13
    i = 0으로 하고 SelectedRowCount -1로 해서 for문을 돌아도 오류가 발생합니다.....ㅠ.ㅠ

    bmtemp에 값이 들어가는지를 확인해보면 값을 들어갑니다....