델마당에 올린글을 여기에 또 올리게 되어 죄송합니다.
절박한 심정에 혹시나 해서... 이해해 주시기 바랍니다.
전에도 비슷한 유형의 질문을 몇번정도 올린적이 있는데 답변글이 없어
부끄러움을 감수하며 이렇게 다시 글을 올립니다.
다른 실행프로그램을 비주얼멘더로 분석한 결과 화면상에 스트링그리드가 있어군요.
다른 컴포넌트상의 데이터는 좌표와 핸들을 이용해서 그 값을 읽었으나, 스트링 그리트는 GETTEXT가 되지 않더군요.
스트링그리드의 각 셀별 데이터를 읽을 수 있는 방법을 없을까요?
부탁드립니다.
> 델마당에 올린글을 여기에 또 올리게 되어 죄송합니다.
> 절박한 심정에 혹시나 해서... 이해해 주시기 바랍니다.
>
> 전에도 비슷한 유형의 질문을 몇번정도 올린적이 있는데 답변글이 없어
> 부끄러움을 감수하며 이렇게 다시 글을 올립니다.
>
> 다른 실행프로그램을 비주얼멘더로 분석한 결과 화면상에 스트링그리드가 있어군요.
> 다른 컴포넌트상의 데이터는 좌표와 핸들을 이용해서 그 값을 읽었으나, 스트링 그리트는 GETTEXT가 되지 않더군요.
>
> 스트링그리드의 각 셀별 데이터를 읽을 수 있는 방법을 없을까요?
> 부탁드립니다.
/////////////////////////////////////////////////////////////////////
혹시 스스링그리드의 화면 좌표로 셀을 찾아 그값을 알고자함인지요?
어떻게 쓰실지는 모르겠으나 아래 참조하세요.
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
CCol, CRow: Integer;
Rect : TRect;
begin
with TStringGrid(Sender) do begin
Refresh;
MouseToCell(x,y,CCol, CRow); //화면좌표로 셀구함
Rect := CellRect(CCol, CRow);
if (CRow>=0)and(CCol>=0) then begin
Panel1.Caption := cells[CCol, CRow]; //셀의 값을 패널에 씀
Canvas.Brush.Color := clRed;
Canvas.FillRect(Rect);
Canvas.Font.Color := clWhite;
canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 3, cells[CCol, CRow]);
end;
end;
end;