Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   3 botones para acceder a un mismo formulario. (https://www.clubdelphi.com/foros/showthread.php?t=20204)

VRO 08-04-2005 12:38:38

3 botones para acceder a un mismo formulario.
 
Hola que hay??, os explico cual es mi duda ya que no la he dejado muy clara en el titulo,

tengo 4 formularios (Form1, Form2, form3,Form4) y en los 3 primeros tengo 3 botones, 1 en cada uno de ellos, atraves de ellos accedo al formulario 4.

Ahora viene el tema, segun cual de los botones pulse en el formulario 4 hago una cosa distinta y su resultado se desemboca en cada uno de los formulario que le han llamado, yo para resolver esto siempre lo he hecho con variables globales, en los 3 formulario declero una variable(a1,a2,a3) y en el Form4 hago :

Código Delphi [-]

if form1.a1=1 then
  //hago aqui las cosas
end;

if form2.a2=1 then
 //hago las cosas
end;

  ..............

Me parece muy feo hacerlo de esta forma. Si alguien sabe otra forma mas professional de hacerlos, ruego me lo digan.

Gracias por prestarme su tiempo.

yusnerqui 08-04-2005 14:03:31

Definir un constructor
 
Pues te pudieras definir un constructor para tu form4

Código Delphi [-]
 Constructor CreateDiferente(AOwner: TComponent;FormLLama : Byte);

Implementation
 
Constructor TForm4.CreateDiferente(AOwner: TComponent;FormLLama : Byte);
begin
  Inherited Create (AOwner);
  Case  FormLLama of
    1:'Hago esto';
    2:'Hago lo otro'
    3:'Hago lo de más allá'
  end;
  showmodal;
end; 
 
//ahora para crear tu forma desde una de las otras puedes decir.
  with TForm4.CreateDiferente(Application,1) do
     free;

Espero que esto te guste, y sea lo que buscas.

Saludos Yusnerqui

VRO 08-04-2005 16:56:27

una preguntina mas
 
Yo en mi caso tengo un DBGrid si dependiendo de que formulario En el evento OnClick del DBGrid hago una cosa distinta, ¿también me sirve lo que me has expuesto?


Muchas gracias por tu rapida respuesta, la voy a probar ahora mismito y te cuento, a ver si resulta lo que yo quiero

roman 08-04-2005 17:04:30

Aunque la pregunta es un tanto vaga ya que no das detalles acerca de la funcionalidad de Form4, es posible que te convenga usar herencia visual. Partes de un formulario base con la funcionalidad común y para cada caso derivas un formulario con la funcionalidad específica (el OnClick del DBGrid por ejemplo). Cada uno de los otros formularios construye la instancia correspondiente. De esta manera liberas a un sólo formulario (Form4) de lidiar con varios comportamientos ya que cada comportamiento específico está en su propio formulario.

// Saludos

VRO 08-04-2005 17:21:14

os explico mas
 
Me extiendo más en mi expliación, los tres formularios de los que he hablado antes corresponde a tres tablas que trabajan con (Form1) datos de clientes, (Form2) datos de empresas, (Form3) datos de habitaciones, como podeis intuir se trata de la gestión de un pequeño hotel, en estos 3 formularios tengo en cada uno un boton de busqueda que llama al form4 , que consta de un DBGrid. Segun de que formulario llame el DBGrid se carga con lo datos de una tabla y en el evento ONClick del DBGrid devuelvo al formulario que ha realizado la llamada los datos del lo pedido.

Siento haber sido tan rancia en mi expliación espero que ahora me entendais mejor.

Gracias

PD: Probaré esta opcion Roman, al igual que la opción anterior estoy en ello.

roman 08-04-2005 17:29:04

Pero sigues sin explicar qué es lo que hace Form4. Sí, ya sé que llena de datos pero ¿de qué naturaleza son éstos? Porque da la impresión de que estás tratando de usar un mismo formulario para funciones muy disímiles.

// Saludos

VRO 08-04-2005 17:38:04

¿A qué te refieres con q de que naturaleza son los datos?,

En el Form4 se visualizan los datos de las tablas para cada caso, segun pulses un boton de una formulario, en el el usuario elije la fila que desea mostrar en el formulario que es llamado y cuando pulsas en la fila deseada he introduce los datos en los Edit del formulario que le llama y así pretendo realizar la busqueda, son fiferentes datos para cada tabla pero la función del formulario es la misma en cada caso, realizar la busqueda

VRO 08-04-2005 17:52:56

Por si os aclara algo más utilizo interbase 6 , Delphi6 y utilizao dataset para sacr los datos de las tablas.

canelita 05-09-2007 00:11:56

Es muy buena tu idea de llamar a un cuarto formulario par la busqueda de datos se crea un formulario estandar se mandan a l formulario los parametros de las tablas y de los campos por los que se quiere buscar.

Estamos trabajando creo que en lo mismo estoy haciendo un programa para un hotel, te pregunto para insertar datos que componente estas usando? un TIbtable o un TibDataset??

maeyanes 05-09-2007 02:08:32

Hola...

Si te fijas, la última respuesta a este hilo fue ya hace más de dos años... ;)

Sobre tu pregunta, si estás usando Interbase/Firebird lo más recomendable es usar TIBDataSet para insertar, editar y/o eliminar datos de una tabla...


Saludos...


La franja horaria es GMT +2. Ahora son las 23:00:43.

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