2011-12-07 23 views
7

Hem 64 bit Windows'ta (Win 7) hem de 32 bit Windows'ta (XP) Delphi 2010 çalıştırıyorum.TRibbon sekmeleri göstermiyor

TRibbon denetiminin nasıl kullanılacağını öğrenmeye çalışıyorum.

Marco Cantu'nun 2009 El Kitabı'ndaki örneğini takip ederek ve YouTube Demolarını izliyorum, ancak kontrolüm kitapta veya demolarda açıklandığı şekilde çalışmıyor.

Kontrol sağ tıklayarak iki sekme ekledim. Ancak, TRibbon, ana formda bıraktığım zaman, ekran görüntüsünde olduğu gibi görünüyordu. Kitaplardaki veya youtube demolarındakiler kadar yüksek değil.

Windows Xp ve Delphi 2010 çalıştıran benim Win 32 dizüstü aynı şeyi denedik ve

64 bit laptop screenshot

burada benim makinede nasıl göründüğünü

burada

olan tam aynı sonuçları elde var o

from youtube video demo

varmış bir demo gibi görünmek için varsayalım ne tekrar. Form üzerine düştüğü zaman, şekilleri ve yükseklikleri demolarda gördüğüm gibi almaz. Sekmeler eklediğimde bile. Delphi 2010 kurulumum sırasında yanlış bir şey mi yaptım?

+2

Tuhaf geliyor. Tam olarak anlattığın şeyi yaptım ve mükemmel davrandı. –

+0

Ya, çoğu insan için böyle olacağını düşündüm, çünkü bunu demolarda görüyorum! Ancak, benim için çalışmıyor. Onun Delphi 2010 kusurlu bir sürümü var neredeyse. Ben tam bir kaldırma ve Delphi 2010 yeniden yükledim ve hala aynı şekilde davranıyor – IElite

+0

Bu daha önce hiç görmedim, bunu yapmamalı. –

cevap

8

Sonunda, etkinleştirilmiş olan Win7 64'teki Delphi XE (Güncelleştirme 1) sorununu yeniden oluşturmayı başardım. Boyut, .DFM dosyasında yanlış ayarlanmış gibi görünüyor ve Ribbon, el ile yeniden boyutlandırmayı desteklemediğinden, görsel olarak IDE (düzgün çalışma zamanında görünse bile) veya Object Inspector'da düzeltemezsiniz. Zaman zaman çalışma zamanında düzgün görünüyor, ancak bu da sporadik görünüyor.

Ribbon ürününü tasarlamayı imkansız hale getirdiğinden, bu çok kötü bir hatadır. RibbonGroup öğelerini ekleyebilir ve ActionManager'u atayabilir ve Structure Pane'u kullanarak tamamen deneyin ve tasarlayabilirsiniz, ancak bu pratik bir çözüm değildir.

Neyse ki, yapmak zorunda olmak can sıkıcı olsa da oldukça kolay bir çözüm var. :)

Ben çalışması için aşağıdaki geçici çözümü elde etmek için iki kez başardı ama birkaç kez çalışmaya başarısız baştan başlamak, bu yüzden onun etrafında olası bir yoldur (hayır sözler - XE çalıştı, sürekli XE2 Güncelleme 2 başarısız) :

  • Ribbon'a sağ tıklayın ve en az bir sekme ekleyin.
  • IDE'de formu sağ tıklayın ve içerik (açılır) menüsünden View as Text'u seçin.
  • .dfm metninde Ribbon denetimini bulun vekodunu 200'a atanan IDE'den Height değiştirin. (Bir sonraki adım olarak değiştirecektir, ama sorun değil - 200 düzeltmeleri acil sorunu.)
  • tekrar sağ tıklayın ve View as Form seçin ve Ribbon düzgün görüntülenmesi gerekir.

    Ben TCustomRibbon.GetCaptionHeight bunu takip, özellikle bu GetSystemMetrics çağrısı gibi görünüyor

    FCaptionHeight := Max(GetSystemMetrics(SM_CYCAPTION), 26); 
    

    -

(QC#101642 sorun da vardır gibi ben XE2 Güncelleme 2 karşı qc bildirdi) belirli Win7 yapılandırmalarında 26'dan daha az bir şey döndürüyor (yine de neden olduğunu anlayamıyorum bile). Bu yöntemde, sonucu değiştirmiş gibi görünen birkaç yorum var, ancak yorumlandığımı söylediğim gibi.

garip kısmı TCustomRibbon.Create yılında, HeightResult := cRibbonHeight + GetCaptionHeight; setleri GetRibbonMetric(rmFullHeight) bir çağrı tarafından ayarlandığını ve cRibbonHeightcRibbonHeight = 117; olarak tanımlanan bir sabittir.

Sonunda bunu takip ettiğimi düşünüyorum. TRibbon tarafından yapılan açıklamada, bir published özellik bildirimi var: bu varsayılan olduğu için

published 
    ... 
    property Height default TCustomRibbon.cRibbonHeight; 

, başka herhangi bir değer yukarıda belirtilen GetRibbonMetric çağrısı (TCustomRibbon.Create yukarıda belirtilen bakınız) olmaz anlamına geldiğini görünür ve GetSystemMetric numaralı çağrıdan gelen garip sonuç, 26 hatalı değerinin 'diğer değer' olarak kaydedilmesine neden olur. garip; AM'deki QC'yi günceller. Ek 1: Ek ayrıntılar içeren QC raporunu güncelleyin. Ek: QC raporu opened Mayıs 2012'de, ancak XE5 Güncelleme 1 (kontrol edilen Ocak 2014) olarak çözümlenmemiş gibi görünmektedir.