Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Variable de un boton a otro (https://www.clubdelphi.com/foros/showthread.php?t=82814)

RamadanGaston 16-04-2013 22:19:02

Variable de un boton a otro
 
Que tal, este es mi primer post, y con respecto a delphi, soy nuevo, se manejar pascal por lo que tengo una idea base (muy basico tanto pascal como delphi)
Mi duda es la siguiente y aclaro, no es una tarea que me mandaron o algo asi porque lei que muchos piden sus tareas jaja :D
La idea general seria sacar un promedio con una cantidad X de notas/numeros de la siguiente manera:
2 barras te textos (Edit) y 2 botones, (siguiente) y (calcular), mi idea es colocar en el primer text la primer nota y darle a (siguiente) y que éste almacene esa nota en una variable, luego ingresar otra nota y presionar (siguiente) y se vuelva a almacenar ej: ingreso 5 (siguiente) A:=5 luego ingreso 7 (siguiente) A:=13 hasta acabar con la ultima nota, luego presionar el boton (Calcular) y que en el segundo TextBox aparezca el promedio.

Yo lo intente con 3 variables:
B: suma las notas
C: suma la cantidad de notas ingresadas
D: divide las notas totales con la cantidad de notas ingresadas



Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d: real;
begin
  a := strtoint(Edit1.text);
  b := b + a;
  c := c + 1;
  d := b / c;
  Edit1.Clear;
end;

Pero creo que al darle (siguiente) las variables B y C se vuelven 0 cada vez..
No se como hacer que, el segundo boton traiga la variable D del primero, al otro TextBox

Y como lo hago por mera diversion o por practicar, no quiero cambiar el formato de dos textbox y dos botones..
Desde ya se agradece cualquier consejo y ayuda, tengan en cuenta que solo se lo basico, muy basico :D

gatosoft 16-04-2013 23:32:09

Tu teoría es cierta, las variables: a,b,c,d: real; son locales para el procedimiento Button1Click, lo que quiere decir que cada vez que invoques el evento comienzan con su valor por defecto.

Debes definir estas variables con un ámbito mayor, como por ejemplo en la forma:

Código Delphi [-]
Form1 = class(TForm)
Private

Public
  b,c,d: real;
end;
{...}

procedure TForm1.Button1Click(Sender: TObject);
Var a: Real; //puede ser local
begin
  a := strtoint(Edit1.text);
  b := b + a;
  c := c + 1;
  d := b / c;
  Edit1.Clear;
end;


Es buena idea inicializar las varibales en el vento OnCreate del formulario, o definir un boton3 para limpiar las variables y volver a calcular.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  b := 0;
  c := 0;
end;

RamadanGaston 17-04-2013 05:58:13

Pues, una vez que te das cuenta es bastante obvio xD no se me había ocurrido eso de definir las variables para todo el algoritmo, pensaba que podria llamarla con alguna funcion :D

Me funciono perfecto, muchas gracias, me servira para muchas cosas nuevas :D


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

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