Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2022
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Abrir mismo formulario con diferentes parametros

Muy buenas a todos.
Tengo la siguiente consulta.

Necesito abrir un formulario MDI , poder pasarle un parametro y asignarlo a un campo edit del mismo.
Dicho form puede llegar a abrirse hasta 4 veces y con diferentes parametro.
La idea es tener un parametro donde le pase un numero de telefono ( tomado del un caller id ) y abrir este formulario pasandole ya ese numero de telefono capturado y abra un nuevo formulario ya con
ese telefono capturado y asignado a un edit.

La primera vez que es abierto el formulario dicho parametro esta vacio, tengo un timer esperando la captura telefonica y cuando entra una llamada, la idea es abrir el mismo formulario en otra ventana
pero con el telefono capturado, se entiende ?

Muchas gracias por las sugerencias y opiniones.

Saludos
Responder Con Cita
  #2  
Antiguo 22-02-2022
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si entendí bien, un modo sería:

MDIChild:
Código Delphi [-]
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

const
   WM_AFTER_SHOW = WM_USER + 301;

type
  TMDIChild = class(TForm)
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    FParametro: string;
    procedure WmAfterShow(var Msg: TMessage); message WM_AFTER_SHOW;
  public
    { Public declarations }
    property Parametro: string read FParametro write FParametro;
  end;

var
  MDIChild: TMDIChild;

implementation {$R *.dfm}

procedure TMDIChild.FormShow(Sender: TObject);
begin
  PostMessage(Self.Handle, WM_AFTER_SHOW, 0, 0);
end;

procedure TMDIChild.WmAfterShow(var Msg: TMessage);
begin
  Edit1.Text := Parametro;
end;

procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

MDIForm:
Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TMDIForm = class(TForm)
    Panel1: TPanel;
    Button4: TButton;
    Button3: TButton;
    Button2: TButton;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
    procedure CallMDIChild(const nro: Integer);
  public
    { Public declarations }
  end;

var
  MDIForm: TMDIForm;

implementation {$R *.dfm}

uses Unit2;

procedure TMDIForm.CallMDIChild(const nro: Integer);
begin
  MDIChild := TMDIChild.Create(Self);
  MDIChild.Parametro := IntToStr(nro)
end;

procedure TMDIForm.Button1Click(Sender: TObject);
begin
  CallMDIChild(111);
end;

procedure TMDIForm.Button2Click(Sender: TObject);
begin
  CallMDIChild(222);
end;

procedure TMDIForm.Button3Click(Sender: TObject);
begin
  CallMDIChild(333);
end;

procedure TMDIForm.Button4Click(Sender: TObject);
begin
 CallMDIChild(444);
end;

end.

Salida del ejemplo:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 22-02-2022
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Excelente ecfisa !!!

Justamente eso es lo que necesitaba, tenia idea de que habia que redeclararlo pero no sabia como.

Muchas gracias !!

Saludos
Responder Con Cita
  #4  
Antiguo 22-02-2022
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Si me lo permite, expongo una variación.

Código Delphi [-]
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TMDIChild = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent; AParametro:String);
  end;

var
  MDIChild: TMDIChild;

implementation

{$R *.dfm}

constructor TMDIChild.Create(AOwner: TComponent; AParametro:String);
begin
     inherited Create(AOwner);

     Edit1.Text := AParametro;
end;

procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     Action := caFree;
end;

end.

Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TMDIForm = class(TForm)
    Panel1: TPanel;
    Button4: TButton;
    Button3: TButton;
    Button2: TButton;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
    procedure CallMDIChild(const nro: Integer);
  public
    { Public declarations }
  end;

var
  MDIForm: TMDIForm;

implementation {$R *.dfm}

uses Unit2;

procedure TMDIForm.CallMDIChild(const nro: Integer);
begin
  MDIChild := TMDIChild.Create(Self, IntToStr(nro));
end;

procedure TMDIForm.Button1Click(Sender: TObject);
begin
  CallMDIChild(111);
end;

procedure TMDIForm.Button2Click(Sender: TObject);
begin
  CallMDIChild(222);
end;

procedure TMDIForm.Button3Click(Sender: TObject);
begin
  CallMDIChild(333);
end;

procedure TMDIForm.Button4Click(Sender: TObject);
begin
 CallMDIChild(444);
end;

end.

Saludos cordiales
Responder Con Cita
  #5  
Antiguo 22-02-2022
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Otra duda , es posible que el mismo mdichild se llame a si mismo con los parametros como uds indican ??
Responder Con Cita
  #6  
Antiguo 23-02-2022
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si por llamarse te refieres a crearse, podrías hacerlo de este modo:

MDIForm:
Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TMDIForm = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MDIForm: TMDIForm;

implementation   {$R *.dfm}

uses Unit2;

procedure TMDIForm.Button1Click(Sender: TObject);
begin
  TMDIChild.ShowChild(IntToStr(111));
end;

procedure TMDIForm.Button2Click(Sender: TObject);
begin
  TMDIChild.ShowChild(IntToStr(222));
end;

procedure TMDIForm.Button3Click(Sender: TObject);
begin
  TMDIChild.ShowChild(IntToStr(333));
end;

procedure TMDIForm.Button4Click(Sender: TObject);
begin
  TMDIChild.ShowChild(IntToStr(444));
end;

end.

MDIChild:
Código Delphi [-]
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TMDIChild = class(TForm)
    Edit1: TEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    class procedure ShowChild(const Value: string);
  end;

var
  MDIChild: TMDIChild;

implementation {$R *.dfm}

class procedure TMDIChild.ShowChild(const Value: string);
begin
  MDIChild := TMDIChild.Create(nil);
  MDIChild.Edit1.Text := Value;
end;

procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 23-02-2022
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Barbaro ecfisa, me funciono perfectamente.

Saludos y muchas gracias nuevamente !
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
versiones diferentes de firebird en un mismo ordenador identsoft Conexión con bases de datos 2 15-12-2021 12:45:47
password diferentes desde el mismo servidor de base de datos novato_erick Firebird e Interbase 18 13-07-2014 10:31:34
Visualizar un mismo objeto en diferentes TGLSceneViewer: GLScene Mnelson Gráficos 1 08-02-2010 03:07:04
Referencia a diferentes instancias del mismo Form gluglu OOP 14 23-02-2007 17:22:32
Abrir a la vez el mismo form con diferentes datos Sayuri Varios 7 12-08-2005 17:28:41


La franja horaria es GMT +2. Ahora son las 00:31:27.


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