Ver Mensaje Individual
  #11  
Antiguo 28-05-2017
Juampi Juampi is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 14
Reputación: 0
Juampi Va por buen camino
Retomo el proyecto

@[AgustinOrtu]

Gracias por la aclaración, y dado lo que me dijiste ya guardé para leer más adelante "TCollection" en wiki.freepascal.org. Decidí inicialmente intentar hacer funcionar la calculadora con un máximo de números y una vez consiga ese objetivo parcial, después dar el paso a todos los números que el usuario quiera. Pienso que como comienzo e ir fijándome metas es razonable.

@axesys

Gracias, lo haré ni bien avance un poco más con el proyecto, que por ahora no he salido del botón +, je. En mi defensa aclarar que desde que abrí este hilo no debo haber pasado la media hora con el programa, no he tenido tiempo y acá estoy un Domingo, el único día "100% libre" que tengo, tratando de adelantar algo.

@todos

Les cuento lo que me tiene trancado ahora mismo, que estoy seguro que es una bobada importante pero no me estoy dando cuenta. Este es el código de mi botón +:

Cita:
{--- S U M A (+) ---}

procedure TForm1.btnSumaClick(Sender: TObject);

var i : integer;

begin
display.setFocus; {---"display" es el nombre que le puse a la caja de texto donde ingreso los números, le pongo el setFocus para que enseguida quede pronto para recibir más números---}
op[i] := '+'; {---ignoren esto por ahora---}
nros[i] := StrToInt(display.text); {---nros es el array donde guardo los números que va ingresando el usuario---}
log[i] := display.text; {---esto también lo pueden ignorar por el momento, tiene que ver con mi idea de dejar un log encima de la caja de texto con las operaciones que fueron ingresadas---}
lbLog.caption := log[i]; {---lbLog se llama el label donde voy a mostrar el log---}
i := i + 1 {---acumulo en i---};
end;
Les explico:
  • ¿Estamos de acuerdo que el bloque de código que les muestro se va a ejecutar tantas veces como veces apriete el botón +, no?
  • Si dejo la variable i sin inicializar el programa me da error, aparece un mensaje que si mal no recuerdo dice 'External: SIGSEGV', que por lo poco que googleé es un 'Access Violation' y entiendo que se debe a que aleatoriamente la variable i tomó un valor que queda por fuera del rango del array. ¿Esto es así?.
  • Si inicializo la variable antes del begin me da error al compilar, o sea, no funciona el programa ya de arranque, así que entiendo que eso no se hace, que no funciona de esa manera.
  • Y después del begin ni siquiera lo probé porque entiendo que cada vez que presione el botón le voy a asignar ese valor (cero en este caso, mi array va del 0 al 9) y nunca lo podría usar como acumulador que es lo que busco justamente.

Es muy probable que la solución a esto sea extremadamente sencilla, y si bien termino de escribir esto y me voy a seguir pensando como se haría, quería que supieran en qué estaba trancado y mi decisión de por el momento acotar el array a "x" cantidad de lugares y después profundizar en arrays dinámicos, TList, etc.

Gracias una vez más.
Responder Con Cita