Q&A

  • DBGrid의 특정 컬럼을 더블클릭하여 업데이트하기...
Field1이라는 필드는 Y또는 N의 값을 가집니다.
DBGrid에서 해당 컬럼만 더블클릭해야 다른 값으로 업데이트되게 하려고 합니다.
그래서 아래와 같이 해보았습니다...

if DBGrid1.SelectedField.FieldName = 'Field1'  .......... 또는
if DBGrid1.Columns.Items[5].Field = DBGrid1.SelectedField .........

근데 두 개다 안 되는군요. DBGrid에서 뭔가 설정해주는 게 있나요, 아니면 코딩에 문제가 있는건지...

그럼, 수고들 하시구요... 답변 기다리겠습니다...
2  COMMENTS
  • Profile
    신석기 2002.04.25 02:26
    if DBGrid1.SelectedField.FieldName = 'Field1' then
    begin
    //
    end;

    위방법은 이상이 없습니다.
    Grid의 옵션문제일것 같네요

    다음사항 점검해 보세요 물론 해보셨을것 같지만

    혹 RowSelect을 사용하시지 않는지요 ^^;
    그럼 SelectedField값은 첫 컬럼명만을 리턴합니다.

    그리구 혹 y/n을 변경하는 필드가 read only 필드는 아닌지 점검해보세요
     
  • Profile
    서종환 2002.04.25 18:15
    우선 답변에 감사드립니다.
    음, RowSelect가 True인 상태이더군요...
    False로 하면 다 먹습니다. 그러나 True일때는 안되구요...
    그러나 미관상 True인 것이 좋으므로 DBGrid의 컬럼을 이용할 수는 없는 것 같습니다. 혹시 그걸 이용해서 해결하는 방법을 아시는 분은 답변 부탁드립니다.
    제가 해결한 방법은 어떻게 보면 아주 단순무식한, 그러나 아주 강력한 방법입니다. 바로 API...

    procedure TFrm1.dbgrd1DblClick(Sender: TObject);
    var
       pt : TPoint;
       aCol, aRow   : integer;
    begin
       GetCursorPos(pt);
       pt := dbgrd1.ScreenToClient(pt);
       dbgrd1.MouseToCell(pt.x, pt.y, aCol, aRow);

       if aCol = 6 then begin
         //.............
       end;
    end;

    이거죠... 근데 단점은 DBGrid의 컬럼을 이동했을 경우, aCol값을 매번 바꿔줘야 한다는 것입니다. 별로 안좋죠...
    그래서 가장 좋은 방법은 RowSelect가 True일때 DBGrid의 Column을 이용하는 것인데 그걸 모르겠습니다.
    뭔가 획기적인 방법을 아시는 분은 답변 부탁 드립니다.
    • mute
      2002.04.25 21:34
      쩝 아냐세염 전 돌파리 입니다. 걍 참고만 하세요 캬캬캬.. 우선 문제의 원인은 이부분입니다. 쩝 뭐...
    • 프로초보
      2002.04.26 01:21
      하하.. 이처럼 답변을 해주시니..어렴풋이 이해가 갈듯(?)하네요.. 딱 저의 수준에 맞는 설명이었슴다..ㅋ...
    • mute
      2002.04.26 20:13
      아따 그냥반 참말로 지가 엄청나게 생각하는거 싫어하는 넘인데 이케 또 질문을 던져 불믄 머리가 참말로 ...
    • 프로초보
      2002.04.27 00:46
      고맙습니다~!!!! 항상 행복하시길.......
    • 이승준
    • 2002.04.25 19:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영철
      2002.04.26 02:44
      혹시 인터넷으로 사용하는 프로그램이 ASP 아닌가요?? 그렇다면 IIS에 설정된 SetsoTimeOut(맞나?) 설정을...
    • 서종환
    • 2002.04.25 18:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Tk
      2002.04.26 00:04
      date ->  timestamp
    • 송효철
    • 2002.04.25 15:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신석기
      2002.04.25 19:18
      uses절에   ShellAPI을 추가하시고 클릭적에 ShellExecute(Handle,'open','화일명',nil,nil,S...
    • 유은진
    • 2002.04.25 12:15
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김영철
    • 2002.04.25 11:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.04.26 20:58
      in-line view & group by, having을 사용하시면 될듯하네여... 먼저 테이블명을 sample 라 가정하고... ...
    • 공성환
      2002.04.25 18:32
      데이타베이스가 뭔가요? 서브쿼리를 이용하면 될것같은데...
    • 원유훈
    • 2002.04.25 09:27
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박현수
    • 2002.04.25 08:32
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정규성
    • 2002.04.25 05:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • mute
      2002.04.25 20:47
      자... 걍 허접 답변 들어주세요... ^_^ 이부분에 틀린 부분은 2개 있습니다. 우선 문법상 틀린점은 For...
    • 김상래
    • 2002.04.25 05:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 염상철
      2002.04.25 19:04
      quickRep 에 dataset이 지정 안되서 그런거에여.. 지정하세여..그럼..다 나와여..
    • 김상래
      2002.04.25 19:54
      답변은 고맙습니다. 근데요 DateSet 정의 했는데요. db에 데이타가 5건 있습니다. 근데 출력을 해보면 ...
    • 나원용
    • 2002.04.25 04:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 염상철
      2002.04.25 19:28
      dbgrid의 onCellClick이벤트에 datetimepicker1.visible:=true;
    • 최수림
    • 2002.04.25 04:26
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이기택
      2002.04.25 06:39
      제가 정확히 해보진 않았지만 format 함수를 쓰신거면 풀로 적어 주어보세요 Cells[0,i] := Formatda...
    • 최용일
      2002.04.25 04:30
      안녕하세요. 최용일입니다. 그냥 Now함수 쓰시면 안되나요? Now함수는 날짜와 시간을 구하는 함수인데.....
    • 최수림
      2002.04.25 04:58
      ^^ 감사합니다..!! 근에요..!! 날짜 시간 현재 날짜로 구해지는데요..!! 날짜와 시간사이..!! 그러니까...
    • 유현성
    • 2002.04.25 03:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.04.25 04:28
      안녕하세요. 최용일입니다. 그냥 TSpeedButton쓰시죠... 자료실에 FlatStyle컴포넌트가 있는데 그것...
    • 박선지
    • 2002.04.25 03:12
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.04.25 04:16
      안녕하세요. 최용일입니다. 엑셀 쉬트의 마지막 셀을 얻는 함수입니다... 조금 수정해서 사용하세요... ...
    • 전영민
      2002.04.25 03:15
      델파이가 아니라 vba로 예전에 개발했던중에서.. 저도 마지막 row를 알 수가 없어서 for 대신에 whil...
    • 최용일
      2002.04.25 04:08
      안녕하세요. 최용일입니다. 잘 알고 계시네요... 타입이 안맞아서 그럽니다. 님이 작성하신거는 그냥...
    • 정진영
    • 2002.04.25 02:17
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.04.25 04:33
      안녕하세요. 최용일입니다. EAccessViolation는 메모리 참조 오류인데... 생성되지 않은 객체나 이미 해...
    • 정진영
      2002.04.25 19:46
      close하기전에 폼을 변수로 선언하고 닫아주니 되네요.. 근데 거기서 문제가... 닫고자 하는 폼이 TfrmA...
    • 서종환
    • 2002.04.25 02:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신석기
      2002.04.25 02:26
      if DBGrid1.SelectedField.FieldName = 'Field1' then begin // end; 위방법은 이상이 없습니다. G...
    • 서종환
      2002.04.25 18:15
      우선 답변에 감사드립니다. 음, RowSelect가 True인 상태이더군요... False로 하면 다 먹습니다. 그러나 ...
    • 이희정
    • 2002.04.25 01:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신석기
      2002.04.25 02:13
      환경설정을 검사해봐야 정확히 진단을 할 수 있을것 같습니다 일반적으로 import/Export 할때 option문제...