• Jueves 2 de Mayo de 2024, 15:25

Autor Tema:  Utilizar La Paleta De Colores  (Leído 5320 veces)

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Utilizar La Paleta De Colores
« en: Viernes 24 de Noviembre de 2006, 17:30 »
0
Hola mi siguiente practica tengo que hacer una paleta de colores y los colores señalados en ella tienen que aparecer en un fondo o en las letras segun elija....todo va con matrices.
Os paso los codigos para ver si sabeis orientarme como puedo hacer para seleccionar los colores y que se plasmen en el proyecto....espero haberme exxplicado bien...xDDD
Un saludo!


Option Explicit
Public Brojo As Integer
Public Bverde As Integer
Public Bazul As Variant
Public FRojo As Integer
Public Fverde As Integer
Public Fazul As Variant

Private Sub cmdColores_Click()
Me.CommonDialog1.ShowColor
End Sub

Private Sub cmdSalir_Click()
    End
End Sub

Private Sub Form_Load()
    Brojo = 0
    Bverde = 0
    Bazul = 0
    FRojo = 255
    Fverde = 255
    Fazul = 255
    lblCuadro.BackColor = RGB(Brojo, Bverde, Bazul)
    lblCuadro.ForeColor = RGB(FRojo, Fverde, Fazul)
End Sub

Private Sub hsbColor_Change(Index As Integer)
    If optColor(0).Value = True Then
        lblCuadro.BackColor = RGB(hsbColor(0).Value, hsbColor(1).Value, hsbColor(2).Value)
        Dim i As Integer
        For i = 0 To 2
            txtColor(Index).Text = hsbColor(Index).Value
        Next i
    Else
        lblCuadro.ForeColor = RGB(hsbColor(0).Value, hsbColor(1).Value, hsbColor(2).Value)
        For i = 0 To 2
            txtColor(Index).Text = hsbColor(Index).Value
        Next i
    End If
End Sub

Private Sub optColor_Click(Index As Integer)
    If Index = 0 Then
        Brojo = hsbColor(0).Value
        Bverde = hsbColor(1).Value
        Bazul = hsbColor(2).Value
        hsbColor(0).Value = FRojo
        hsbColor(1).Value = Fverde
        hsbColor(2).Value = Fazul
    Else
        FRojo = hsbColor(0).Value
        Fverde = hsbColor(1).Value
        Fazul = hsbColor(2).Value
        hsbColor(0).Value = Brojo
        hsbColor(1).Value = Bverde
        hsbColor(2).Value = Bazul
    End If
End Sub

Private Sub txtColor_Change(Index As Integer)
    If Val(txtColor(Index).Text) > 255 Then
        hsbColor(Index).Value = 255
    End If
hsbColor(Index).Value = Val(txtColor(Index).Text)
   
End Sub




Tambien tengo que poder escribir en las cajas de texto y que se muevan las barras segun el valor escrito...

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #1 en: Sábado 25 de Noviembre de 2006, 01:53 »
0
unas dudas:

Creo que no es muy entendible lo que deseas realizar ¿Podrías explicarte mejor?, y otra, ¿para que muestras la paleta de colores con el commondialog y nunca recoges el valor?  :unsure:

yo creo que ya que te expliques mejor, vamos a poder ayudarte, ya que parece algo simple :)

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #2 en: Sábado 25 de Noviembre de 2006, 02:15 »
0
si,a ver,es parte del programa,tengo que poder mostrar la paleta de colores,mediante un commandbutton.
Cuando le pulsas aparece ésta y tienes que darle la instruccion a base de los eventos del codigo...que cuando cliques en un color de la paleta aparezca en el label que tengo para recoger los colores....(es bastante simple)lo unico que no se el codigo para que esta funcione....pero no tiene mas misterio!
Solo es averiguar el codigo para que cuando pinches en un color aparezca en el label....
Espero que ahora se entienda mejor:)

Gracias!

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #3 en: Sábado 25 de Noviembre de 2006, 02:30 »
0
lo que deseas es recoger el color que se selecciono del showcolor? si es asi es simple:

Private Sub Command1_Click()
CommonDialog1.ShowColor
Label1.BackColor = CommonDialog1.Color
End Sub

Prueba eso :D

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #4 en: Sábado 25 de Noviembre de 2006, 16:17 »
0
Muchas gracias!!!!!!!!!!!!la idea me quedo clara,como tambien tenía unas letras tenía que añadirle unas cosillas mas pero ya esta todo bien....o eso espero!!!!!!!
Muchisimas gracias!


