Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2016
yuyidt yuyidt is offline
Miembro
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
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

Código Delphi [-]
var
  vidas,correcta:byte;
  puntos:integer;
procedure quitavidas;

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;
begin
  form2.label5.Caption:=IntToStr(puntos); 
  puntos:=puntos+5;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  vidas:=4;  
  puntos:=5;

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?

Última edición por dec fecha: 17-11-2016 a las 19:36:02. Razón: Poner etiquetas DELPHI
Responder Con Cita
  #2  
Antiguo 17-11-2016
Avatar de movorack
[movorack] movorack is offline
Miembro
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.052
Poder: 12
movorack Va camino a la fama
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.

Código Delphi [-]
//////////////////////////////////////////////////////
//Form2
type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    PubString : String;
    { Public declarations }
  end;

//////////////////////////////////////////////////////
//Form1
procedure TForm1.MostrarForm2;
  var
    theForm2 : TForm2; 
    aString : String;
begin
  theForm2 := TForm2.Create(Self);
  try
    theForm2.ShowModal;   
    aString := theForm2.PubString; 
  finally
    theForm2.Free;
  end;
end;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 17-11-2016
yuyidt yuyidt is offline
Miembro
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
???

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;
Responder Con Cita
  #4  
Antiguo 17-11-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.165
Poder: 10
roman Tiene un aura espectacularroman Tiene un aura espectacular
Cita:
Empezado por yuyidt Ver Mensaje
No entendí mucho. creo que no me explique bien. Aquí voy nuevamente.
Ya se te comentó que le pongas etiquetas al código. ¿Cómo quieres que lo entendamos sin ninguna indentación?

LineComment Saludos
Responder Con Cita
  #5  
Antiguo 19-11-2016
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.016
Poder: 14
ElKurgan Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 24-11-2016
yuyidt yuyidt is offline
Miembro
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Thumbs up Gracias ElKurgan

Probe colocar las variables como dijiste en una unit sueltas y me funcionó. Gracias a todos también por sus aportes.
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
Pasar datos de un form a otro astrosnik OOP 17 06-03-2017 19:08:15
Pasar Datos De Un Form a Otro rotsen26 OOP 2 19-02-2013 03:25:06
Pasar datos de un form a otro. cenriquet OOP 4 04-01-2013 18:29:14
Pasar dato variable de un form a otro.. yevabas Varios 5 26-04-2011 21:45:48
pasar datos de un form a otro form vroa74 API de Windows 15 12-10-2007 20:11:52


La franja horaria es GMT +2. Ahora son las 00:32:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi