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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Bueno, no he cambiado todavia tu opcion egostar, para que quede como la soñaste , pero hice varios cambios.
seoane, espero te guste asi, creo que es mas grafico como dijiste y la verdad se ve mucho mas de maestro, se nota tu mano.
Aqui estan los cambios, revisenlos por favor.
http://rapidshare.com/files/3499529/...lices.zip.html
Me dicen que tal.
Saludos
Responder Con Cita
  #2  
Antiguo 15-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 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
  #3  
Antiguo 15-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Otro punto:

Si haces lo del mensaje anterior, te queda algo como:

Código Delphi [-]
if ComboBox3.Text = 'Sumar' then
begin
  Edit4.Text := FloatToStr(StrToFloat(ComboBox4.Text) + StrToFloat(ComboBox5.Text));
  Label4.Caption := strRespuestas[Edit3.Text = Edit4.Text];

  Edit6.Text := FloatToStr(StrToFloat(ComboBox6.Text) + StrToFloat(ComboBox7.Text));
  Label5.Caption := strRespuestas[Edit5.Text = Edit6.Text];

  Edit8.Text := FloatToStr(StrToFloat(ComboBox8.Text) + StrToFloat(ComboBox9.Text));
  Label6.Caption := strRespuestas[Edit7.Text = Edit8.Text];

  Edit10.Text := FloatToStr(StrToFloat(ComboBox10.Text) + StrToFloat(ComboBox11.Text));
  Label7.Caption := strRespuestas[Edit9.Text = Edit10.Text];

  Edit12.Text := FloatToStr(StrToFloat(ComboBox12.Text) + StrToFloat(ComboBox13.Text));
  Label8.Caption := strRespuestas[Edit11.Text = Edit12.Text];

  Edit14.Text := FloatToStr(StrToFloat(ComboBox14.Text) + StrToFloat(ComboBox15.Text));
  Label9.Caption := strRespuestas[Edit13.Text = Edit14.Text];

  Edit16.Text := FloatToStr(StrToFloat(ComboBox16.Text) + StrToFloat(ComboBox17.Text));
  Label10.Caption := strRespuestas[Edit15.Text = Edit16.Text];

  Edit18.Text := FloatToStr(StrToFloat(ComboBox18.Text) + StrToFloat(ComboBox19.Text));
  Label11.Caption := strRespuestas[Edit17.Text = Edit18.Text];

  Edit20.Text := FloatToStr(StrToFloat(ComboBox20.Text) + StrToFloat(ComboBox21.Text));
  Label12.Caption := strRespuestas[Edit19.Text = Edit20.Text];

  Edit22.Text := FloatToStr(StrToFloat(ComboBox22.Text) + StrToFloat(ComboBox23.Text));
  Label13.Caption := strRespuestas[Edit21.Text = Edit22.Text];
end;

para la suma. Pero para las otras operaciones, lo único que cambia es el símbolo de la operación (+,-,*,/).

¡Algo debe poder hacerse para reducir las cuatro operaciones a una!

Podrías, por ejemplo, declarar una función:

Código Delphi [-]
type
  TOperacion = (opSuma, opResta, opMultiplicacion, opDivision);

function HazOperacion(Operando1, Operando2: Extended; Operacion: TOperacion): Extended;
begin
  case Operacion of
    opSuma: Result := Operando1 + Operando2;
    opResta: Result := Operando1 - Operando2;
    opMultiplicacion: Result := Operando1 * Operando2;
    opDivision: Result := Operando1 / Operando2;
  end;
end;

Si sustituyes

Código Delphi [-]
Edit4.Text := FloatToStr(StrToFloat(ComboBox4.Text) + StrToFloat(ComboBox5.Text));

por

Código Delphi [-]
Edit4.Text := FloatToStr(HazOperacion(
  StrToFloat(ComboBox4.Text), StrToFloat(ComboBox5.Text), Operacion));

entonces bastará un case al comienzo para escoger Operacion y entonces podrás usar el mismo código para las cuatro operaciones.

// Saludos
Responder Con Cita
  #4  
Antiguo 15-11-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola roman
Gracias por tu aporte, me la has puesto dificil de masticar, pero en cuanto lo entienda, lo aplico seguro.
Con respecto al uso de la nomenglatura estoy de acuerdo, no suelo hacer estas cosas asi, pero este programita como ves lo hice en un par de dias en horas de descanso, por eso esta aqui para que lo engrandezcais con vuestro conocimiento.
Gracias a todos los que aportais vuestro conocimiento.
Saludos
Responder Con Cita
  #5  
Antiguo 16-11-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 21
Robert01 Va por buen camino
Hola caral

Podemos agregarle algo de geometría al programa.
Hice una pequeña dll como ejemplo para el cálculo de superficies y volúmenes.
Decime que te parece

http://download.yousendit.com/54B2EA3F2B6DC141


saludos
Responder Con Cita
  #6  
Antiguo 16-11-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola Robert01
Me gusta la idea el programa esta simpatico y lo voy a incorporar, ya lo veras, si tienen otras ideas, ponganlas, asi crecera.
Saludos
Responder Con Cita
  #7  
Antiguo 16-11-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola a todos
Primero espero que este avance los convenza, he agregado un boton Club Delphi, presionenlo.
Seoane, espero que la parte grafica te satisfaga.
egostar, Ya va tu parte muy bien, el codigo funciona.
Neftali, necesito mas informacion, recuerda soy novato.
roman, que decir, no entiendo todavia, ya tratare de entenderlo pero es demasiado para mi.
Robert01, Voy a incorporar las foumulas tuyas, pero recuerda que es para niños, no pueden ser dificiles de explicar.
Aqui he incorporado varios cambios, incluyendo la parte de geometria (no esta funcionando todavia, esta en la parte grafica) .
Por favor revisenlo y me dicen que les parece.
Aqui esta:
http://rapidshare.com/files/3627076/...lices.zip.html
Saludos
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
Los Simpsons y la matematicas seoane La Taberna 1 11-06-2006 21:53:22
Problemilla de matematicas. CRIS Varios 14 12-11-2005 12:25:27
Expresiones matemáticas en tabla ckaki Varios 1 19-07-2004 22:20:58
Expresiones matemáticas Pandre Varios 0 04-09-2003 01:43:49
expresion matematicas Irina Impresión 4 21-05-2003 00:49:51


La franja horaria es GMT +2. Ahora son las 16:24:40.


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