2016-04-06 39 views
0

C++ Builder 6.dinamik Set VertScrollBar özelliği - Bir form var C++ oluşturucu

kullanıyorum bir TLabel içerirler.

Bazen, etiket metni görüntülenemeyecek kadar büyük olduğundan, Form gerektiğinde kaydırma çubuğu içerecektir.

Şimdi ne olur, Etiket yüksekliği büyüdükçe Form yüksekliği büyür.

Form yüksekliği her zaman < = tanımladığım bir değişken olmasını ve etiket yüksekliği> sınırlandığında VertScrollBar görünmesini isterim.

Bunu desteklemek için Form'un VertScrollBar özelliği nasıl ayarlanır?

Temel olarak, konum ve aralık nasıl ayarlanır?

+0

Sanırım, kendi kaydırma çubuğunuzu ayarlayarak daha fazla şansınız olacak. Konum, Min, Maks özelliğini (doğru sırayla bir istisna yapmamak için) kolayca ayarlayabilirsiniz, ancak etiketlerin oluşturulması senkronize edilmeyecektir. Etiketler yerine, Form1-> Canvas-> TextOutA (x, y, "string") ile OnPaint olayıyla kendi başıma yazılmış metinleri Render yapardım; İhtiyacınız olan dizelerin bir kısmını kesmek için kaydırma çubuğu konumunu kullanabilirsiniz. Tek aralıklı yazı tipleri bunun için iyi bir başlangıç ​​noktasıdır ('OEM_CHARSET, System, fpFixed' gibi). Ya da tam boy ve kopya dikdörtgen ile sanal ekran (Bitmap) olabilir ... – Spektre

cevap

0

Formun Contraints.MaxHeight özelliğini istenen sınır değerine ayarlayın ve AutoScroll özelliğini true değerine ayarlayın. İçeriğin genişliği/yüksekliğini aştığında VCL'nin Form kaydırma çubuğunu sizin için otomatik olarak yönetmesine izin verin.

Alternatif olarak, TLabel'dan kurtulmanızı öneririm ve bunun yerine TRichEdit kullanın. WordWrap değerini true olarak ve ScrollBars - ssVertical olarak ayarlayın. İhtiyaç duyulmadığında kaydırma çubuğunu otomatik olarak gizler.

: TMemo aynı ScrollBars özelliğine sahiptir, ancak gerekli değildir zaman kaydırma çubuğunu saklamıyor.