Lo unico que se me esta resistiendo es lo de escribir los valores en las cajas de texto,en otras practicas lo logré pero en esta no se que pasa que no se me escriben.Podríais ayudarme en eso?



MUchas gracias

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #5 en: Sábado 25 de Noviembre de 2006, 17:14 »
0
dudas para mejorar el programa.....

es posible que si haces doble click en un color este se plasme en el label directamente sin necesidad de darle al aceptar de clickar en "aceptar"?


tengo puesto dos opt buttons para seleccionar el color del fondo y del texto...cuando yo pinto mediante la paleta de colores y le cambio a pintar de texto a fondo lo hace sin problemas,pero cuando vuelvo a presionar al opt del texto para cambiar el color del texto ese se cambia solo a uno seleccionado anteriormente por medio de las barras "hsb"¿Hay alguna forma de que mantenga el ultimo color seleccionado de la paleta de colores?

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #6 en: Sábado 25 de Noviembre de 2006, 19:14 »
0
no, solo se puede de esa manera, lo que puedes hacer es crear tu propia paleta :) aunque creo que te llevaría tiempo, y por lo segundo porque no nos muestras tu código para ver cual es tu problema ;)

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #7 en: Sábado 25 de Noviembre de 2006, 21:53 »
0
Estaba puesto arriba pero lo volveré a poner actualizado....:P


Option Explicit
Public Brojo As Integer
Public Bverde As Integer
Public Bazul As Variant
Public FRojo As Integer
Public Fverde As Integer
Public Fazul As Variant

Private Sub cmdColores_Click()
Me.CommonDialog1.ShowColor
If optColor(0).Value = True Then
    lblCuadro.BackColor = CommonDialog1.Color
Else
    If optColor(1).Value = True Then
        lblCuadro.ForeColor = CommonDialog1.Color
    End If
End If
End Sub

Private Sub cmdSalir_Click()
    End
End Sub

Private Sub Form_Load()
    Brojo = 0
    Bverde = 0
    Bazul = 0
    FRojo = 255
    Fverde = 255
    Fazul = 255
    lblCuadro.BackColor = RGB(Brojo, Bverde, Bazul)
    lblCuadro.ForeColor = RGB(FRojo, Fverde, Fazul)
End Sub

Private Sub hsbColor_Change(Index As Integer)
    If optColor(0).Value = True Then
        lblCuadro.BackColor = RGB(hsbColor(0).Value, hsbColor(1).Value, hsbColor(2).Value)
        Dim i As Integer
        For i = 0 To 2
            txtColor(Index).Text = hsbColor(Index).Value
        Next i
    Else
        lblCuadro.ForeColor = RGB(hsbColor(0).Value, hsbColor(1).Value, hsbColor(2).Value)
        For i = 0 To 2
            txtColor(Index).Text = hsbColor(Index).Value
        Next i
    End If
hsbColor(Index).Value = Val(txtColor(Index).Text)
End Sub

Private Sub optColor_Click(Index As Integer)
    If Index = 0 Then
        Brojo = hsbColor(0).Value
        Bverde = hsbColor(1).Value
        Bazul = hsbColor(2).Value
        hsbColor(0).Value = FRojo
        hsbColor(1).Value = Fverde
        hsbColor(2).Value = Fazul
    Else
        FRojo = hsbColor(0).Value
        Fverde = hsbColor(1).Value
        Fazul = hsbColor(2).Value
        hsbColor(0).Value = Brojo
        hsbColor(1).Value = Bverde
        hsbColor(2).Value = Bazul
    End If
End Sub

Private Sub txtColor_Change(Index As Integer)
    If Val(txtColor(Index).Text) > 255 Then
        hsbColor(Index).Value = 255
    End If
txtColor(Index).Text = Val(txtColor(Index).Text)
hsbColor(Index).Value = Val(txtColor(Index).Text)

End Sub

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #8 en: Sábado 25 de Noviembre de 2006, 22:10 »
0
En este procedimiento

Código: Text
  1.  
  2. Private Sub cmdColores_Click()
  3.   Me.CommonDialog1.ShowColor
  4.   If optColor(0).Value = True Then
  5.      lblCuadro.BackColor = CommonDialog1.Color
  6.    ElseIf optColor(1).Value = True Then
  7.        lblCuadro.ForeColor = CommonDialog1.Color
  8.    End If
  9.    
  10.     long_a_RGB(CommonDialog1.Color)
  11.    
  12.  End If
  13. End Sub
  14.  
  15.  

Colocale el valor del color correspondiente a las barras para que lo 'guerde como el ultimo' y te actualice la barras (RGB)

