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 30-10-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.442
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Tal vez no lo he entendido bien, pero creo que esto te daría True si en tu caso los elementos creados derivan de un TForm y False si derivan de un TDataModule.


Código Delphi [-]
   ...

    if ClassCReport.InheritsFrom(TForm) then
      Memo1.Lines.Add('FORMULARIO')
    else if ClassCReport.InheritsFrom(TDataModule) then
      Memo1.Lines.Add('DATAMODULE');
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 30-10-2018
juniorSoft juniorSoft is offline
Miembro
 
Registrado: abr 2005
Posts: 178
Poder: 22
juniorSoft Va por buen camino
Hola Nefttali

Disculpa si no lo he descrito bien.

Lo que sucede es que los formularios por defecto tienen la propiedad Visible = True y al utilizar ClassCReport.Create(Self) se muestran inmediatamente antes de hacer cualquier cosa, y lo que deseo evitar es que se haga un parpadeo al mostrarse por unos segundos el formulario antes de mostrar el diseñador de reportes porque luego con la instancia ya los puedo poner invisible. Este método es genérico para modificar los reportes que estén contenidos tanto en módulos de datos como en formularios y que dichos reportes dependen de los dataset u otros componentes asociados que están contenidos también en dichos módulos de datos o formularios.

Para ello cree este método genérico que pasandole la clase de un Modulo de datos o un formulario lo instancia y el nombre del reporte que deseo modificar.

Los reportes están guardados en un directorio y los ubico utilizando una ruta que les asigno en la propiedad .EngineOptions.TempDir del frxReport en cuestión.

Como más arriba explique puedo cambiar en modo diseño la propiedad visible de los formularios a false pero es que esta instanciación con los formularios invisibles solo la necesito para configurar los reportes y guardar su modificación todo en runtime. y si lo hago de esta manera entonces tengo inconvenientes cuando voy a utilizar los formularios para la función que están definidos por que hago ciertos procesos en el método show del formulario que aunque ponga la propiedad visible de nuevo antes de hacer dichos procesos, estos no realizan el trabajo como antes.



Saludos,
Responder Con Cita
  #3  
Antiguo 30-10-2018
juniorSoft juniorSoft is offline
Miembro
 
Registrado: abr 2005
Posts: 178
Poder: 22
juniorSoft Va por buen camino
Por ejemplo con RTTI he visto ejemplos y lo he adaptado pero RTTI se aplica a la instancia de la clase no a la clase

Código:
procedure TMDConfigReportes.FormInvisible(ClassCReport: TComponentClass);
var
  VCtx : TRttiContext;
  VType: TRttiType;
  VProp: TRttiProperty;

begin
   VCtx := TRttiContext.Create;
   try
     VType := VCtx.GetType(ClassCReport);
     VProp := VType.GetProperty('Visible');
     VProp.SetValue(ClassCReport, False); //Aquí daría un error de memoria porque ClassCReport es una clase no una instancia de una clase

   finally
      VCtx.Free;
   end;
end;
Responder Con Cita
  #4  
Antiguo 31-10-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.442
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Tal como comentas, la propiedad no se puede modificar en una referencia a clase sino en una instancia.
El código que te había puesto era para utilizarlo justo después de realizar el Create (de la instancia).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 31-10-2018
juniorSoft juniorSoft is offline
Miembro
 
Registrado: abr 2005
Posts: 178
Poder: 22
juniorSoft Va por buen camino
Cita:
Tal como comentas, la propiedad no se puede modificar en una referencia a clase sino en una instancia.
El código que te había puesto era para utilizarlo justo después de realizar el Create (de la instancia).
Ok, pero en realidad no saber si es un Form o un DataModule después de instanciada la clase ya que el efecto se ha dado, el error aunque no tan grave es que solo con el create de un form sin hacer show este se visualiza y produce la visualización del formulario antes de poder ponerlo invisible que con los datamodules esto no ocurre por su naturaleza.

A Delphi cuando no se le especifica a un formulario explicitamente la propiedad visible a false este no la crea en su archivo DFM y en realidad aunque pueda tener acceso a modificar la clase tendría que crear la propiedad e igualarla a false.

De todas formas no es tan grave el efecto.

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
habilitar una clase antes de su uso en un componente José Luis Garcí OOP 3 09-12-2013 12:55:48
Acceder modificar propiedades publicas de una clase desde otra unidad nsd OOP 1 08-08-2013 04:20:48
Crear una clase y asignar objetos como propiedades leanfreue OOP 4 13-04-2007 00:08:33
Entrar a Propiedades Tchar en runtime ? Pascual Montes Gráficos 0 06-12-2004 19:05:10
Como puedo Modificar los valores de las propiedades de un ejecutable DML Varios 4 07-05-2003 21:39:03


La franja horaria es GMT +2. Ahora son las 11:49:37.


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