** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Abrir cuadro de diálogo de color
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoAbrir cuadro de diálogo de color

 Responder Responder
Autor
Mensaje
JGOfisoft Ver desplegable
Nuevo
Nuevo


Unido: 20/Agosto/2015
Localización: España
Estado: Sin conexión
Puntos: 35
Enlace directo a este mensaje Tema: Abrir cuadro de diálogo de color
    Enviado: 11/Mayo/2023 a las 18:13
Necesito ayuda para seleccionar un color para un campo de texto al pulsar un botón creado para tal fin en un formulario de access 365.
Muchas gracias anticipadas


Editado por JGOfisoft - 11/Mayo/2023 a las 18:13
Juan Gonzalez
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14732
Enlace directo a este mensaje Enviado: 12/Mayo/2023 a las 09:50
Hola,

Tengo este modulito que me sirve para levantar la paleta de color y obtener el color seleccionado:

Option Compare Database
Option Explicit

' Declaraciones (para aDialogColor)
#If Win64 Then
    Private Declare PtrSafe Function CHOOSECOLOR Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As COLORSTRUC) As Long
#Else
    Private Declare Function CHOOSECOLOR Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As COLORSTRUC) As Long
#End If

' Estructura (para aDialogColor)
Private Type COLORSTRUC
  lStructSize       As Long
  hWnd              As Long
  hInstance         As Long
  rgbResult         As Long
  lpCustColors      As String
  Flags             As Long
  lCustData         As Long
  lpfnHook          As Long
  lpTemplateName    As String
End Type

' Estructura de devolución de valor
Public Type udtSysDialogColor
    IsSelected      As Boolean
    PreSelected     As Variant
    SelectedColor   As Long
End Type
Public uSysDialogColor  As udtSysDialogColor

' Constantes (para aDialogColor)
Private Const CC_SOLIDCOLOR = &H80
Private Const CC_RGBINIT = &H1

Public Function aDialogColor()
    
    Dim x As Long, CS As COLORSTRUC, CustColor(16) As Long
    
    CS.lStructSize = Len(CS)
    
    CS.hWnd = Application.hWndAccessApp
    
    CS.Flags = CC_SOLIDCOLOR Or CC_RGBINIT
    CS.lpCustColors = String$(16 * 4, 0)
    
    ' Were we passed a value in PreselectedColor
    If Not IsMissing(uSysDialogColor.PreSelected) Then
        CS.rgbResult = uSysDialogColor.PreSelected
    End If
    
    x = CHOOSECOLOR(CS)
    If x = 0 Then
        ' ERROR - return preselected Color
        uSysDialogColor.IsSelected = False
        Exit Function
    Else
        ' Normal processing
        uSysDialogColor.SelectedColor = CS.rgbResult
        uSysDialogColor.IsSelected = True
    End If
  
End Function

A ver si te sirve
Xavi, un minyó de Terrassa

Mi web
Arriba
JGOfisoft Ver desplegable
Nuevo
Nuevo


Unido: 20/Agosto/2015
Localización: España
Estado: Sin conexión
Puntos: 35
Enlace directo a este mensaje Enviado: 13/Mayo/2023 a las 13:44
Hola Xavi, en que variable se guarda el color seleccionado par poder aplicarlo a un objeto.
Muchas gracias por tu colaboración y un saludo
Juan Gonzalez
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14732
Enlace directo a este mensaje Enviado: 13/Mayo/2023 a las 13:49
En la variable uSysDialogColor que utiliza una estructura udtSysDialogColor

Lanzas la función aDialogColor y evalúas el resultado. Algo así:

aDialogColor
If uSysDialogColor.IsSelected Then
  ' Se ha seleccionado. 
  Me!ElCampoTexto.BackColor = uSysDialogColor.SelectedColor
End If
Xavi, un minyó de Terrassa

Mi web
Arriba
JGOfisoft Ver desplegable
Nuevo
Nuevo


Unido: 20/Agosto/2015
Localización: España
Estado: Sin conexión
Puntos: 35
Enlace directo a este mensaje Enviado: 29/Junio/2023 a las 16:53
Xavi, muchas gracias por todo, ya lo resolví
Juan Gonzalez
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable