![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#10
|
||||
|
||||
Cita:
![]() Vaya que he considerado los componentes de terceros. Hasta ahora las pruebas que he realizado incluyen a los "cx" (Developer Express). Y desde el comienzo era de esperarse que la función RealGetWindowClass no fuese suficiente. Hablando de esa función, en el camino encontré interesantes textos que no tienen desperdicio, como los siguientes: The history of the Windows XP common controls What's up with RealGetWindowClass()? » Forum Post by Ian Hanschen De momento emplearé una solución "mixta", apoyada en: 1. La función de Windows RealGetWindowClass.- Para intentar obtener la clase base. 2. La función de Delphi FindControl.- Para obtener la instancia Delphi asociada a un HWND (cuando la haya) y comprobarla con el operador Is. Y la que quizá sea la "solución diplomática" a todo esto: 3. Enviar a la ventana el mensaje estándar wm_GetDlgCode, que como respuesta "debe" regresar una combinación de las constantes: DLGC_WANTARROWS = 1; { Control wants arrow keys } DLGC_WANTTAB = 2; { Control wants tab keys } DLGC_WANTALLKEYS = 4; { Control wants all keys } DLGC_WANTMESSAGE = 4; { Pass message to control } DLGC_HASSETSEL = 8; { Understands EM_SETSEL message } DLGC_DEFPUSHBUTTON = $10; { Default pushbutton } DLGC_UNDEFPUSHBUTTON = $20; { Non-default pushbutton } DLGC_RADIOBUTTON = $40; { Radio button } DLGC_WANTCHARS = $80; { Want WM_CHAR messages } DLGC_STATIC = $100; { Static item: don't include } DLGC_BUTTON = $2000; { Button item: can be checked } Si el tercer punto se cumpliera siempre en los componentes de terceros (en mi opinión siempre debería responderse con la verdad al mensaje wm_GetDlgCode), los puntos 1 y 2 serían innecesarios. Pero sabiendo que algunos componentes de terceros no respetan del todo ese mensaje estándar, yo tampoco los respetaré demasiado; a lo mucho les ayudaré a "mostrar lo que son" empleando los otros dos mecanismos como refuerzo. ![]() Parece que salvaremos el día. Saludos. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Probando el emsamblador de Delphi | Mav | API de Windows | 8 | 28-03-2008 06:51:13 |
Probando el ensamblador de Delphi 2 | Mav | Varios | 5 | 31-10-2007 04:15:33 |
![]() |
|