Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2004
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡ClassNameIs es sensible al tamaño!

¡Buen día a todos!

En vista de lo intrigante de este caso, decidí escudriñar un poco en la mejor referencia que hay de Delphi: el código fuente de su biblioteca.

GetClass llama indirectamente al método clase ClassNameIs heredado de TObject. Me di cuenta que éste es sensible al tamaño. De hecho si hago esta prueba:
Código:
RegisterClasses ([TForm1]);
C := GetClass ('TForM1');
C obtiene un valor Nil, porque se llama a GetClass con un parámetro que no es exactamente el mismo nombre que se le dio a la clase registrada.

No estoy seguro si en Delphi 5 era insensible al tamaño (habría que ver el código de TObject.ClassNameIs en la unidad System.pas de Delphi 5). Pero esa pudiera ser la causa del problema aquí planteado.

Si este no fuera el caso, todavía cabe la posiblidad de que GetClass devuelva Nil por algo que encontré en el método TRegGroups.GetClass de la unidad Classes.pas:
Código:
function TRegGroups.GetClass(const AClassName: string): TPersistentClass;
var
  I: Integer;
begin
  Result := nil;
  for I := 0 to FGroups.Count - 1 do
    with TRegGroup(FGroups [ I ]) do
    begin
      if Active then Result := GetClass(AClassName);
      if Result <> nil then Exit;
    end;
end;
Tal vez ese If Active evalúa a False.

Seguiremos investigando .

Al González .

Última edición por Al González fecha: 28-02-2004 a las 03:49:58.
Responder Con Cita
  #2  
Antiguo 28-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Al González
Me di cuenta que éste es sensible al tamaño.
No en mi caso (Delphi 7). ¿Qué versión manejas?

Cita:
Empezado por Al González
De hecho si hago esta prueba:
Código:
RegisterClasses ([TForm1]);
C := GetClass ('TForM1');
C obtiene un valor Nil
Misma prueba y C <> nil.

// Saludos
Responder Con Cita
  #3  
Antiguo 28-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por yo mismo
La pregunta es si éstas unidadas están en el uses de alguna otra unidad en tu proyecto.
Esta pregunta nunca se respondió.

¿De casualidad no estarás tratando de cargar dinámicamente los paquetes?

De ser así acuérdate de que debes usar la opción "Build with runtime packages"

// Saludos
Responder Con Cita
  #4  
Antiguo 28-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
[quote=Al González
Me di cuenta que éste es sensible al tamaño.[/quote]

En primer lugar yo diria sensible a Mayusculas y minusculas. Al principio no sabia exactamente lo que querias decir.

He realizado la prueba en delphi 4 c/s y c <> nil;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 01-03-2004
glp1 glp1 is offline
Registrado
 
Registrado: feb 2004
Posts: 9
Poder: 0
glp1 Va por buen camino
Buenas, parece que he encontrado una posible solucion:

initialization
ActivateClassGroup(Tcontrol);
RegisterClasses( [ TFClass1, TFClass2 ]);

El sistema permite que las clases puedan ser cargadas y grabadas para ser registradas en grupos separados. Esto permite distinguir al IDE entre las clases VCL y CLX. Esta llamada activa un grupo de clases que contiene la clase especifica.
Aunque yo en la app solo utilizo VCL, se esta haciendo un lio con las clases VCL y CLX.

Vamos, si utilizo ActivateClassGroup(TControl), se evita el problema.
Gracias a todos.
Responder Con Cita
  #6  
Antiguo 01-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Ah! Muy interesante. Por fin comienza a aparecer cierta lógica en este asunto. No sé porque se está confundiendo con las componentes, yo jamás uso nada de Kylix y me limito a desactivar las componentes desde que instalo Delphi. ¿Tú las tienes activadas?

// Saludos
Responder Con Cita
  #7  
Antiguo 01-03-2004
glp1 glp1 is offline
Registrado
 
Registrado: feb 2004
Posts: 9
Poder: 0
glp1 Va por buen camino
si, pero los he desactivado y sigo igual, tengo que poner de todas formas el ActivateClassGroup.
Seguiremos en el intento...
Responder Con Cita
  #8  
Antiguo 01-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Buscando en los grupos de noticias de borland encontré lo que tú ya descubriste; estos grupos sirven para discriminar entre las componentes VCL y las componentes CLX. Menciona ahí que posiblemente alguna unidad en tu código esté haciendo referencia a las unidades CLX y de ahí que se esté activando el grupo para CLX. Quizá cuando iniciaste el proyecto colocaste alguna componente CLX y se quedo la referencia en alguna cláusula uses.

// Saludos
Responder Con Cita
  #9  
Antiguo 03-03-2004
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Buen día a todos!


Cita:
Empezado por roman
...No en mi caso (Delphi 7). ¿Qué versión manejas?...
La prueba que menciono la realicé también con Delphi 7 .


Cita:
Empezado por jachguate
...yo diria sensible a Mayusculas y minusculas...
Bueno, en realidad la traducción original de case sensitive (hablando de caracteres) es "sensible a la caja", o "sensible al tamaño de la caja". Término tipográfico que existe desde la invención de la imprenta. Pero algunos autores utilizamos el término sensible al tamaño, el cual sigue siendo correcto pero un poco más práctico.


¡Un abrazo!

Al González .
Responder Con Cita
  #10  
Antiguo 04-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
No pretendo rebatir lo que decis... apreciado Al, sobre todo porque eso de las letras a mi no se me da mucho (imagino que ya lo has notado en mis participaciones aqui...) simplemente no me pareció claro el término, aunque sea correcto, evidentemente es poco usual (al menos en mi barrio )

hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #11  
Antiguo 04-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Al González
Bueno, en realidad la traducción original de case sensitive (hablando de caracteres) es "sensible a la caja", o "sensible al tamaño de la caja".
Tan sólo por el placer de una amena plática de café...

Estoy de acuerdo contigo en cuanto a lo de "caja" (aunque preferiría "gaveta") más no a lo de "tamaño"- que da origen a tu traducción. El término "case", como bien dices, se originó en contextos tipográficos y se refiere a la caja donde se guardaban los moldes de la letras. Pero más que ser de distintos tamaños, las letras mayúsculas se colocaban en la caja o gaveta superior mientras que las minúsculas en la gaveta inferior. De ahí los términos "UpperCase" y "LowerCase". Así pues, siguiendo una traducción como la que propones, el término sería más bien "sensible a la posición de la caja (o gaveta)"



Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:17:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi