FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Dudas TDBGrid y TComboBox en C++Builder6
Hola a todos
Cómo puedo centrar el texto de un ComboBox sin usar espacios? Cómo puedo agregarle el simbolo $ a una celda de un DBGrid, alineado a la izquierda, mientras que el valor monetario lo haga a la derecha? Gracias Saludos |
#2
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Respuesta
Gracias por responder tan rápido
Cita:
Yo no sé delphi , pero trato de traducirlo cbuilder. Ahora una pregunta, porque será que existe más documentación de Delphi que de C++Builder ??? |
#4
|
||||
|
||||
Para conseguir que un ComboBox estilo csOwnerDrawFixed escriba el Texto cuando su ItemIndex es -1, es decir, cuando no se ha elegido ninguna opción, podemos realizar un SubClassing y manejar el mensaje WM_PAINT.
Dado que la propiedad Text del ComboBox queda inhabilitada, en el ejemplo uso el Tag para almacenar un puntero char pero el texto se puede manejar como se quiera, siempre y cuando la función CBProc que va a tratar el Mensaje WM_PAINT tenga acceso a él. Nótese que el tratamiento de WM_PAINT se realiza con API y no con VCL, esto es debido a que WM_PAINT empieza a ser llamado antes de que el Canvas del ComboBox esté operativo. Muestro un ejemplo completo de un formulario con un ComboBox. Este sería el archivo.h Código PHP:
Este sería el archivo.cpp Código PHP:
Saludos. Última edición por escafandra fecha: 03-03-2024 a las 00:07:55. |
#5
|
||||
|
||||
Ajustando un poco ComboBox1DrawItem para que centre bien la opción elegida al dibujarla en la zona EDIT del ComboBox:
Código PHP:
El ajuste con GetSystemMetrics(SM_CXVSCROLL) es para que al desplegar el ComboBox no de la sensación de incoherencia en el centrado entre Items y la zona EDIT. Saludos. |
#6
|
||||
|
||||
Cita:
En ambos casos debes utilizar los eventos de pintado (Draw) de los componentes, para redibujar los elementos como desees. (para ello utiliza el Canvas del componente) En el caso del TCombobox tienes el OnDrawItem, y para el TDBGrid tienes el OnDrawColumnCell y el OnDrawDataCell. Un ejemplo el Delphi (espero que te sirva) podría ser este:
Algo similar deberás realizarlo para el TDBGrid. Has pruebas con el Canvas. Si buscas en los foros seguro que encuentras mensajes al respecto (revisa estos métodos de TCanvas; Canvas.TextRect, Canvas,TextOut, Canvas.TextExtent,...).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Manejo de excepciones de base datos sql con c++builder6 | michal | C++ Builder | 1 | 06-09-2017 10:58:06 |
Dudas con TDBGrid | FrianxD | C++ Builder | 4 | 05-10-2008 21:26:54 |
dudas para editar en TDBGrid | pborges36 | Conexión con bases de datos | 6 | 22-08-2008 16:08:09 |
Combobox con checkbox en Delphi7 o Builder6?? | hexman23 | Varios | 1 | 18-05-2007 22:31:40 |
TComboBox | calogero | Varios | 5 | 19-01-2007 18:20:20 |
|