2011-10-13 4 views
6

. Hoy he encontrado una pista "extraña": el método de anulación xxxx debe coincidir con el caso del antecesor aaaa. La solución era declarar el nombre del método exactamente como en el ancestro ... Creo que esto es algo que descansaba en el compilador desde el compilador Delphi.Net ...Parece que a veces Delphi distingue entre mayúsculas y minúsculas. El método de sustitución debe coincidir con el caso del antecesor

declarando el método exactamente como en el ancestro hizo el compilador 'silencio'. Hay otras sugerencias/advertencias "sensibles a mayúsculas y minúsculas" en Delphi 2006 y versiones posteriores.

+4

no es realmente 'mayúsculas y minúsculas', sólo dice que es un buen hábito de usar el mismo caso. –

+5

Una cosa que siempre ha sido sensible a las mayúsculas y minúsculas en Delphi es el nombre del procedimiento 'Register' en el paquete designtime. Pero no hay ninguna pista o advertencia si lo haces mal, simplemente no obtienes el resultado esperado (el componente no se muestra). – ain

+0

Tal vez un comentario '// compile por favor! (sin sugerencias!) 'arriba de esta declaración de método ayuda;) – mjn

Respuesta

12

Es una pista que se utiliza para proteger su código cuando coopera con un código de terceros.
Esta sugerencia se introdujo con la adición de Delphi para .net, porque algunas otras plataformas .net distinguen entre mayúsculas y minúsculas.

Tenga en cuenta que la sugerencia no implica ninguna sensibilidad de la caja en la parte de Delphi.
Solo en el punto 1 a continuación, Delphi distingue entre mayúsculas y minúsculas, el punto 2 es un artefacto de la forma en que el compilador Delphi llama a la función sensible a mayúsculas GetProcAddress() en la API de Windows. comportamiento sensible

Caso en Delphi componentes

1-Registro de
No sé de ningún otro indicios de que entre mayúsculas y minúsculas, pero tenga en cuenta que cuando usted escribe sus propios componentes y que desea registrarlos, la función de registro en el que se declara necesidad escribirse así:

procedure Register; <<-- Leading capital required. 

Si no se Delphi no añadir su nueva componente.

2-Importación de funciones externas

Como se ha dicho por David, al importar las funciones externas, el caso exacto utilizado en la DLL debe ser preservado.

pistas individuales no se pueden desactivar
Tenga en cuenta que no se puede desactivar una pista específica: Can specific Delphi hints be disabled?

+2

Es técnicamente la función API de Windows GetProcAddress que distingue entre mayúsculas y minúsculas. –

Cuestiones relacionadas