Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2010
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 19
_CALI Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
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.
Claro!! su correspondiente FBuscarCliente
ejemplo:

FBuscarCliente 1 que modifique el edit del FCliente1
FBuscarCliente 2 que modifique el edit del FCliente2
FBuscarCliente 3 que modifique el edit del FCliente3
.
.
FBuscarCliente N que modifique el edit del FCliente N

Gracias por tu apoyo
Responder Con Cita
  #2  
Antiguo 13-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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:
Empezado por _CALI Ver Mensaje
Claro!! su correspondiente FBuscarCliente
ejemplo:

FBuscarCliente 1 que modifique el edit del FCliente1
FBuscarCliente 2 que modifique el edit del FCliente2
FBuscarCliente 3 que modifique el edit del FCliente3
.
.
FBuscarCliente N que modifique el edit del FCliente N
Hola _CALI.

Si es así, serviría el ejemplo de arriba.

Para BuscarCliente1 sería:
Código Delphi [-]
implementation
uses Unit2; { FCliente1 }

procedure TFBusqueda.Button1Click(Sender: TObject);
begin
  FCliente1.Edit1.Text:= 'MENSAJE';
end;
Para BuscarCliente2:
Código Delphi [-]
implementation
uses Unit4; { FCliente2 }

procedure TFBusqueda.Button1Click(Sender: TObject);
begin
  FCliente2.Edit1.Text:= 'MENSAJE';
end;

...

Es decir, incluyendo la unidad de cada FCliente(N) en cada unidad BuscarCliente(N) que tengas...

Saludos.
Responder Con Cita
  #3  
Antiguo 13-11-2010
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 19
_CALI Va por buen camino

GRACIAS!!!, pero sucede que cada FCliente es uno mismo Fcliente 1, FcLiente2 ... FClienteN es un solo formulario que esta en la unidad 2
y cada FBuscarCliente tambien es un solo formulario, solo que lo llamo varias veces hay varias instacias de FClientes y de FBuscarCliente, por eso es medio complicado sigo renegando sin solucionarlo jejejej Gracias de nuevo
Responder Con Cita
  #4  
Antiguo 13-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Recién ahora te entiendo!

Lo voy a pensar, si se me ocurre algo te aviso.

Saludos
Responder Con Cita
  #5  
Antiguo 13-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Como lo prometido es deuda, despues de unas pruebas, aca vuelvo.
La unit que tiene el form FBusca (la que cambia el Edit), debe utilizar FMain y FClientes.
Debes respetar cierta regla en la creación de los nombres de los forms FBusca y FClientes. Serán los nombres que decidas; pero seguidos de un número consecutivo. (esto para poder discriminarlos).

Bueno, vamos al código:

FMain (Unit1): Sólo tiene un MainMenu con un item 'Crear'.
Código Delphi [-]
...
type
  TFMain = class(TForm)
    MainMenu1: TMainMenu;
    Organizar1: TMenuItem;
    Crear1: TMenuItem;
    procedure Crear1Click(Sender: TObject);
    procedure Ventanas1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FNumChild: Integer;
  public
  end;

var
  FMain: TFMain;


implementation  {$R *.dfm}

uses Unit2, Unit3;

procedure TFMain.FormCreate(Sender: TObject);
begin
  FNumChild:= 1;
end;

procedure TFMain.Crear1Click(Sender: TObject);
begin
  with TFCliente.Create(nil) do
  begin
    Name:= 'FCliente'+IntToStr(FNumChild);
    Caption:= Name;
    Show;
  end;
  with TFBusca.Create(nil) do
  begin
    Name:= 'FBusca' + IntToStr(FNumChild);
    Caption:= Name;
    Show;
  end;
  Inc(FNumChild);
  TileMode:= tbVertical;
  Tile;
end;
end.

FCliente (Unit2): Sólo tiene un edit: TEdit1, el receptor que deberá llamarse así . ( no agrego el código)

FBusca (Unit3): Sólo tiene un TButton.
Código Delphi [-]
...
type
  TFBusca = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  FBusca: TFBusca;

implementation {$R *.dfm}

uses StrUtils, Unit1, Unit2;

