또 도움을 요청드리네요.
DBGrid의 옵션을 다음과 같이 주었는데요
[dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgRowSelect,dgConfirmDelete,dgCancelOnExit,dgMultiSelect]
이렇게 하면 셀단위의 선택이아니라 한줄 단위의 선택이 되는데요.
그런데 문제는 셀을 클릭했을때 클릭이벤트에서
클릭한 셀의 칼럼명이 아니라 꼭 DBGrid의 첫번째 칼럼의
필드명을 가져오네요. 어떻게 해야 클릭한 셀의 필드명을 얻을수
있을까요.
물론 DBGrid의 옵션중 dgRowSelect, dgMultiSelect을 제거하면
클릭한 셀의 필드명을 가져옵니다.
미리 감사 드립니다.
예) 아래는 클릭이벤트에서 처리한 방법 입니다.
procedure DBGridCellClick(
Column: TColumn);
begin
ShowMessage(Column.FieldName);
end;
> 또 도움을 요청드리네요.
>
> DBGrid의 옵션을 다음과 같이 주었는데요
> [dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgRowSelect,dgConfirmDelete,dgCancelOnExit,dgMultiSelect]
>
> 이렇게 하면 셀단위의 선택이아니라 한줄 단위의 선택이 되는데요.
>
> 그런데 문제는 셀을 클릭했을때 클릭이벤트에서
> 클릭한 셀의 칼럼명이 아니라 꼭 DBGrid의 첫번째 칼럼의
> 필드명을 가져오네요. 어떻게 해야 클릭한 셀의 필드명을 얻을수
> 있을까요.
>
> 물론 DBGrid의 옵션중 dgRowSelect, dgMultiSelect을 제거하면
> 클릭한 셀의 필드명을 가져옵니다.
>
> 미리 감사 드립니다.
>
> 예) 아래는 클릭이벤트에서 처리한 방법 입니다.
> procedure DBGridCellClick(
> Column: TColumn);
> begin
> ShowMessage(Column.FieldName);
> end;
/////////////////////////////////////////////////////////////////////////////////
마우스다운에서 사용해보시죠
procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
CelRow : TGridCoord;
begin
CelRow := DBGrid1.MouseCoord(X, Y);
Edit1.Text := DBGrid1.Columns[CelRow.x-1].FieldName;
end;