2013-05-10 2 views
2

Delphi 2010에서 XE4로 업그레이드하고 FireMonkey를 처음 사용하여 어둠 속에서 모든 것이 어떻게 작동하는지 알아 내려고합니다.Delphi XE4 Firemonkey Grid Control - 셀을 개별적으로 스타일링하기

쿼리 당 하나의 TGrid 구성 요소에서 개별 셀을 다른 규칙에 따라 다르게 표시하려고합니다. 나는 마이크 서튼에 의해 게시 도움이 코드를 통해 일한 :

Firemonkey Grid Control - Styling a Cell based on a value (via the OnGetValue function call)

나는 그것이 XE4에서 컴파일 얻을 수있는 몇 가지 변경했습니다; 다음을 제외하고는 코드를 실행할 때 모두 괜찮아 보입니다.

  1. FontFill이 인식되지 않으므로 지금은 이것을 비워 두십시오.
  2. 글꼴 스타일이 전혀 변경되지 않고 무엇이든간에 기본 스타일로 표시됩니다.

관련 코드 (나머지는 위의 링크에 따라 꽤 많이) : 그 문제가 될 것 같지 않도록

Procedure TFinancialCell.ApplyStyle; 
var 
    T: TFMXObject; 
begin 
    inherited; 
    ApplyStyling; 
end; 

Procedure TFinancialCell.ApplyStyling; 
begin 
// If IsNegative then 
// FontFill.Color:=claRed 
// else 
// FontFill.Color:=claBlack; 

    Font.Style:=[TFontStyle.fsItalic]; 

    If IsImportant then 
    Font.Style:=[TFontStyle.fsBold] 
    else 
    Font.Style:=[]; 

    If Assigned(Font.OnChanged) then 
    Font.OnChanged(Font); 

    Repaint; 
end; 

IsImportant 플래그가 올바르게 설정되고있다.

정말 도움이 될만한 도움이 될 것입니다. 어리석은 일을 미리 사과하고 내가 누락되었을 수 있습니다.

+0

우수 질문을 사용 변경하려면, 나는이 자신을 알고 싶습니다. –

+0

다른 잠재적으로 유용한 정보는 여기까지입니다. http://monkeystyler.com/blog/entry/applystyle-and-freestyle-in-firemonkey 그러나 이것이 내 검색어와 관련이 있는지 알지 못합니다. 나는 스타일 코드를 충분히 이해하지 못하기 때문에. 내 쿼리에 언급 된 원래 코드는 게시되었을 때 사용했던 코드와 잘 작동하는 것 같습니다. XE3/XE4 변경 여부에 따라 작동하지 않는지 확실하지 않습니다. – Alex

답변

2

그 문서는 크게 내 FireMonkey 가이드 사이트에서 몇 가지 물건에 의해 대체되었습니다, 당신이 StyledSettings 속성에서 해당 항목을 제거 할 필요가 물건을 수정할 이후 경우 XE3에서 http://monkeystyler.com/guide/Category:Grids

,

StyledSettings := StyledSettings - [TStyledSetting.ssStyle, TStyledSetting.ssFontColor] 

폰트 색상이 FONTCOLOR 속성을

+0

감사합니다. 마이크, 지금 훌륭하게 작동합니다. 나는이 코드를 어디에 둘 것인지 분명히 알지 못했다고 고백해야한다. 시행 착오 끝에 나는 그것을 TFinancialCell에 떨어 뜨 렸습니다 .ApplyStyling을 적용한 다음 효과가 있었기 때문에 이것이 정확하다고 생각합니까? – Alex

+0

사용자 지정 셀 클래스를 사용하는 경우에는 한 번만 실행하면되므로 생성자에서 팝합니다. 내가 준 링크를 통해 예제를 보아라. –

+0

그것은 조금 분명했다, 고마워! – Alex