2009-06-24 6 views
5

Birkaç VB6 uygulamasını sürdürmem gerekiyor ve numaralandırma söz konusu olduğunda garip bir sorunla karşılaştım. VB6'daki Intellisense'nin çalışmasının, değişken ismimin String olarak Dim Abraxis olarak tanımlanması ve kodlama sırasında abraxis yazması halinde, IDE kelimeyi terkettiğim sırada Abraxis'e değiştirir. Ancak, ben bulduk ben mesela bu kadarını bir numaralandırma, varsa:VB6 IDE numaralandırma durumlarımın durumunu değiştiriyor

Public Enum tiErrorEnum 
    tiNone = 0 
    tiWarning 
    tiError 
    tiDupDoc 
End Enum 

ve ben için gövdeyi bekliyor böyle

ErrorNum = tinone 

olarak yaptığı açıklamada çeteleler birini kullanın IDE tarafından düzeltilmeli, tinon'u tiNone'a dönüştürmez, ancak enum üyesinin defini tinone olarak değiştirir! Tam tersi!

Bir çözüm var mı?

cevap

12

Evet, var. Bu biraz garip görünüyor ve muhtemelen kodunuzda neden yaptığınız hakkında yorum yapmak istersiniz, böylece gelecekteki devler bu konuda şaşırtmazlar, ama burada yapmak istediğiniz şey. Derleyicileri bir derleyici yönerge kod bloğu içinde Genel öğeler olarak ekleyin (böylece derleyici bunu göremez). Bunu tercihen, aşağıdaki gibi numaralandırma bildiriminin hemen altında yapmalısınız:

Basit. IDE, numaralandırma adlarını doğru bir şekilde tanır ve tutar ve derleyici bloğu yok sayar.

+0

+1 - Keşke bunların hepsini yıllar önce düşündüm – Kev

+0

Bunun olduğunu gördüm ve etrafta nasıl çalışacağını asla anlayamadım. Çözümünü sev, çok hackish. –

+0

@Manuel, Yorum için teşekkür ederim, ancak kredinin neden olduğu kredi: Bunu, 1 yıldan daha akıllı olan başka bir devinden öğrendim. – Cyberherbalist

1

Bu, editördeki bir hatadır. Ben bir intelliense kullanmak yerine bir enum adını yazarsanız, bildirimde enum değer adının durumunu değiştirir hatırlıyorum.

1

hile her zaman numaralandırma nitelemek için:

tiErrorEnum.tiDupDoc 

IntelliSense sonra doğru nokta bastıktan sonra numaralandırma listelenir. Numaralandırmanın iyi adlandırılmış olması durumunda kodun okunabilirliğine de yardımcı olacağını düşünüyorum.