자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi GotoBookmark(pointer(DBGrid2.SelectedRows.Items[i])) 에러...
2018.03.16 17:43
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/delphivclwin32/DB_TDataSet_GotoBookmark.html
{
The following example copies the selected rows in a db grid
to a list box. Set the db grid Options dgRowSelect,
dgAlwaysShowSelection and dgMultiSelect to True. Make a
multiple selecton using the CNTL key. This example requires
a TDataSet associated with a TDataSource and a TDBGrid.}
procedure TForm1.Button2Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid2.SelectedRows.Count>0 then
with DBGrid2.DataSource.DataSet do
for i:=0 to DBGrid2.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid2.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin
if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
DBGrid에서 여러레코드를 선택하여 처리하는 작업을 하는데 위 소스대로 하면 에러가 납니다.
이전에 사용하던 XE7에서는 위 소스대로 해서 잘 되었는데 10.2로 업 한뒤로 [dcc32 Error] uDemand_return.pas(213): E2010 Incompatible types: 'System.TArray<System.Byte>' and 'Pointer' 에러가 나면서 컴파일이 안됩니다.
여러레코드를 선택한뒤 선택된 레코드를 하나 하나 이동하면서 처리하는 작업은 어떻게 해야 되나요?
Delphi GotoBookmark(pointer(DBGrid2.SelectedRows.Items[i])) 에러...
2018.03.16 17:43
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/delphivclwin32/DB_TDataSet_GotoBookmark.html { The following example copies the selected rows in a db grid to a list box. Set the db grid Options dgRowSelect, dgAlwaysShowSelection and dgMultiSelect to True. Make a multiple selecton using the CNTL key. This example requires a TDataSet associated with a TDataSource and a TDBGrid.} procedure TForm1.Button2Click(Sender: TObject); var i, j: Integer; s: string; begin if DBGrid2.SelectedRows.Count>0 then with DBGrid2.DataSource.DataSet do for i:=0 to DBGrid2.SelectedRows.Count-1 do begin GotoBookmark(pointer(DBGrid2.SelectedRows.Items[i])); for j := 0 to FieldCount-1 do begin if (j>0) then s:=s+', '; s:=s+Fields[j].AsString; end; Listbox1.Items.Add(s); s:= ''; end; end;
DBGrid에서 여러레코드를 선택하여 처리하는 작업을 하는데 위 소스대로 하면 에러가 납니다.
이전에 사용하던 XE7에서는 위 소스대로 해서 잘 되었는데 10.2로 업 한뒤로 [dcc32 Error] uDemand_return.pas(213): E2010 Incompatible types: 'System.TArray<System.Byte>' and 'Pointer' 에러가 나면서 컴파일이 안됩니다.
여러레코드를 선택한뒤 선택된 레코드를 하나 하나 이동하면서 처리하는 작업은 어떻게 해야 되나요?
GotoBookmark(pointer(DBGrid2.SelectedRows.Items[i])) 부분을
GotoBookmark(Tbookmark(dbGrid2.SelectedRows.Items[i])) 로 수정해서 처리가 되었습니다.
XE7에서는 잘 되던것들이 10.2에서 에러가 나는 것들을 볼때 참 난감하네요.