2011-11-02 8 views
7

FireMonkey를 기반으로하는 첫 번째 앱을 만들려고하고 있습니다. 벽에 충돌했습니다. 찾을 수있는 유일한 가상 목록 컨트롤은 tGrid입니다.Firemonkey : tGrid 또는 다른 Grid/List 구성 요소의 스타일 지정 (가상)

이 구성 요소는 꽤 좋지만 확장 또는 사용자 정의하는 방법을 알 수 없습니다. tCheckbox 열, tImage 열 등이 있지만 ButtonColumn 또는 이와 비슷한 것이 필요한 경우 어떻게해야합니까?

또한 나는 그것이 나타내는 데이터의 상태에 따라 행의 스타일을 지정하고 싶습니다.

예 : 행에 표시된 데이터에 "오류 = 참"이면 빨간색으로 표시되어야합니다.

누구에게 비슷한 문제가 있습니까? 또는 대체 가상 목록/그리드 구성 요소를 찾았습니까? 또는 tGrid 구성 요소 사용에 대한 팁. 이러한 구성 요소는 모든 데이터베이스 응용 프로그램에서 매우 필수적이므로 꽤 일반적인 요청이어야합니다.

메모와 마찬가지로 TGrid가 드래그를 지원하지 않는다고 생각합니다. & 행 삭제?

가 나는 Firemonkey version of VirtualTreeViewFiremonkey and large amounts of data

+0

Artis 내가 조금 늦을 수 있습니다. Embarcadero fire monkey에 새롭고 FMX Grid와 관련하여 많은 질문이 있습니다. Tcolumn을 스타일링하기위한 코드를 게시 할 수 있습니까? 감사합니다. John –

+0

안녕하세요 컴퓨터에 다시 연결되면 코드를 게시 해 드리겠습니다. 나는 그 해결책이 그다지 우아하지 않다는 것을 말해야 만합니다. 아마 TMS의 새로운 테이블 구성 요소로 갈 것입니다. 내 솔루션은 버그가 많았으며 유지하기가 쉽지 않았습니다. –

답변

6

당신이 소스를 보면 살펴 보았다, TCheckColumn는 15 코드 라인이다. 자신 만의 컬럼 자손 클래스를 생성해야한다면 매우 간단합니다. 이것은 하나의 솔루션입니다. 그렇지 않으면 셀에 일부 구성 요소를 동적으로 생성 한 다음 소품 (TColumn.CellControlByRow()를 반환하면 TControl을 반환하고 자식은 사용자가 입력 한 내용이 될 것입니다)을 확인할 때 자식을 캐스팅 할 수 있습니다.

행을 '스타일'지정하려면 OnPaint 이벤트에서 페인팅을 할 수있는 경우에도 TColumn 클래스를 직접 작성하는 것이 좋습니다.

+0

안녕하세요. 답변 해 주셔서 감사합니다. 내 열을 만드는 것이 트릭을 수행하는 것 같습니다. 물론 열 편집기에 표시되지는 않지만 tGrid.AddObject를 사용하여 추가 할 수 있습니다. 이제 열과 셀을 제어 했으므로 나머지 작업을 더 쉽게 수행 할 수 있습니다. –

+2

누구든지 관심이 있다면; TColumn의 UpdateColumn 프로 시저를 재정 의하여 셀의 스타일을 해결했습니다. 여기에 GetValue, GetCellStyleLookup과 비슷한 함수가 추가되었습니다. 이것은 GetValue와 마찬가지로 그리드에 게시됩니다. 이제 가상 컨텐츠를 기반으로 모든 셀에 스타일 (스타일 편집기로 작성)을 적용 할 수 있습니다. 이 방법이 최선의 방법인지 잘 모르겠지만 작동합니다. 그리고 그런 희소 한 문서를 가지고 나는 다른 것을 알아낼 시간이 없다. –