procedure TFBusca.Button1Click(Sender: TObject);
var
  i: Integer;
  Nombre: string;
begin
  for i:= 0 to FMain.MDIChildCount -1 do
  begin
    Nombre:= FMain.MDIChildren[i].Name;
   //Si decidis darle otro nombre que FCliente al form Clientes, debes cambiarlo también aqui,
   // lo mismo para Edit1 de FCliente.
    if (Pos('FCliente',Nombre) <> 0)and(RightStr(Nombre,1)=RightStr(Name,1))then
      (FMain.MDIChildren[i] as TFCliente).Edit1.Text:= 'SALUDOS DE '+Name;
  end;
end;
end.


Saludos.

Última edición por ecfisa fecha: 13-11-2010 a las 04:57:42.
Responder Con Cita
  #6  
Antiguo 13-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Una variante del código anterior puede ser:
FMain:
Código Delphi [-]
  with TFCliente.Create(nil) do
  begin
    Tag:= FNumChild;
    Show;
  end;
  with TFBusca.Create(nil) do
  begin
    Tag:= FNumChild;
    Show;
  end;
  Inc(FNumChild);

FBusca:
Código Delphi [-]
procedure TFBusca.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to FMain.MDIChildCount -1 do
  begin
    if (FMain.MDIChildren[i] <> Self) and
       (FMain.MDIChildren[i].Tag = Tag) then
      (FMain.MDIChildren[i] as TFCliente).Edit1.Text:= 'SALUDOS DE ' + Name;
  end;
end;

De este modo evitas la restricción de nombres que tiene el código anterior, pero tenés que cuidar el valor de los Tag's
que asignes al resto de los Forms. Una posibilidad es inciar FNumChild a un valor alto que sepas, no vas a usar para
el resto.

Saludos.

Última edición por ecfisa fecha: 13-11-2010 a las 21:37:58.
Responder Con Cita
  #7  
Antiguo 16-11-2010
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 19
_CALI Va por buen camino
correcto

Gracias ecfisa!!! te pasaste. Saludos!!!
Responder Con Cita
  #8  
Antiguo 20-11-2010
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 19
_CALI Va por buen camino
Gracias ecfisa a tu ayuda pude encontrar una solucion

despues de tanto laberinto aveces las soluciones son las mas faciles

orientandome en tu codigo pude resolver mi problema muy efectivamente


suponiendo q tenemos un form principal, y dos fromularios hijos child
que son clientes y busqueda de clientes

me di cuenta que MDIChildren[0] es el formulario hijo activado osea activeMDIChild

pues entonces MDIChildren[1] es el "parent" de MDIChildren[0] cierto???

entoces simplemmnte puse:

if (application.mainform.MDIChildren[1] is TFRMClientes) then
(application.mainform.MDIChildren[1] as TFRMClientes).Edit1.text := 'por fin';


Gracias denuevo ecfisa me sirvio de mucho tu colaboracion!!!

Responder Con Cita
  #9  
Antiguo 20-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Funciona de forma segura siempre y cuando tengas sólo un par de MDIChilds abiertos. Pero puede no ser así si hay más pares de forms abiertos.

Supongamos que tenemos abiertos dos pares de forms creados en este órden: FSender, FReceiver.
Creamos cuatro:
1:FSender1
2:FReceiver1
3:FSender2
4:FReceiver2

El form activo es ahora FReceiver2.

Si en esta instancia haces click en el TButton del form FSender1, le enviará el mensaje a FReceiver2 y no es el comportamiento que buscas.

Por otro lado si haces click en el TButton del form FSender2, FReceiver2 recibe el mensaje; pero FReceiver1 no recibirá ningun mensaje hasta que adquiera el foco ( sea el form activo ).

Para que este efecto no se produzca es necesario hacer click sobre cada form FReceiverN (hacerlo activo) para luego enviar el mensaje.
Ahora, si es condición necesaria que el form receptor este activo para que pueda recibir un mensaje, funciona.

Espero haberme explicado bien...

Saludos.

Última edición por ecfisa fecha: 20-11-2010 a las 02:37:11.
Responder Con Cita
Respuesta


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

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 02:24:13.


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