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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2012
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
buen día titomigue,

Estuve intentando enteder tu problema y no comprendí el lio que tienes con "La Función", hubiese sido bueno que la publicaras para analizarla... asi, que intenté replicar tu error en mi Delphi y mi prueba salió bien... o por lo menos lo que yo esperaba....

Para esto cree un proyecto desde cero, con dos formularios (Form1, form2)... el primero tiene un Button1 y el segundo tiene un Edit1....

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

function ClonoForm(form:TForm; var AIndice:Integer):TForm;
var
  ms : TMemoryStream;
  clone : TForm;
  edit: TEdit;
begin
  ms := TMemoryStream.Create;
  try
    ms.WriteComponent(form) ;
    ms.Position := 0;
    clone := TFormClass(form.ClassType).CreateNew(Application) ;
    ms.ReadComponent(clone) ;
    clone.caption:='Clon'+IntToStr(AIndice);
    clone.name:='Clon'+IntToStr(AIndice);
    clone.Left := form.Left;//posicion de ventana
    clone.Top := form.Top;//posicion de ventana
    clone.Show; //muestro el clon
    Result := Clone;
  finally
    ms.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var Indice, i : Integer;
    ElClon: Tform;
begin
  Indice:= 1;
  Form2.Show;
  ClonoForm(Form2, Indice);
  Form2.Edit1.Text:='Hola, soy el original...!!!';
  for i := 0 to Screen.FormCount-1 do
     if Pos('Clon',Screen.Forms[i].Name) > 0 then
        Begin
          ElClon := Screen.Forms[i];
          TForm2(ElClon).Edit1.Text := 'Soy '+Screen.Forms[i].Name;
        End;
end;

end.

Tal vez lo que estás buscando tiene que ver con el objeto global Screen y su lista de forms activos....

nos comentas omo te va, o nos das mas detalles en caso que no sea loq ue buscas...

Un saludo,
Responder Con Cita
  #2  
Antiguo 17-10-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.442
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La función de Clonar parece correcta, la que ya no se si lo es es la que utilizas para asignar.

algo así, por ejemplo funciona:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  f:TForm;
  i:integer;
  comp:TComponent;
begin

  // Edit2 el nombre del form al que quiero acceder al edit
  // Edit3, el valor que quiero asignar al Edit1 del form anterior

  for i := 0 to (Screen.FormCount - 1) do begin
    if (Screen.Forms[i].Name = Edit2.Text) then begin

      comp := Screen.Forms[i].FindComponent('Edit1');
      if Assigned(comp) then begin
        if (comp is TEdit) then begin
          TEdit(comp).Text := Edit3.Text;
        end;
      end;

    end;
  end;

end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 17-10-2012
titomigue titomigue is offline
Miembro
 
Registrado: may 2010
Posts: 17
Poder: 0
titomigue Va por buen camino
Buenas, he hecho una prueba y me a servido esto:

Código Delphi [-]
for i := 0 to Screen.FormCount-1 do
     if Pos('Clon',Screen.Forms[i].Name) > 0 then
        Begin
          ElClon := Screen.Forms[i];
          TForm2(ElClon).Edit1.Text := 'Soy '+Screen.Forms[i].Name;
        End;

De la manera que dice el amigo Neftali no he probado pero tiene buena pinta también.

Muchas gracias!
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
Invocar Funcion PHP desde form html jfontane PHP 6 14-11-2016 22:11:23
Duda Función IntToStr P0werBurn Varios 10 04-08-2010 15:40:39
llamar funcion asp desde form Ricardo Alfredo HTML, Javascript y otros 4 11-10-2006 17:39:43
Duda sobre funcion DOW gendelphi Firebird e Interbase 0 30-01-2004 21:31:25


La franja horaria es GMT +2. Ahora son las 17:51:51.


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