Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #10  
Antiguo 06-11-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Lepe Ver Mensaje
Al, como has hablado de "otros lenguajes de programación y tal..." ¿has pensado en suites de componentes?, Por ejemplo los jfControls definen un panel donde pintar, y a partir de ahí crean sus checkboxes [...] Saludos y siento ser un agua fiestas
Hola Lepe, no aguas ninguna fiesta.

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.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 22:18:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi