자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi VCL어플리케이션 개발 중 GridPanel 질문드립니다!
2020.04.10 18:26
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. VCL로 FMX의 ListView 같은 녀석을 만들어보고 있는 중인데요,
이런 저런 Grid를 사용해보다가 GridPanel로 구현해보고 있습니다...
컬럼이 add 될 때마다 위와 같은 형태를 동적으로 만들고 있구요,
GridPanel에는 노란색 TLabel로 꽉 채우고(Align := alClient),
노란색 TLabel을 Parent로 설정한 하얀색 컴포넌트들을 넣었습니다.
궁금한 것은 GridPanel 클릭이벤트를 주고 싶은데.. 어떻게 하면 좋을지 모르겠습니다....
안에 보이는 모든 컴포넌트의 클릭이벤트를 모두 동일하게 넣으면 되긴 하지만...
뭔가 더 좋은 방법이 있을 것 같은데..
GridPanel에 대한 정보를 찾기가 너무 어려워 이곳에 도움을 구합니다.
댓글 2
Delphi VCL어플리케이션 개발 중 GridPanel 질문드립니다!
2020.04.10 18:26
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. VCL로 FMX의 ListView 같은 녀석을 만들어보고 있는 중인데요,
이런 저런 Grid를 사용해보다가 GridPanel로 구현해보고 있습니다...
컬럼이 add 될 때마다 위와 같은 형태를 동적으로 만들고 있구요,
GridPanel에는 노란색 TLabel로 꽉 채우고(Align := alClient),
노란색 TLabel을 Parent로 설정한 하얀색 컴포넌트들을 넣었습니다.
궁금한 것은 GridPanel 클릭이벤트를 주고 싶은데.. 어떻게 하면 좋을지 모르겠습니다....
안에 보이는 모든 컴포넌트의 클릭이벤트를 모두 동일하게 넣으면 되긴 하지만...
뭔가 더 좋은 방법이 있을 것 같은데..
GridPanel에 대한 정보를 찾기가 너무 어려워 이곳에 도움을 구합니다.
정확히 어는 컨트롤에 이벤트를 주는것인지 잘 모르겠습니다만
1. 아래와 같은 원하시는 row, column을 찾아 가실 수 있습니다.
var
aControl : TControl;
begin
aControl := GridPanel1.ControlCollection.Controls[1,1]; //3rd row, 4th column
if Assigned(aControl) AND (aControl IS TButton) then
TButton(aControl).Caption := 'hit';
end;
2. 특정 Control이 있는 행과 열 가져 올 수 있습니다.
var
aControl : TControl;
idx :
integer
;
cRow, cColumn :
integer
;
begin
//"pseudo" code (as aControl is nil)
cRow := -
1
; cColumn := -
1
;
idx := GridPanel1
.
ControlCollection
.
IndexOf(aControl);
if
idx > -
1
then
begin
cRow := GridPanel1
.
ControlCollection[idx].Row;
cColumn := GridPanel1
.
ControlCollection[idx].Column;
end
;
end
;