FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
duda algo tonta
hola, buenas tardes
Soy algo nuevo en esto de delphi y tengo un problema con un if, no encuentro como hacerlo, este es el codigo que estoy usando y tambien el error que me produce, gracias de antemano if Panel1.Color:=cl3DLight then Panel3.Color:=clRed; [Error] Unit1.pas(74): Type of expression must be BOOLEAN |
#3
|
|||
|
|||
gracias Dark Man
ya me estaba volviendo loco por no saber que estaba mal jajajajaja y bueno ya que me anime a hacer mis preguntas tontas, me sale este error con el siguiente codigo
se supone que la expresion debe hacer esto, si panel17 es rojo y panel18 es rojo entonces panel7 es rojo Delphi (-) if Panel17.Color=clRed and Panel18.Color=clRed then Panel7.Color:=clRed; el error que me da es [Error] Unit1.pas(121): Incompatible types gracias |
#8
|
||||
|
||||
__________________
Siempre Novato |
#9
|
||||
|
||||
Cita:
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:
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. |
#10
|
||||
|
||||
Hola
Es curioso Al Pero hice las comparaciones y siempre me sirvió. Pongo 3 paneles y un botón. Si pongo los dos primeros en rojo al presionar el botón este se pone en rojo también, pero si alguno de los primeros no esta en rojo el tercero no se pone en rojo tampoco. Para estar mas seguro adicione mas paneles e hice la comparación sin orden especifico y también lo hizo. Por lo tanto a mi si me hace la comparación. Estoy seguro de que estoy equivocado, pero mi delphi me quiere mucho y siempre hace lo que le pido. Saludos Amigo Pd: Entendí mal tu ultima estrofa. Lo que se pretende no es comparar los dos primeros con el tercero, es: Si el primero y segundo son rojos el tercero se pondrá en rojo también, no hay comparaciones.
__________________
Siempre Novato Última edición por Caral fecha: 16-09-2008 a las 18:45:30. |
#11
|
||||
|
||||
Hola Carlos.
Como comenté, la tercera "expresión" es clRed. Un case siempre compara. En cuanto a que sí te funciona, no es de extrañarse mucho, simplemente te ha tocado que los bits "coincidan", pero es muy arriesgado y desaconsejable hacerlo de esa manera. Con otras constantes de color podría fallarte. Estoy en un café Internet sin Delphi a la mano para ver el patrón de bits de clRed y otras constantes de color que pudiera tomar como ejemplo, pero reafirmo lo dicho en mi comentario de arriba. Saludos. Al. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Es algo importante ejecución de .exe y algo más ayúdenme | kakesoft | Varios | 5 | 02-05-2005 10:01:14 |
duda tonta con gdb | acrophet | Conexión con bases de datos | 14 | 19-02-2004 20:26:35 |
Pregunta tonta | Delphos | Varios | 10 | 20-01-2004 12:44:44 |
Pregunta tonta... | CFPA86 | Varios | 3 | 04-12-2003 19:46:43 |
duda tonta :P | acrophet | Varios | 2 | 01-12-2003 11:12:20 |
|