Ver Mensaje Individual
  #14  
Antiguo 15-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola Caral,

Le he echado un ojo a tu programa feliz . Para empezar me concentré en el Button3Click, el que comprueba las respuestas de la segunda ficha.

Tienes muchas parejas de sentencias del tipo

Código:
if ESTO = AQUELLO then
  TalCosa;

if ESTO <> AQUELLO then
  OtraCosa;
¿por qué no lo simplificas:

Código:
if ESTO = AQUELLO then
 TalCosa
else
  OtraCosa;
Pero más aún: fíjate que en esas sentencias lo que hace es fijar un rótulo de acuerdo a si la respuesta es o no correcta. Y sólo hay dos posibles rótulos: 'X' y 'OK'.

'X' se pone si la respuesta es incorrecta, o, dicho de otra forma, si la comparacion

ESTO = AQUELLO

es falsa, y 'OK' se pone si esta comparación es verdadera. En resumen, el rótulo que uses depende de un valor booleano. Entonces puedes hacer esto:

Código Delphi [-]
const
  strRespuestas = array[Boolean] of String = ('X', 'OK');

al principio del procedimiento. strRespuestas es un arreglo de dos elementos:

Código:
false => 'X'
true => 'OK'
Entonces, los condicionales

Código Delphi [-]
if Edit3.Text = Edit4.Text then
  Label4.Caption := 'OK';

if Edit3.Text <> Edit4.Text then
  Label4.Caption := 'X';

la puedes simplificar a una sóla línea:

Código Delphi [-]
Label4.Caption := strRespuestas[Edit3.Text = Edit4.Text];

Aplicas la misma técnica al final de ese evento, donde asignas los colores, y en total reduces el código en aproximadamente 100 líneas


Por otro lado, creo que Neftali ya lo dijo. Urge cambiar nomenclatura.

// Saludos
Responder Con Cita