Código: Text
  1.  
  2. Private Sub Long_a_RGB(ByVal Color)
  3.   Dim Rojo As Byte, Verde As Byte, Azul As Byte
  4.  
  5.   Azul = (Color And 16711680) / 65536
  6.   Verde = (Color And 65280) / 256
  7.   Rojo = Color And 255
  8.  
  9.     hsbColor(0).Value = Rojo
  10.     hsbColor(1).Value = Verde
  11.     hsbColor(2).Value = Azul
  12.  
  13. End Sub
  14.  
  15.  


Sera eso lo que necesitas?

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #9 en: Sábado 25 de Noviembre de 2006, 22:49 »
0
""Colocale el valor del color correspondiente a las barras para que lo 'guerde como el ultimo' y te actualice la barras (RGB)""


No entedí bien esa frase.....veo la idea pero no se que valor y donde tengo que colocarlo....en la ventana de propiedades???


MUchas gracias por todo!

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #10 en: Sábado 25 de Noviembre de 2006, 23:01 »
0
ok mira disculpa mi mala expresion

lo que quiero decir esque el CommonDialog te devuelve el color seleccionado en un Long (CommonDialog1.Color) entonces en el procedimiento



Private Sub cmdColores_Click()
 Me.CommonDialog1.ShowColor
 If optColor(0).Value = True Then
    lblCuadro.BackColor = CommonDialog1.Color
  ElseIf optColor(1).Value = True Then
      lblCuadro.ForeColor = CommonDialog1.Color
  End If
 
   Long_a_RGB(CommonDialog1.Color)
 
End If
End Sub

Mandas llamar una funcion para convertir el Long a RGB que es la siguiente:

------
Private Sub Long_a_RGB(ByVal Color)
 Dim Rojo As Byte, Verde As Byte, Azul As Byte

 Azul = (Color And 16711680) / 65536
 Verde = (Color And 65280) / 256
 Rojo = Color And 255

'// Cada Color lo colocas en la barra correspondiente
   hsbColor(0).Value = Rojo
   hsbColor(1).Value = Verde
   hsbColor(2).Value = Azul

End Sub

----------

Para que cuando pulses un option el color se base en los valores de las barras, que seran el ultimo seleccionado

Me explique mejor ? o salio peor?? :P
Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #11 en: Sábado 25 de Noviembre de 2006, 23:10 »
0
Ohhhhhhhhhhhhhh!!!!!!!!!!!!!!!!si muchisimas gracias!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

PAra terminar.....para poder escribir en las cajas de texto...y que se me muevan las barras de desplazamientos???serías tan amable de explicarmelo....es que lo hice para otros trabajos,pero esta vez no se si es diferente por ir con matrices,pero no me funciona.....


De nuevo muchisimas gracias!

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #12 en: Sábado 25 de Noviembre de 2006, 23:12 »
0
Claro pero el que no entiende ahora soy yo :P

que es lo que quieres hacer?

 :rolleyes:
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #13 en: Sábado 25 de Noviembre de 2006, 23:19 »
0
jejeje xDD


Pues,veras,tengo que poder escribir en las cajas de texto que tengo en la practica,las que me dicen los valores de las barras(de 0 a 255)ahi tengo que poder escribir,y que se mueva cada correspondiente barra...por ahora solo me dan los valores cuando muevo las barras pero no puedo introducir ningun dato.

Adjunto la foto de nuevo a ver si asi se puede entender mejor la explicacion.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #14 en: Sábado 25 de Noviembre de 2006, 23:48 »
0
Esto te puede servir


Código: Text
  1.  
  2. Private Sub hsbColor_Change(Index As Integer)
  3. On Error Resume Next
  4.      Me.txtColor(Index) = Me.hsbColor(Index).Value
  5. End Sub
  6.  
  7. Private Sub txtColor_Change(Index As Integer)
  8. On Error Resume Next
  9.     Me.hsbColor(Index).Value = Val(Me.txtColor(Index))
  10. End Sub
  11.  
  12. Private Sub txtColor_KeyPress(Index As Integer, KeyAscii As Integer)
  13.   If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then
  14.     KeyAscii = 0
  15.   End If
  16. End Sub
  17.  

Aqui hay mas validaciones para solo permitir numero en los textbox

http://foros.solocodigo.com/index.php?showtopic=24250&hl=

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

BoRJiS182

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Utilizar La Paleta De Colores
« Respuesta #15 en: Lunes 27 de Noviembre de 2006, 16:39 »
0
muchas gracias,ya se lo que me fallaba para escribir en las cajas de texto....es que no había desbloqueado una propiedad que se llama locked...y por eso no me dejaba escribir en ellas...:P


Muchas gracias por la ayuda!