DBAdvStringGrid 의 셀에서 직접 편집할수 있도록 할려면 어떻게 해야하나요?
델파이에 있는 DBGrid 처럼 옵션에서 GoEditin을 True 로 주었지만
편집할수가 없네요.
그래서
DBAdvStringGrid.EditMode:=true;
또는 DBAdvStringGrid.EditorMode:=true;
로 해봤지만 역시 마찬가지 입니다.
////////////////////////////소스////////////////////
DataSource1.dataset := Query1;
Query1.DatabaseName := ExtractFilePath(Application.ExeName) + 'dat'; // alias
DBAdvStringGrid1.DataSource := DataSource1;
DBAdvStringGrid1.ColCount:=4;
DBAdvStringGrid1.Fields.Add;
DBAdvStringGrid1.Fields.Add;
DBAdvStringGrid1.Fields[1].FieldName := 'title';
DBAdvStringGrid1.Fields[1].Color:=$009C9C4E;
DBAdvStringGrid1.Fields[1].Title:='제목';
DBAdvStringGrid1.Fields.Add;
DBAdvStringGrid1.Fields[2].FieldName := 'mk_date';
DBAdvStringGrid1.Fields[2].Title:='작성일';
DBAdvStringGrid1.Fields.Add;
DBAdvStringGrid1.Fields[3].FieldName := 'memo';
DBAdvStringGrid1.Fields[3].Color:=$009C9C4E;
DBAdvStringGrid1.Fields[3].Title:='메모';
DBAdvStringGrid1.ColWidths[0]:=20;
DBAdvStringGrid1.ColWidths[1]:=20;
DBAdvStringGrid1.ColWidths[2]:=100;
DBAdvStringGrid1.ColWidths[3]:=0;
DBAdvStringGrid1.ColWidths[4]:=80;
DBAdvStringGrid1.AddCheckBox(1,1,false,false);
DBAdvStringGrid1.SetCheckBoxState(1,1,true);
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT title, mk_date, memo FROM Datas');
Open;
end;
Query컴포넌트를 쓰셨다면 편집이 안되는게 당연합니다.
Query컴포넌트로 select한 자료를 편집하려면 대개 2가지 방법중의 하나를
사용하시면 되는 걸로 압니다.
1. Query컴포넌트의 RequestLive속성을 True로 만든다.
이 방법은 Join같은 구문이 들어가면 작동하지 않는 문제,
시스템이 부하를 많이 줄 수 있는 문제가 있구요.
2. TUpdateSQL 컴포넌트를 사용하는 겁니다.
사용법은 델파이 서적 어디에나 나와 있고 게시판에서 검색해보시기 바랍니다.