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;
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.