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 08-06-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por dec
Federico, ¿cómo es posible que si declaro e implemento un método dentro de un bloque "published" de un formulario, al hacer uso del código de más arriba no me aparezca listado dicho método y sí todos los demás ("OnCreate", "OnShow", etc., etc., etc.)? ¿Sabes algo al respecto? ¿Alguien sabe algo?
¿Hablas de en tiempo de ejecución o del "Code Insight"?
Si es del Code Insight, tenes en cuenta que por defecto aparece los métodos, propiedades y eventos ordenados por Scope y no alfabéticamente?

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #2  
Antiguo 08-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Gracias por responder Federico.

Cita:
Si es del Code Insight, tenes en cuenta que por defecto aparece los métodos, propiedades y eventos ordenados por Scope y no alfabéticamente?
Esa me la apunto, que no me la sabía. Empero, yo me pregunto porqué no puedo obtener en "tiempo de ejecución" el nombre del método que declaro como "published", es decir, de la misma forma que obtengo el nombre de los otros métodos del objeto (formulario, en este caso), como "OnCreate", "OnShow", etc.

Es que se me hace muy raro, pero, evidentemente, tiene que haber una explicación que lo aclare todo, vamos, digo yo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 08-06-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
No te entiendo.. no los ves cómo?.. usando Rtti??.. tenes el código??
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 08-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Federico
No te entiendo.. no los ves cómo?.. usando Rtti??.. tenes el código??
Claro, el que más arriba he mostrado:

Código Delphi [-]
uses
  TypInfo;

procedure TForm1.Button1Click(Sender: TObject);
var
  i, numProps: integer;
  propsInfo: PPropList;
begin
  numProps := GetPropList(Self, propsInfo);
  for i := 0 to Pred(numProps) do begin
    if ( propsInfo^[i].PropType^.Kind = tkMethod ) then
    begin
      Memo1.Lines.Add(propsInfo^[i].Name);
    end;
  end;
end;

Ese código lista en un "Memo" todos los métodos del formulario en que se encuentra,... ¿todos? No, un irreductible método que yo mismo declaro e implemento en el bloque "published" del formulario no aparece listado en el "Memo1".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-06-2006
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 dec
Ese código lista en un "Memo" todos los métodos del formulario en que se encuentra,... ¿todos? No, un irreductible método que yo mismo declaro e implemento en el bloque "published" del formulario no aparece listado en el "Memo1".
Podría decirte que lo que pasa es que tal método no está publicado por más que aparezca en la sección published. Claro que la respuesta no dice nada pero es que los formularios son bestias distintas a otros objetos al menos en lo que al IDE se refiere. Y como el IDE y su inspector de objetos se basan en RTTI supongo, aunque no aseguro, que tiene relación una cosa con otra.

En una componente, las propiedades- que no métodos: OnCreate no es un método es una propiedad -publicadas quedan registradas en el IDE al momento de registrar el paquete con RegisterComponents. Pero si añades propiedades publicadas a un formulario, éstas no las detecta el IDE, es decir, no se publican así nada más, puesto que para empezar no hay ningún punto donde uses RegisterComponents.

Para registrar un formulario con el IDE, y que, por tanto, el inspector de objetos publique sus propiedades, necesitas usar RegisterCustomModule. Los detalles puedes verlos en la página de gexperts en la sección de Open Tools. Busca el apartado que dice How can I add published properties to a TForm descendent?.

No sé hasta qué punto tenga que ver una cosa con la otra pero no pierdes nada investigándole.

// 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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como Obtener la lista de alias quetzal Conexión con bases de datos 13 09-06-2015 20:16:57
Obtener lista de ocx registrados rsantosr API de Windows 0 08-10-2005 17:50:47
Obtener la lista de canciones de un Cd mp3 Diana Varios 1 30-11-2004 02:45:26
Obtener Handle de un objeto senpiterno Varios 6 22-04-2004 15:21:40
Obtener lista default charactes set mosorio Conexión con bases de datos 0 17-12-2003 13:49:07


La franja horaria es GMT +2. Ahora son las 18:58:58.


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