![]() |
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 |
|
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,...). |
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 ??? |
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. |
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. |
La franja horaria es GMT +2. Ahora son las 21:52:45. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi