안녕하세요. 제가 DBGrid는 많이 사용해 봤는데, StringGrid를 한 번도 사용해 보질 못했습니다. StringGrid를 사용할려고 하는데, 막연해서, Query의 내용을 어떻게 StringGrid에 보이게 할 수 있는지요? StringGrid를 사용하면 DataSour...
이재식
•
1999.09.14 04:19
네, StringGrid를 쓰면 DataSource는 사용할 필요가 없습니다.
대신 StringGrid에 데이터를 뿌려주려면 결...
대신 StringGrid에 데이터를 뿌려주려면 결국 코딩을 해야 되죠.
저는 StringGrid, DataControl, Formula를 써 보았는데요,
각기 일장일단이 있습니다.
참고사항으로 Formula가 제일 쉽고 편하더라구요.
어디서부터 이 두개의 차이점을 말씀드려야 할지 모르겠군요.
우선 StringGrid위주로 말씀을 드릴께요.
StringGrid에 데이터를 뿌려주는 법 :
StringGrid1.Cells[열, 행] := 데이터(반드시 문자열 타입이어야 함)
StringGrid의 제약사항중 하나가 반드시 대입될 데이터를 문자열타입이어야
한다는 것입니다.
여기서, 열과 행은 0부터 시작해요. 즉, 첫열은 0, 첫행도 0으로 시작하죠.
그런데, 이 그리드에는 RowCount가 있습니다.
dynamic하게 변경할 수 있죠.
******* Query의 내용을 StringGrid에 보여주는 법 ******
예를 들어 보이죠.
query의 데이터개수는 3개, 필드개수역시 3개.
이것을 StringGrid에 보여주고자 할때.
StringGrid의 FixedCols와 FixedRows속성이 둘다 1이라고 가정합시다.
그리면 colCount속성을 4라고 해야죠.
scol := 1 ;
srow := 1 ;
StringGrid1.Rowcount := 2 ;
with query1 do
begin
while not eof do
begin
StringGrid1.Cells[scol, srow] := FieldByName('q1').asString ;
scol := scol + 1 ;
StringGrid1.Cells[scol, srow] := FieldByName('q2').asString ;
scol := scol + 1 ;
StringGrid1.Cells[scol, srow] := FieldByName('q3').asString ;
scol := 1 ;
srow := srow + 1 ;
StringGrid1.Rowcount := StringGrid1.Rowcount + 1 ;
end ; // while end
end ; // query end
그러면 최종 RowCount는 4가 되는 거죠. 그러나 데이터개수는 3개죠.
*****************************
StringGrid에 대해서 자세히 알고 싶다면 이 책을 보세요.
대림 출판사입니다. 'Delphi 4 시작 그리고 완성' 입니다.
참고페이지는 1185 ~ 1192. 1104 ~ 1105(이페이지를 독파하면
스트링그리드에대해서는 두렵지 않을 것입니다.그런다음 1185~1192를
보세요. 이해가 잘 될 것입니다. 많은 고급기능이 있습니다.)
도움이 되었으면 하네요. 그럼...