저또한 초보라서 잘 모르는걸 감안해 주세요.^^
스트링그리드는 디비그리드와는 달리 그냥 텍스트 박스라고 생각하셔도
될듯 합니다. 즉, 글씨를 쓰고 지우는 단순한 텍스트 박스 형식의 그리드라는
말이죠.
위의 예에서 첫번째 형식으로 특정셀을 선택하면 그쪽에 관한 정렬이
문제인것 같은데 스트링 그리드에서(DrawCell)에서 하는것은 좀 무리가
있을것 같습니다. 단순한 조건에 의한 표시를 한다는것이 아니니까요.
디비 그리드가 성격에 맞는것 같지만 스트링그리드를 고집 하신다면
기존 해당 필드를 선택할때 선택된 필드로 order by한 걸 다시 뿌리던지.
아니면 DrawCell에서 구현한다면 난잡한(?) 코딩이 필요한건 아닌지.
스트링 그리드에서 표현했을때 뿌리는 프로시저, 쿼리해오는 프로시저, 등등을
명확하게 구분했을때 가능은 하겠죠.. ..
디비 그리드를 썼을때의 위의 사항 표현방법입니다.
스트링 그리드 또한 이와 비슷하게 응용하시면 가능할듯.
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.Options := [dgTitles,dgIndicator,dgColLines,
dgRowLines,dgTabs,dgConfirmDelete,dgCancelOnExit];
end;
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
Query1.SQL[1] := Column.FieldName;
Query1.Close;
Query1.Open;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
with Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM CUSTOMER ORDER BY ');
SQL.Add('CUSTNO');
Open;
end;
end;
스트링그리드는 디비그리드와는 달리 그냥 텍스트 박스라고 생각하셔도
될듯 합니다. 즉, 글씨를 쓰고 지우는 단순한 텍스트 박스 형식의 그리드라는
말이죠.
위의 예에서 첫번째 형식으로 특정셀을 선택하면 그쪽에 관한 정렬이
문제인것 같은데 스트링 그리드에서(DrawCell)에서 하는것은 좀 무리가
있을것 같습니다. 단순한 조건에 의한 표시를 한다는것이 아니니까요.
디비 그리드가 성격에 맞는것 같지만 스트링그리드를 고집 하신다면
기존 해당 필드를 선택할때 선택된 필드로 order by한 걸 다시 뿌리던지.
아니면 DrawCell에서 구현한다면 난잡한(?) 코딩이 필요한건 아닌지.
스트링 그리드에서 표현했을때 뿌리는 프로시저, 쿼리해오는 프로시저, 등등을
명확하게 구분했을때 가능은 하겠죠.. ..
디비 그리드를 썼을때의 위의 사항 표현방법입니다.
스트링 그리드 또한 이와 비슷하게 응용하시면 가능할듯.
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.Options := [dgTitles,dgIndicator,dgColLines,
dgRowLines,dgTabs,dgConfirmDelete,dgCancelOnExit];
end;
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
Query1.SQL[1] := Column.FieldName;
Query1.Close;
Query1.Open;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
with Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM CUSTOMER ORDER BY ');
SQL.Add('CUSTNO');
Open;
end;
end;