Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Tipo De Dato Color ¿cual?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Tipo De Dato Color ¿cual? 
 
Con que tipo de dato tengo que almacenar en una variable un color?



tengo una clase que crea unos labels y segun como tienen que cambiar el color:
esta es la clase:

PRIVATE laser AS Label


' Constructor

PUBLIC SUB _new(las AS Label, x AS Integer, y AS Integer, incremento AS Integer, width AS Integer, height AS Integer, bg as que tipo?)
  
  laser = las
  laser.y = y
  laser.x = x + incremento
  laser.Width = width
  laser.Height = height
  laser.bg  ' necesito aqui esa variable

  
END


' Destructor

PUBLIC SUB _free()


  TRY laser.Delete

END


' GETTERS & SETTERS


' X

PUBLIC FUNCTION setX(coordX AS Integer)
  
  TRY laser.X = coordX
  
END


PUBLIC FUNCTION getX() AS Integer
  
  RETURN laser.X
    
END


' Y

PUBLIC FUNCTION setY(coordY AS Integer)
  
   TRY laser.Y = coordY
  
END

PUBLIC FUNCTION getY() AS Integer
  
  TRY RETURN laser.Y
    
END


' Width

PUBLIC FUNCTION setWidth(width AS Integer)
  
  TRY laser.W = width
  
END


PUBLIC FUNCTION getWidth() AS Integer
  
  TRY RETURN laser.W
    
END


' Height

PUBLIC FUNCTION setHeight(height AS Integer)
  
  TRY laser.H = height
  
END


PUBLIC FUNCTION getHeight() AS Integer
  
  TRY RETURN laser.H
    
END
 


con que tipo de dato paso el parametro bg?

he probado con color pero no funciona.
 



 
pittusa - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo De Dato Color ¿cual? 
 
Hay dos propiedades de color: el color de fondo (Background) y el color de la letra (Foreground)

Tu eliges la que te interesa...

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo De Dato Color ¿cual? 
 
eso ya lo se

pero como almaceno esto: &H3033FF& en una variable?

que tipo de dato tengo que poner en una clase para pasar un parametro con ese valor?

nunca nadie habia respondido tan rapido a una pregunta!

la ostia  

gracias
 



 
pittusa - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo De Dato Color ¿cual? 
 
hola pittusa

Si miras en gambasdoc verás que todas esas propiedades de color se definen como integer
Ejemplo
Enlace

Osea que la respuesta a tu pregunta es que puedes almacenarlo en una variable integer.

La respuesta a lo que no preguntas es la siguiente
Un color posible tiene la forma &H3033FF&. Eso solo es un número que está en notación HEXADECIMAL. Los números hexadecimales en vez de ir del 0 a 9 como los decimales van del 0 al 15 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) porque usan la base 16 en vez de la base diez. Son muy útiles por muchas razones y te los encontrarás a menudo. Tamblén a menudo verás notaciones &x001 o algo así. Eso es notacion binaria osea ceros y unos. Es muy habitual que para expresar un número en binario se utilice la notación hexadecimal porque es una forma facil de escribir una salchicha de ceros y unos. Cada grupo de cuatro dígitos binarios corresponde a un dígito hexadecimal.

Si llevan un & detrás significa que son sin signo (un número natural) mientras que si no lo llevan son con signo. Esto es importante en el caso del color (bueno, el signo es importante siempre claro). El color da por supuesto que el número que le das es un número natural. Si le das un número con signo entenderá el dígito de signo como un dígito mas. De esa manera te puedes encontrar que &H0000FF00 es amarillo y que &H0000FF00& es verde.

La razón de que un color se de en hexadecimal probablemente es porque es fácil pasarlo a binario y en binario la estructua de un color es los primeros X bits indican la cantidad de azul, los siguientes X bits indican la cantidad de rojo, los siguientes X bits indican la cantidad de verde. Al mezclar unos con otros obtienes el color. Bueno esto no es exactamente así porque hay varios métodos para componer un color (RGB, CMYK, ..., etc) pero la idea es que para pasar rápiadmente de un color a otro basta con cambiar el bit adecuado para que la mezcla se haga por ejemplo con un verde mas suave o un verde mas oscuro según el bit que hayas cambiado. Eso es lo que gambas hace cuando le das un color. Coge los bits X y compone la cantidad de verde, de rojo y de azul para obtener el color que tu quieres.

Lo que es muy importante es que te quedes con que un integer tiene cuatro bytes. Eso es muy importante porque vale para muchas cosas. Si en alguna parte ves un tipo de dato que tiene cuatro bytes (sea color sea otra cosa) ese tipo de dato puedes meterlo en un integer porque el resultado cabe.

Aquí tienes el tamaño de los tipos de datos. Esto es muy importante aunque en este momento preciso no le veas la utilidad.
Enlace

Además lo que vayas comprendiendo de todo esto te vale para cualquier lenguaje porque no es una cuestión de gambas sino de sistemas digitales y en resumen de como funcionan los ordenadores.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo De Dato Color ¿cual? 
 
Gracias!

Funciona.

Ni siquiera probé integer probé string.

Aquí ademas de aprender gambas se aprende a programar.
 
 



 
pittusa - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo De Dato Color ¿cual? 
 
Como te dije en realidad ese color se obtiene combinando unos colores básicos. si juntas el verde 011 con el azul 110 con el rojo 010 puedes obtener 010110011 (son cifras figuraads) obtienes un color.

Como eso es un número (el que sea) y lo puedes almacenar en un integer eso quiere decir que dispones de todos los colores que caben en un integer que son muchos. Eso no es importante. lo que si te puede interesar a la hora de trabajar con colores es que tiene sentido que tu hagas operaciones aritméticas con colores.
Citar:
dim C as integer
C=textbox1.backcolor
C=C+1000
Textbox1.backcolor=C

o quizá se puede operar como con un integer normal (habría que probarlo)
Citar:
textbox1.backcolor+=1000

y lo que has hecho ha sido cambiar el color. Habría que mirar como se forman los colores (no tengo ni idea ni me interesa) pero por ejemplo si sumas de 1000 en 1000 es posible que oscurezcas y si restas de 1000 en mil aclares. Puedes hacer bucles o cosas que cambien colores de objetos, etc.

Cosas que por ejemplo para juegos pueden ser interesantes. Puedes hacer que una pieza se ponga colorada un par de segundos y luego se aclare simplemente añadiendo o quitando o cambiando el color de backcolor porque en algún bucle o por alguna condición o lo que sea haces alguna operación con el valor de backcolor. Naturalmente para volver al color previo haces la operación inversa y san seacabó..

Cosas así.

Cada vez que tu cambias el valor gambas lo pasa a binario y pone cada color primario como corresponda para obtener el nuevo color.

 
 



 
última edición por soplo el Sabado, 19 Marzo 2011, 06:54; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿cual Es La Longitud Maxima De Una Cadena... jsbsan General 9 Jueves, 19 May 2011, 22:01 Ver último mensaje
Ronny
No hay nuevos mensajes Crear Una Base De Datos En Gambas 3 ¿cual... metalgearxd General 4 Martes, 29 Enero 2013, 13:27 Ver último mensaje
shordi
No hay nuevos mensajes Como Se Declara Una Variable De Tipo Color? v3ctor General 2 Domingo, 01 Diciembre 2013, 21:03 Ver último mensaje
v3ctor
No hay nuevos mensajes Tipo De Dato Exacto En Una Propiedad De Clase v3ctor Controles/Librerías/Componentes 4 Martes, 28 Marzo 2017, 22:59 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron