2009-11-19 26 views
5

Beyond Compare (harika bir program) kullanıyorum ve Menü Çubuğunda "Yeni Sürüm Kullanılabilir" etiketi görüntülendiğinde çok etkilendim. Üzerine tıkladım, bir yükleme yeni sürüm kutusu açıldı, yüklü, program kendini yeniden başlattı ve yeni sürüm ve daha fazla etiket yoktu.Delphi'deki Menü Çubuğuna Nasıl Bir TLabel Eklerim?

Bunun harika bir özellik olduğunu düşündüm. Etiket, kullanıcının bunu özleyemeyeceği menü çubuğunda belirgin bir şekilde var. Güncelleme prosedürünü zaten aldım, bu yüzden tek yapmam gereken etiketi eklemekti. Bu kolay olmalı. The Label Where I Want It http://www.beholdgenealogy.com/img/tlabel.jpg

... Yanlış:

İşte onu istiyorum etiketli. Orada etiket ekleyemedim. Menü çubuğu ve üstündeki kontrol alanı görsel bileşenler için kapalı alan gibi görünüyor. Orada bir tane yerleştiremedim.

Ama bunu yapabileceğimi biliyorum, çünkü Beyond Compare bir Delphi programıdır.

Menü Çubuğuma bir TLabel koymak veya en azından Menü Çubuğunda doğru konumda görünmesini sağlamak için ne yapmam gerektiğini söyleyen var mı?

Başvuru için, ben Delphi 2009.


Sonuç kullanın: Christopher doğru Ötesi yapan insanları karşılaştırın anladım gibi görünüyor. Menü öğesini uygulamaya karar verdim, ancak onun "sahip olunan" çözümünün özelleştirilmesi olmadan. Bu yüzden mavi kalın alt çizgi köprüsünü alamıyorum, ama aynı zamanda sahibinin atladığı tüm otomatik şeyleri (Vista stili gibi) kaybetmiyorum.

Menü öğesini sağa kaydırmak için, "" altyazısı "" olan ve devre dışı bırakılan "Yardım" dan sonra bir öğe ekledim.

Teşekkürler, Christopher. Bir Etiket olmalı diye düşünmüştüm ama bunu gördün.

+1

Beyond Compare öğesinin yerel menüyü (TMainMenu) kullandığını biliyor musunuz? Belki de bazı üçüncü parti menüsü (Toolbar2000, DevEx, ...). –

+0

Ulrich: Beyond Compare kullanımının ne olduğunu bilmiyorum. Sadece Delphi ile geliştirildiğini biliyorum. – lkessler

+1

Delphi ile yapılmışsa, kaynakları inceleyerek hangi bileşenin kullanıldığını bulmak çok kolay olmamalıdır. – Vegar

cevap

13

Bunun bir etiket olduğundan emin misiniz?

Programı kullanmamıştım, ancak bir menü öğesi olabilir, 'sahip olun' olarak ayarlanmış ve bir bağlantıya benzeyecek şekilde boyanmış olabilir. (Delphi 7 yapılır)

http://sirmonkeys.com/images/updatelink.png
sonra

procedure TForm1.MYITem1DrawItem(Sender: TObject; ACanvas: TCanvas; 
    ARect: TRect; Selected: Boolean); 
begin 
    acanvas.Font.Style := [fsUnderline,fsbold]; 
    acanvas.Font.color := clblue; 
    acanvas.Brush.Style := bsClear; 
    acanvas.TextOut(arect.left+1,arect.top+1,'Link to Update...'); 
end; 

procedure TForm1.MYITem1MeasureItem(Sender: TObject; ACanvas: TCanvas; 
    var Width, Height: Integer); 
begin 
    width := 100; 
end; 

ve ya sahip bir ImageListMainMenu1.Images atanmış veya true için MainMenu1.OwnerDraw ayarlayın. Karşılaştırmanın Ötesi Uygulaması'nın gerçekte bir TLabel olması,

+0

Bu mümkün olabilir. Bunu deneyeceğim. – lkessler

+0

Şimdi eminim haklısın. Teşekkürler. P.S., hızlandırıcılarım (harfler altındaki alt çizgiler) ortadan kayboldu. Ama senin örneğin onları içeri aldı. Onları nasıl geri alabilirim? Zaten kendi başlıklarının bir parçası olarak var. – lkessler

+1

Hızlandırıcıları, menüyü etkinleştirmek için klavyeyi kullanacağınız gibi hareket ettiğinizde otomatik olarak görünür, bu da Alt tuşuna basmak anlamına gelir. Christopher, görüntüyü yapmak için muhtemelen Alt + PrntScr tuşlarına bastı, bu nedenle hız göstergeleri belirdi. Bu yaklaşık 10 yıldır varsayılan Windows davranışı olmuştur. Her zaman görünür olmasını istiyorsanız, ekran kontrollerinizi OS kontrol panelinde ayarlayın. –

2

. Araç Çubuğu 2000'i menülerimiz ve araç çubuklarımız için kullanıyoruz, bu nedenle menüde bir kontrolün doğrudan yerleştirilmesi (doğru bir arka plan ile) destekleniyor ve sağa dayalı menü öğelerini desteklemesi avantajına sahip.

+0

Teşekkürler, Craig. Yani aslında bir etiket. Teknik olarak doğru cevabı buldunuz (Araç Çubuğu 2000'i kullanarak), ancak bunu renklendirilmemiş bir menü öğesi olarak uyguladım, dolayısıyla kabul edilen cevabı Christopher'la birlikte bırakacağım. StackOverflow'da olduğunu bilmiyordum. Senin Ötesinde Karşılaştır. Sürümlerimi karşılaştırmak, web sitemi güncellemek ve yedeklerimi yapmak için kullanıyorum. – lkessler

İlgili konular