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 02-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Para simplificar algunas líneas puedes hacer:

Código Delphi [-]
var
  Correcto: Boolean;

begin
  if ComboBox3.Text = 'Multiplicar' Then
    Edit2.Text := FloatToStr(StrToFloat(ComboBox1.Text) * StrToFloat(ComboBox2.Text));
  Correcto := Edit1.Text = Edit2.Text;
  If Correcto Then
    Labe1.Caption := 'Bien Hecho Respuesta Correcta'
  else
    Label1.Caption:= 'Tu Respuesta es Incorrecta';
  Image1.Visible := not Correcto;
  Image2.Visible := Correcto;
  Image3.Visible := not Correcto;
  Button2.Visible := not Correcto
end


Saludos...
Responder Con Cita
  #2  
Antiguo 02-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Para seguir con la duda
La palabra (else) no significa en este caso (de lo contrario) osea que:
If x = Q then
tal cosa
else // de lo contrario
tal otra cosa
O algo asi, con esto me queda una duda en el codigo de Maeyanes:

Código Delphi [-]
// Varible general perfecto
var
  Correcto: Boolean;

Código Delphi [-]
// evento perfecto
begin
  if ComboBox3.Text = 'Multiplicar' Then
    Edit2.Text := FloatToStr(StrToFloat(ComboBox1.Text) * StrToFloat(ComboBox2.Text));
  Correcto := Edit1.Text = Edit2.Text;
  If Correcto Then
    Labe1.Caption := 'Bien Hecho Respuesta Correcta'
   
   // Aqui empieza mi duda
else 
   // Aqui empieza el (de lo Contrario), si es asi leera ? (Not Correcto) ?
   // Ya que a mi modo de ver si la opcion es correcta el else no se dara
  
  Label1.Caption:= 'Tu Respuesta es Incorrecta';
  Image1.Visible := not Correcto;
  Image2.Visible := Correcto;
  Image3.Visible := not Correcto;
  Button2.Visible := not Correcto
end;
Lo comento porque este codigo es nuevo para mi y veo que es realmente practico, pero creo que talvez por la prisa no se vieron ciertas cosas o bien estoy equivocado, me gustaria que me lo indicaran, si son tal amables.
Gracias
Responder Con Cita
  #3  
Antiguo 02-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo diría que lo que ocurre es que una cosa no quita la otra, es decir, efectivamente, el "else" de una condición indica "el camino alternativo a seguir", pero, dentro del bloque "else" es perfectamente posible utilizar el valor de la variable "Correcto".

Piensa además que la variable "Correcto" se "inicializa" antes de la condición, esto es, está disponible para cualquiera de los caminos que se tomen en esta. Otra cosa sería algo así:

Código Delphi [-]
var
  correcto: boolean;
begin
  if LoQueSea then
    correcto := true;
  else
    Edit1.Visible := correcto;
end;

Creo que el propio compilador se encargaría de alertarte de que el mismo no es del todo correcto, valga la redundancia, puesto que la variable "correcto" no estaría inicializada en el bloque "else" en este caso. Ahora bien, hacer esto no implica ningún problema y puede ser lo que se precise:

Código Delphi [-]
var
  correcto: boolean;
begin
  correcto := true;

  if LoQueSea then
    correcto := false;
  else
    Edit1.Visible := correcto;

  {...}
end;

¿Qué valor tendría "Visible" si llegara a ejecutarse el código del bloque "else"? Efectivamente, "true", puesto que ese es el valor que damos a la variable "correcto" anteriormente.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 02-10-2006 a las 21:58:45.
Responder Con Cita
  #4  
Antiguo 02-10-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 25
Bicho Va por buen camino
Hola yo lo que creo que está preguntando en este caso es si ésto se ejcutará en caso de que el valor de correcto sea true

Código Delphi [-]
Image1.Visible := not Correcto;
  Image2.Visible := Correcto;
  Image3.Visible := not Correcto;
  Button2.Visible := not Correcto

Para responderte, si se ejecuta, ya que esas instrucciones estan fuera del if o el else. Piensa que para que se ejecuten dentro del if o el else deben estar incluidas ademas dentro de un bloque begin..end.

Código Delphi [-]
else begin
  Label1.Caption:= 'Tu Respuesta es Incorrecta';
  Image1.Visible := not Correcto;
  Image2.Visible := Correcto;
  Image3.Visible := not Correcto;
  Button2.Visible := not Correcto
end;

En este caso no se ejecutaria si correcto fuera true. Creo que es eso lo que querías decir.

Espero te sirva.

Saludos
Responder Con Cita
  #5  
Antiguo 02-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Señores muy amables
Mi duda esta completamente evacuada y realmente he aprendido mucho
Muchisimas gracias.
Saludos
Responder Con Cita
  #6  
Antiguo 02-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Aclarando un poco más las cosas, esto:
Código Delphi [-]
If Correcto Then
  Label1.Caption := 'Bien Hecho Respuesta Correcta'
else
  Label1.Caption:= 'Tu Respuesta es Incorrecta';
Es equivalente a esto:
Código Delphi [-]
If Correcto Then
begin
  Label1.Caption := 'Bien Hecho Respuesta Correcta'
end
else
begin
  Label1.Caption:= 'Tu Respuesta es Incorrecta'
end;

Saludos...
Responder Con Cita
  #7  
Antiguo 02-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

O lo que es lo mismo, no es preciso utilizar un bloque "begin .. end" si sólo se precisa una instrucción a continuación del "if" o "else" de turno. El bloque "begin .. end", precisamente, sirve para poder incluir tantas instrucciones como sean precisas.
__________________
David Esperalta
www.decsoftutils.com
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


La franja horaria es GMT +2. Ahora son las 03:40:51.


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