2008-10-29 47 views
26

No soy mucho de una persona de Visual Basic, pero tengo la tarea de mantener una aplicación antigua de VB6. Cada vez que reviso un archivo, el editor reemplazará un montón de nombres de mayúsculas con minúsculas automáticamente. ¿Cómo puedo hacer que esto pare? No quiero tener que cambiarlos a todos, y me duele que estos cambios aparezcan en las "Diferencias" de SourceSafe cuando intento localizar las diferencias REALES.VB6 Editor cambia de mayúsculas y minúsculas.

Lo está cambiando automáticamente en la definición, también: Dim C ya que el control se vuelve oscuro como Control. Dim X & se convierte en Dim x &. Pero no lo hace todo el tiempo; por ejemplo, tres líneas hacia abajo desde Dim x &, hay un Dim Y &, en mayúsculas, que no cambió. ¿Por qué me hace esto?

+0

Reetiquetado como 'vb6' + 'ide' –

+0

Posible duplicado de [Stop Visual Basic 6 de cambiar mi carcasa] (https://stackoverflow.com/questions/1064858/stop-visual-basic-6-from-changing -my-tring) – DaveInCaz

Respuesta

29

Continuando con DJ's answer ...

Y no sólo cambiará el caso de variables en el mismo ámbito de aplicación tampoco.

Cambiará el caso de todas las variables con el mismo nombre en todo el proyecto. Entonces, incluso si se declaran en mayúsculas en un lugar, otro módulo podría tener diferentes variables usando los mismos nombres de variables en minúsculas, haciendo que todas las variables en su proyecto cambien a minúsculas, dependiendo de cuál de las declaraciones se cargó (?) O editado último.

Por lo tanto, las variables C y X cambian de mayúsculas y minúsculas, mientras que Y no lo es, probablemente porque C y X también se declaran en otro lugar de su proyecto, pero en minúsculas, mientras que Y no lo está.

Hay otra mención de ello here, donde en su mayoría parecen preocupados con nombres de variables que entran en conflicto cuando se usa el caso para diferenciar las variables locales de las globales. Terminan buscando prefijos en su lugar.

La única alternativa que se me ocurre es utilizar algún otro editor con capacidades de Visual Basic 6-destacando que hacer su edición ...

+0

Acabo de encontrar una respuesta en: https://stackoverflow.com/questions/1064858/stop-visual-basic-6-from-changing-my-casing Mira la respuesta que comienza con "SIMPLE WAY" from " UsuarioX "... Pegaré aquí la respuesta: MANERA SIMPLE: Regule cada variable en el caso que desee. De lo contrario, VBA lo cambiará de una manera que no es comprensible. 'Dim x, X1, X2, y, Yy como variante ' en una subrutina cambiará TODOS los casos a aquellos en la instrucción Dim – sirboderafael

-1

Debe definirse/declararse en minúsculas. Ubica la declaración y arréglala allí. El IDE siempre cambiará el caso para que coincida con la declaración.

+4

-1 Untrue. VB6 cambia la envoltura del nombre como lo desee, independientemente del alcance y las definiciones explícitas. Justo como otros han dicho. No tiene sentido ir a la definición y arreglarla aquí. Romperá alguna otra definición en diferente alcance. Es bastante aleatorio, dependiendo de qué archivos se tocaron al final. –

+1

-1. No siempre es verdad Si tiene un equipo que trabaja con el control de versiones en el mismo proyecto, VB6 a veces cambia el nombre del casillero cuando ingresa. Cambia la declaración * y * los usos por sus propios motivos. Nunca descubrimos qué lo desencadena para hacerlo. – MarkJ

-1

DJ es perfecto ... VB siempre cambia el caso de las variables para que coincida con la declaración original. Es una 'característica'.

+2

Si tiene el mismo nombre de variable declarado en múltiples ámbitos, pero con una carcasa diferente, cambiará * todos * de ellos hacia atrás y lo forzará según el último archivo editado. –

3

para conseguir más allá de la experiencia dolorosa archivo diff, establezca la opción de VSS en el diálogo de diff hacer comparaciones insensibles a mayúsculas y minúsculas De esa forma solo verás los cambios "reales".

5

Las enumeraciones son aún peores. Obtener el caso incorrecto en cualquier lugar donde se use la enumeración cambia el caso de la definición.

+2

No es solo eso, es cualquier variable con el mismo nombre que un miembro enum. Uf, solo apesta. –

-1

Continuando con excelente respuesta de Mercator ...

lo recomiendo:

  1. Salida todos los archivos (supongo que está utilizando VSS para una aplicación de Visual Basic 6)
  2. hacer una reconstrucción de todo el grupo de proyecto
  3. volver a comprobar de nuevo en VSS

Ahora base que eres el verdadero Rathe diferencias r que los cambios 'automáticos' que VB6 ha intentado aplicar.

+0

Entonces, su solución es: ¿permite que cambie todo lo que quiera (es decir, al azar) y viva con ella? ¡Estupendo! Lo siento. Solo estoy trabajando con código combinado de varios proyectos con diferentes convenciones de nomenclatura. Mis controles (de lo contrario, pequeños) son principalmente un ruido de cambios aleatorios en el nombre de la caja. ¡He tenido suficiente! –

+1

sí, esa es mi recomendación, VB está tratando de cambiar el caso de sus variables por un motivo (no 'aleatoriamente'), si desea ver solo lo que ha cambiado Y desea usar Visual Studio para hacerlo, cree un línea de base primero. –

+0

O use un editor diferente, pero si lo abre en Visual Studio más adelante se encontrará en la misma posición. –

1

Cierre todos los proyectos de VB, abra el archivo de formulario con un editor de texto, cambie el caso de todos los nombres y luego vuelva a abrir el Proyecto con VB IDE.

0

Prevenir VB6 corrección automática para ENUM valora

Como mi regla general Declaro constantes en mayúsculas. Como las enumeraciones son esencialmente constantes, también me gusta declarar valores para enumeraciones en MAYÚSCULAS. Noté que el VB6 IDE también corrige estos automáticamente.

Encontré que el IDE no corrige estos valores cuando se usan números y los guiones bajos '_' en los nombres de los valores.

Ejemplo:

Public Enum myEnum 
    VALUE  'Will be corrected to: Value 
    VALUE1  'Will not be corrected 
    VALUE_  'Will not be corrected 
End Enum 

no sé si esto funciona, en general, y si esto se extiende a nombrar/corrección automática de nombres de variables.

13

Desde siempre encuentro este hilo primero en busca de una solución a la carcasa en mal estado en marcha, aquí es una Simon D propuesto en un related question:

Si sólo necesita carcasa fijar la variable de (por ejemplo, se accidentalmente hizo una variable cOrrectCAse y ahora están por todo el lugar), puede corregir esto para bien añadiendo

#If False Then 
    Dim CorrectCase 
#End If 

al comienzo de su módulo. Si guarda el proyecto y elimina la declaración más tarde, la carcasa sigue siendo correcta.

Uso de Excel VBA que cambian a menudo de forma accidental toda Range.Row-Range.row atenuando descuidadamente una variable dentro de una cierta función row - con la ayuda de una solución de Simon D's puedo arreglar esto ahora.

+0

Esta es la solución. – FuriousFolder

Cuestiones relacionadas