![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Duda tonta con herencia
Estoy usando un componente TDateTimePicker para que el usuario indique una fecha. Como puede sre que el rango de fechas no alcance la fecha del sistema me gustaría, por aquello de la elegancia, eliminar el circulo de la fecha del día de forma que no se muestre. He estado viendo la ayuda de este componente y, al menos en teoría, debería poder hacer esto:
Código:
DateTimePicker1->ShowTodayCircle = false Cita:
|
|
#2
|
||||
|
||||
|
Por favor, recuerda poner títulos descriptivos a tus preguntas
![]() Gracias y feliz año ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
||||
|
||||
|
Perdona, no me di cuenta.
|
|
#4
|
||||
|
||||
|
Si son "protected", heredándolas. Pero claro, deberás usar entonces la clase derivada y no la original (instalarlo como componente o crearlo "a mano").
Debería ser tan fácil como: Código:
class TMiDateTimePicker: public TDateTimePicker {
public
/* Getter */
bool GetShowTodayCircle (void) inline { return this->ShowTodayCircle; }
};
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#5
|
||||
|
||||
|
La solución que propone Ñuño Martínez sería de esta forma:
Código:
class TMiDateTimePicker: public TDateTimePicker
{
public:
void __fastcall SetShowTodayCircle(bool v) {ShowTodayCircle = v;}
};
// Para quitar el círculo
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMiDateTimePicker *DateTimePicker = (TMiDateTimePicker*)DateTimePicker1;
DateTimePicker->SetShowTodayCircle(false);
}
La solución puede hacerse desde la API de Windows asignando al evento OnDropDown el siguiente código: Código:
void __fastcall TForm1::DateTimePicker1DropDown(TObject *Sender)
{
// Encontramos el HANDLE del calendario
HANDLE hCalendar = (HANDLE)SendMessage(DateTimePicker1->Handle, DTM_GETMONTHCAL, 0, 0);
if(hCalendar > 0)
SetWindowLong(hCalendar, GWL_STYLE, GetWindowLong(hCalendar, GWL_STYLE)|MCS_NOTODAYCIRCLE);
}
Saludos. |
|
#6
|
||||
|
||||
|
Muchas gracias por la ayuda. Me ha funcionado perfectamente con la API.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayuda con QREPORT!!!!! (DUDA TONTA) | pape19 | Impresión | 1 | 03-08-2010 00:36:28 |
| duda algo tonta | cyber_zero | Varios | 10 | 17-09-2008 00:08:58 |
| Pregunta Tonta | Mario1980 | Varios | 1 | 30-10-2004 16:36:14 |
| duda tonta con gdb | acrophet | Conexión con bases de datos | 14 | 19-02-2004 20:26:35 |
| duda tonta :P | acrophet | Varios | 2 | 01-12-2003 11:12:20 |
|