Ver Mensaje Individual
  #9  
Antiguo 16-09-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Caral Ver Mensaje
Hola
Otro ejemplito con case.
Estoy practicando para no olvidarme de esto

Código Delphi [-]
 case Panel17.Color and Panel18.Color of
 clRed: panel7.Color:= clRed;
 end;

Saludos
Hola Carlos.

El problema con ese ejemplo es que el Case no está preguntando si tanto Panel17.Color como Panel18.Color tienen un valor de clRed, sino que se está haciendo un "And de bits" con los dos valores enteros.

Mira este ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Case 7 And 11 Of
    3 : Showmessage (
      '7 y 11, ambos, tienen activos (en "1") los bits que ' +
      'forman el entero 3:'#13#13'...00000111 (7)'#13 +
      '    And'#13'...00001011 (11)'#13 +
      '---------------------'#13'...00000011 (3)');
  End;
end;

Aquí el resultado:


En conclusión, no podemos pedirle a Case que nos determine si dos expresiones cualesquiera (Panel17.Color y Panel18.Color, en este caso) son iguales a una tercera (clRed).

Saludo And Abrazo.

Al González.
Responder Con Cita