2013-11-01 7 views
6

olarak ayarlandığında, TSplitter üzerinde istenmeyen boyutlar büyüyor Bu tür bir durum var (resme bakın), şimdi Splitter1 çalışma zamanında yukarı taşınırken, Panel2 yüksekliği büyür ve ayrıca Form1 yükseklik büyür.Panel1.Constraints.MinHeight

Ama yükseklik ve Form1 çok var bu yüzden Panel2 değiştirilemez, Splitter1 yukarı çünkü Panel1.Constraints.MinHeight ait taşınamaz zaman ulaşılır bilir ve olayın bu tür engellemek gerekir.

Yardımlarınız için teşekkür ederiz.

preview

- Düzenleme-
Panel1.Align: = alLeft;
Splitter1.Align: = alBottom;
Panel2.Align: = alBottom;

cevap

6

Splitter'in CanResize olayında daha fazla boyutlandırmayı kontrol edebilir ve reddedebilirsiniz.

procedure TForm1.Splitter1CanResize(Sender: TObject; var NewSize: Integer; 
    var Accept: Boolean); 
begin 
    Accept := ClientHeight - (NewSize + Splitter1.Height) >= Panel1.Constraints.MinHeight; 
end; 
+0

Teşekkürler, bu benim için harika çalışıyor. En basit çözüm en iyisidir. – NevTon

+0

@NevTon, rica ederim! –

1

Splitter AutoSnap özelliğini false ve MinSize özelliğini Panel MinHeight1'e ayarlayın.

+0

"AutoSnap" öğesi false olarak ayarlandı ve "ResizeStyle" rsUpdate olarak ayarlandı. Şimdiye kadar bahsetmediğim için üzgünüm. – NevTon

+0

Sonra Splitter MinSize Panel 1 MinHeight için ayarlamak için kaçırmış gibi görünüyor. Bu olmadan çözümüm işe yaramayacak. Her neyse, Sertaç başka bir geçerli yaklaşım gösterdi. –

+0

Hayır, Splitter1.MinSize özelliğini kaçırmadım. 84'e ayarlandı, bu, Splitter1'i aşağıya taşıdığında panel2'nin min boyutu olacak. – NevTon

İlgili konular