Pasar datos de variable de un form a otro.
Hola buen día. He visto varios hilos acerca de este tema pero ninguno me ha resuelto.
Tengo 2 variables en form1 donde manejo el puntaje y las vidas en un juego
Lo que quiero es que cuando vaya al form2 se me muestre el puntaje y las vidas que llevaba en el form1. He tratado de 1000 maneras pero no lo he logrado. Como podría hacerlo? |
Buen día.
Recuerda usar Tags para el código [delphi] //Código [delphi] (Esta va con el formato de cierre [/TAG]) Con respecto a tu duda, recuerda que cuando trabajas con un Form, trabajas con un objeto. Por lo tanto tienes entre otras propiedades y variables publicas y privadas. Crea una variable en la sección public del objeto Form2 y desde el Form1 solo debes llamarla.
|
???
No entendí mucho. creo que no me explique bien. Aquí voy nuevamente.
var //Declaro las variables vidas,correcta:byte; puntos:integer; intento:integer; procedure quitavidas; //Procedimiento que me quita vidas cuando la respuesta es incorrecta begin vidas:=vidas-1; if vidas=3 then begin form2.image4.visible:=false; end; if vidas=2 then begin form2.image5.visible:=false; end; if vidas=1 then begin form2.image3.visible:=false; end; if vidas=0 then form6.show; end; procedure sumar5puntos; //Procedimiento que me suma puntos cuando la respuesta es correcta begin form2.label5.Caption:=IntToStr(puntos); puntos:=puntos+5; end; procedure TForm2.Button1Click(Sender: TObject); var i : Integer; begin intento := intento + 1; begin if intento >=7 then form2.showmodal; //Después de 7 intentos me pasa al formulario 2 que es donde quiero validar que las vidas y los puntos sean iguales al formulario 1 end; for i := 4 to ControlCount - 1 do if Controls[i] is Tlabel then TLabel(Controls[i]).Color := clBtnFace; Label8.Tag := Random( 4 ) + 1; Label8.Caption := IntToStr(Label8.Tag); end; procedure TForm1.FormCreate(Sender: TObject); //Valor de las variables inicialmente begin vidas:=4; puntos:=5; procedure TForm2.Image1Click(Sender: TObject); //Aquí las condiciones para ejecutar los procedimientos de vidas y puntos begin correcta:=4; if label8.Caption=inttostr(correcta) then begin mediaplayer1.Play; Form7.ShowModal; button1.Click; sumar5puntos; end else begin mediaplayer2.Play; form8.Show; quitavidas; end; end; |
Cita:
LineComment Saludos |
La verdad es que no se entiende muy bien que quieres hacer.
Sin embargo, si lo que quieres es compartir el valor de algunas variables entre múltiples formularios lo mejor es sacarlas a una unit suelta, y ponerlas dentro de la sección Interface, para que sean públicas a todos los formularios. Si son variables que pertenecen a Form1 como parece que es la cuestión, donde quieras visualizarlas tendrías que poner "Form1.Vidas" y "Form1.Puntos", además de que tendrás que añadir la unit del Form1 a todas las units que necesiten ver esos valores. No se si era esto lo que querías Saludos |
Gracias ElKurgan
Probe colocar las variables como dijiste en una unit sueltas y me funcionó. Gracias a todos también por sus aportes.
|
La franja horaria es GMT +2. Ahora son las 12:27:47. |
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