2010-08-19 58 views
1

我有固定行的TDrawGrid這個問題(雖然同樣適用於固定列)。當我沒有非固定行時,如何阻止TDrawGrid固定行消失?

如果您有.Fi​​xedRows = 1,並減少.RowCount的值,當它變爲1時,.FixedRows會自動設置爲0,並且您的固定行將變爲白色而不是通常的灰色 - 除了列零。

我可以阻止這種情況發生嗎?這是TDrawGrid中的錯誤嗎?

我意識到我可以在OnDrawCell中添加一些代碼來檢查rowcount,並在必要時爲它繪製一些假的固定行,但我希望不必這樣做。

謝謝大家。

回答

1

作爲設計成在VCL碼,它是一個「功能」 :-):

procedure TCustomGrid.SetRowCount(Value: Longint); 
begin 
    if FRowCount <> Value then 
    begin 
    if Value < 1 then Value := 1; 
    if Value <= FixedRows then FixedRows := Value - 1; // <= **@#$#@#$** 
    ChangeSize(ColCount, Value); 
    end; 
end; 
+0

,這是一個私有的,非虛擬方法(在D6至少),所以它不能容易地重寫。 – 2010-08-19 20:39:06

+0

...仍然在D2010! – 2010-08-19 21:01:51

+0

感謝男性,這看起來很有希望。我只是使用了一個直接的TDrawGrid ...現在我得到了一個TCustomGrid,並且只覆蓋了DrawCell,並添加了上面的proc。它抱怨FRowCount和ChangeSize。有任何提示?我是一個小白菜...... – csharpdefector 2010-08-19 21:33:36