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 12-11-2010
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
como acceder a los controles de un formulario desde otro

sres, un gusto como simpre , tengo un problema al tratar de acceder a los controles de un formulario desde otro

ejm: tengo el Form1 que deriva de TForm1 y ahi hay controles que deseo acceder desde el Form2 en una aplicacion MDI


lo que hago es:


llamada al form2 desde form1

Form1 := TForm1.Create(Self);


luego en Form2 desde un boton trato de acceder a los controles de form1 por ejemplo Edit1 de esta manera:

(Self.Parent as TForm1).Edit1.Text := 'Hola'; y nada me vota horror!!!


trabajo en formularios MDI, facil huviera puesto: Form1.Edit1.Text := 'Hola';

pero ojo, cuando abro varios formularios (Form1) y asu ves desde cada uno de estos habro a sus respectivos (Form2), con la sentencia anterior solo se cambia el edit de un solo formulario (Form1), pero con el primer codigo, se cambiaba correctamente el Edit de cada formulario.

uso delphi 2010, me acuerdo q en delphi 7 funcionaba bien o me habre olvidado???
gracias de antemano amigos!!!
Responder Con Cita
  #2  
Antiguo 12-11-2010
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 _CALI.

No sé si entendí muy bien tu planteo, pero a ver si es esto...

Supongamos que tenemos dos forms: FMain y FChild, con sus propiedades FormStyle en fsMDIForm y fsMDIChild respectivamente asignadas.
En FMain tenemos un TEdit y en FChild un TButton que al presionarlo le manda un texto al TEdit ubicado en FMain.
Una forma es que FChild incluya en la clausua uses a FMain y de ese modo podríamos usar al TEdit de FMain. (referencia circular)

Con un ejemplo:

FMain:
Código Delphi [-]
...
type
  TFMain = class(TForm)
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
  private
  public
  end;

var
  FMain: TFMain;

implementation {$R *.dfm}

uses Unit2; { donde esta TFChild }

procedure TFMain.FormShow(Sender: TObject);{ necesario si sacamos FChild de Auto-create forms }
begin
  TFChild.Mostrar;
end;
...


FChild:
Código Delphi [-]
...
type
  TFChild = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
    class procedure Mostrar;{ necesario si sacamos FChil de Auto-create forms }
  end;

var
  FChild: TFChild;

implementation {$R *.dfm}

uses Unit1; { donde esta TFMain }

class procedure TFChild.Mostrar;{ necesario si sacamos FChild de Auto-create forms }
begin
  if not Assigned(FChild) then
    FChild:= TFChild.Create(nil);
end;

procedure TFChild.Button1Click(Sender: TObject);
begin
  FMain.Edit1.Text:= 'Hola FMain...';
end;
...


Saludos.

Última edición por ecfisa fecha: 12-11-2010 a las 07:35:05.
Responder Con Cita
  #3  
Antiguo 12-11-2010
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
gracias por responder ecfisa, pero mi planteo es algo diferente siguiendo el el siguiente esquema:




formulario principal es FMain que esta en la unit1
formulario clientes es FChild que esta en la unit2, ahi es donde esta el Edit
formulario buscar clientes es Fchid_b que esta en la unit3, ahi es donde esta el boton

ahora como hago para cambiar el edit del formulario clientes 2 desde el boton del formulario buscar clientes 2?, siguiendo tus recomendaciones si hago eso se cambia el edit del formulario clientes 1 mas no del formulaario clientes 2 , ojala me explique bien , muchas gracias de antemano!!!
Responder Con Cita
  #4  
Antiguo 12-11-2010
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
Cita:
ahora como hago para cambiar el edit del formulario clientes 2 desde el boton del formulario buscar clientes 2?,
Hola _CALI.

Bueno, en ese caso basta con que agregues la clausula uses clientes 2, al formulario buscar clientes 2:
Código Delphi [-]
...
implementation {$R *.dfm}

uses Unit2; { Unidad donde está el form Clientes (FClientes) }

procedure TFBusqueda.Button1Click(Sender: TObject);
begin
  FClientes.Edit1.Text:= 'Aqui desde FBusqueda... ¿ Todo bien por allá ?';
end;
...

Saludos.

Última edición por ecfisa fecha: 12-11-2010 a las 20:34:56.
Responder Con Cita
  #5  
Antiguo 12-11-2010
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
me causa el mismo resultado solo se cambia el edit de un formulario clientes,

la idea es que x ejemplo estando 3 formularios clientes abiertos, se cambie el edit del formulario clientes que llama a su propio buscar clientes uno para cada uno me acuerdo q lograba eso escribiendo lo siguiente:

(Self.Parent as FrmClientes).Edit1.Text := 'Hola padre!!';

donde Self.Parent es el formulario padre q llama a buscar clientes correspondiente


Muchas gracias amigo(a) de todas maneras!!!
Responder Con Cita
  #6  
Antiguo 12-11-2010
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 de nuevo _CALI.

Perdón pero realmente creo no entenderte...

¿ Lo que buscas es que todos los FClientes abiertos reciban en su respectivo Edit, el texto que envía FBuscarCliente ?

Saludos.
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
acceder a los controles de otro formulario MDIChild!! _CALI Varios 1 04-12-2009 22:00:30
Acceder a un sitio .aspx desde otro PC carlosegs11 .NET 2 21-01-2008 06:10:34
Acceder fichero Access desde otro equipo con Ubuntu vía ODBC papulo Tablas planas 2 03-10-2007 12:09:59
Acceder desde un Frame a su formulario rafita Varios 4 07-03-2007 15:29:38
Acceder a otro ordenador desde internet Novás Redes 8 06-06-2005 17:20:46


La franja horaria es GMT +2. Ahora son las 23:15:22.


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