Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pasar dato variable de un form a otro.. (https://www.clubdelphi.com/foros/showthread.php?t=73491)

yevabas 26-04-2011 17:37:20

Pasar dato variable de un form a otro..
 
Buenos dias

Perdon si esto ya se ha repetido varias veces, he revisado los hilos que aparecen al respecto pero la verdad no me funciona y soy muy novato en esto, lo que quiero es lo siguiente

tengo un formulario principal Form1 y desde alli con Speedbutton llamo otro formulario, nunca e suna variable para indicar el boton presionado ya que hay 3.

Código Delphi [-]
procedure TForm1.LD1Click(Sender: TObject);
begin
  nunca:=1;
  with TLisDDI.Create(Application) do
    try
      ShowModal;
    finally
      Free;
    end;
end;

este me llam un formulario donde tengo un dbgrid y con doble click sobre una de sus celdas llamo otro formulario.

Código Delphi [-]
procedure TLisDDI.Gddi1DblClick(Sender: TObject);
begin
   with TLlamInter.Create(Application) do
    try
      ShowModal;
    finally
      Free;
    end;
   Close;
end;


en este otro formulario lo que hago es que llevo el dato de una de las celdas
y calculo un valor con un boton (speedbutton) dependiendo de un factor que se agrega y despues cierro todo.


Código Delphi [-]
procedure TLlamInter.btn1Click(Sender: TObject);
begin
    fac := StrToInt(cbb1.Text);
    MinVal :=  StrToFloat(edt3.Text) * fac;
    edt2.Text := IntToStr(Round(MinVal));
    if  Form1.nunca = 1 then
       mv1 := StrToInt(edt2.Text);
     if  Form1.nunca = 2 then
         mv2 := StrToInt(edt2.Text);
       if  Form1.nunca = 3 then
           mv3 := StrToInt(edt2.Text);
end;

lo que quiero es poder llevar este valor que es mv1, mv2 o mv3 segun sea el caso al Form1 y guardarlo en otra variable de este formulario.

espero haber sido mas o menos claro y de nuevo disculpas si ya se trato el tema pero la verdad no he podido hacerlo y no comprendo muy bien esto, gracias por cualquier colaboración.

oscarac 26-04-2011 17:42:17

mmmm
lo que se me ocurre es que en el form1 crees una variable
y despues le asignes el valor que deseas

algo asi como estas usando el form1.nunca

ejemplo

form1.Variable := mv1;

asi tomara el valor que quieras y lo llevara al formulario 1

yevabas 26-04-2011 18:09:36

Hola oscarac

Gracias por responder, pero no me quedo muy claro, yo tengo en form1 una variable llamada "valo" y la inicializo en cero y cuando quiero que el valor que calcule en el formulario LlamInter "mv1" pase a esta variable hago lo siguiente,

Código Delphi [-]
 valo :=  LlamInter.mv1;

esto es en form1, pero cuando lo corro paso a paso la variable LlamInter.mv1 tiene el valor de nill, y genera error ya que valo es integer.

leyendo encontre esto

"Si lo hace, pero no recoges el valor:"



Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);varfrm: Taboutbox;beginfrm:= Taboutbox.Create(self);// frm.A:= z ;// frm.B:= x ;if frm.showmodal =mrOk thenbegin  editform1.text:=frm.A;  ShowMessage(editform1);end;frm.free;

"El punto está que al ser modal, cuando se pulsa en el Button1 (que supongo será un TBitBtn y que devuelve mrOk) es donde se asigna a "A" el valor que debe retornar, por ello tienes que esperar a que se retorne mrOk o bien mrCancel."

Esto es en un hilo que alguien pregunto sobre esto pero la verdad no entendi nada, no tengo claro estos conceptos...

yo cambie el speedbutton por un Tbitbtn pero en realidad no se como utilizar la opcion que dan en este hilo.

o no se que mas pueda ser....

gracias

oscarac 26-04-2011 18:14:43

aver

te hago un resumen de lo que te he entendido

tienes un formulario principal desde el cual llamas a posibles 3 formularios en los cuales tienes que devolver un valor al formulario principal

este en el formulario que este puedes hacer esto

form1.valo := loquesea...

eso te retornara el valor

yevabas 26-04-2011 20:17:04

hola oscarac

Si ya entendi y funciona perfectamente, gracias por tu ayuda estaba un poco confundido pero ya funciona muchas gracias de nuevo por tu ayuda y tiempo...

oscarac 26-04-2011 20:45:48

de nada... tu crees que te ayudo... yo pienso que asi aprendo mas :):)


La franja horaria es GMT +2. Ahora son las 00:14:34.

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