Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2010
cmagno cmagno is offline
Miembro
 
Registrado: abr 2004
Posts: 16
Poder: 0
cmagno Va por buen camino
Question Llamados a objetos entre formularios

Saludos a todos:

Tengo el siguiente caso: Tengo un Formulario1 que al presionar determinado botón llama a un Formulario2. A su vez, el Formulario2 llama a objetos (en particular TSimpleDataSet) del Formulario1, algo como Formulario1.Query1.Dataset ... etc. El tema es que el Formulario2 puede ser "reutilizado" por muchos formularios que lo llamen... la pregunta es ¿cómo puedo hacer para que Formulario2 haga referencia a los objetos del formulario que lo llama? Los formularios que hacen el llamado en escencia tienen los mismos compenentes TSimpleDataSet.

La idea es que en el Formulario2 se pueda hacer algo como:

FormularioBase.Query1.DataSet... donde FormularioBase puede ser cualquier formulario.

No se si me hago entender lo suficiente. De antemano gracias por la colaboración.
Responder Con Cita
  #2  
Antiguo 19-02-2010
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
Hola,

En mi opinión, tienes un problema de diseño. Formulario2 debería ser totalmente independiente de cualquier otro formulario. Si dicho formulario debe manejar los datos de otros formularios, deja que esos otros formularios le pasen los datos por medio de propiedades.

Por ejemplo, Formulario2 podría tener una propiedad pública DataSet:

Código Delphi [-]
TFormulario2 = class(TForm)
private
  FDataSet: TDataSet;

public
  property DataSet: TDataSet read FDataSet write FDataSet;
end;

Si otro formulario necesita usarlo, haría algo como:

Código Delphi [-]
Formulario2 := TFormulario2.Create;
Formulario2.DataSet := Self.Query1.DataSet;
Formulario2.ShowModal;

Y Formulario2 trabajaría entonces con la variable FDataSet, y no dependería de quién lo llamó.

// Saludos
Responder Con Cita
  #3  
Antiguo 19-02-2010
cmagno cmagno is offline
Miembro
 
Registrado: abr 2004
Posts: 16
Poder: 0
cmagno Va por buen camino
Hola roman. Gracias por la respuesta. Estamos de acuerdo es un problema de diseño... la inquietud surgió porque el Formulario2 tiene muchos DataSet y existen varias copias de Formulario2 (digamos Formulario3, etc.) para cada formulario principal que lo llama. Definitivamente es un problema para el mantenimiento por lo que, ahora que estoy a cargo de la aplicación quería simplificar las cosas. La solución que tengo en mente es utilizar DataModules para evitar que los DataSet se asocien a un formulario en particular... la verdad quería evitar eso porque son muchísimos y debo organizar los DataSource de otros tantos componentes... pero bueno... será mejor que vaya empezando...
Responder Con Cita
  #4  
Antiguo 19-02-2010
Avatar de The_Duke
The_Duke The_Duke is offline
Miembro
 
Registrado: abr 2006
Ubicación: Republica Dominicana
Posts: 48
Poder: 0
The_Duke Va por buen camino
También podrías crear una variable global que indique de que formulario fue llamado e formulario 2 por ejemplo.

Código Delphi [-]
var

  Form1: TForm1;
  form_llama: integer;


procedure TForm1.B1Click(Sender: TObject);
begin
 form_llama:=1;
Form2.ShowModal;
end;


Eso es para llamarlo ahí le especifica si es del 1 y así sucesivamente le vas agregando una identificación a cada uno y en el form2 bastaría con ver con la variable form_llama cual lo llamo
__________________
BS Picture es un visor de imágenes pequeño y útil que incluye todas las características necesarias
Responder Con Cita
Respuesta



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
Reuso de formularios entre MDI y SDI Vlady OOP 4 16-04-2008 23:48:27
Conexión entre formularios mcalmanovici Varios 3 23-06-2006 15:48:06
Mensajes entre formularios Ju2an Varios 2 15-06-2006 19:13:09
Llamados tipo MSN Messenger metalfox6383 Varios 3 13-05-2006 01:09:54
Valores entre formularios mdi ctronx Varios 5 16-06-2004 22:19:01


La franja horaria es GMT +2. Ahora son las 19:42:45.


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