Q&A

  • TADV 의 DBAdvStringGrid 에서 직접 셀편집이 안됩니다.
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;

2  COMMENTS
  • Profile
    박성훈 2003.12.24 22:39


    Query컴포넌트를 쓰셨다면 편집이 안되는게 당연합니다.
    Query컴포넌트로 select한 자료를 편집하려면 대개 2가지 방법중의 하나를
    사용하시면 되는 걸로 압니다.

    1. Query컴포넌트의 RequestLive속성을 True로 만든다.
       이 방법은 Join같은 구문이 들어가면 작동하지 않는 문제,
       시스템이 부하를 많이 줄 수 있는 문제가 있구요.

    2. TUpdateSQL 컴포넌트를 사용하는 겁니다.
        사용법은 델파이 서적 어디에나 나와 있고 게시판에서 검색해보시기 바랍니다.
  • Profile
    박희경 2003.12.27 17:43