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

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 20-02-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
En este caso, todo cambia radicalmente:

un form Mdichild no lo puedes poner modal, así que creamos un evento, y al cerrar la ventana de consulta, miramos si alguien está esperando por ese evento.

Código Delphi [-]
type
  // defino mi evento personalizado
   type  TinformarA: procedure (const codigoSeleccionado:integer) of object;

  TFormaConsultas = class(TForm)
  private
    FInforma:TinformarA;
    FCodigo: Integer;

  public
    property Codigo: Integer read FCodigo write FCodigo;
    property InformarA:TinformarA read Finforma, write Finforma default nil;
  end;

En el Onclose de esta ventana:
if Assigned(Finforma) then Finforma(Codigo);

Form1, Form2 y Form3 harían lo siguiente:
Código Delphi [-]
  FormConsulta := TformaConsulta.Create(...);
  FormConsulta.InformarA := llamamePepe;

por supuesto, Form1, Form2 y Form3 deben tener un prodecimiento: LlamamePepe;
Código Delphi [-]
procedure Tform1.llamamePepe(const Codigo:integer);
begin
   showmessage(' El form de consulta se ha cerrado y ha seleccionado' +
 inttostr(codigo));
end;

Atención!!!: no se informa a las 3 ventanas, solo a la ultima que haya llamado a FrmConsulta.

Tambien se me ocurre que ese evento se lance cuando se cambia el codigo de cliente en el Formconsulta, esta rallada quedaría así:

Código Delphi [-]
// defino mi evento
type  TinformarA: procedure (const codigoSeleccionado:integer) of object;

type
  TFormaConsultas = class(TForm)
  private
    FInforma:TinformarA;
    FCodigo: Integer;
    procedure SetCodigo(Value:integer);
  public
    property Codigo: Integer read FCodigo write SetCodigo;
    property InformarA:TinformarA read Finforma, write Finforma default nil;
  end;

procedure TformaConsulta.SetCodigo(value:integer);
begin
  if Value <> Fcodigo then
  begin
     Fcodigo := Value;
     if assigned(Finforma) then Finforma(Fcodigo);
  end;
No sé si me he rallado un poco pero la cosa funciona

Saludos
Responder Con Cita
 


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 16:31:42.


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