Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2010
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Abrir un ComboBoxEx automáticamente

Hola chicos (y chicas, que las hay).

A ver si me ayudan... tengo un TComboBoxEx y desearía que cuando el ratón pase por encima se abriera automáticamente. Algo tan fácil como poner la instrucción en el evento OnMouseEnter:
Código Delphi [-]
  cbAccion.DroppedDown := True;

Pero éste componente no tiene dicho evento.

Gracias a todos.
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #2  
Antiguo 10-02-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Bueno, la manera más fácil es redefinir la clase TComboBoxEx para que intercepte el mensaje CMMouseEnter.

Algo así:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type TComboBoxEx = class(ComCtrls.TComboBoxEx)
  private
    procedure CMMouseEnter(var msg: TMessage) ; message CM_MOUSEENTER;
end;

type
  TForm1 = class(TForm)
    cbb1: TComboBoxEx;
  private

[...]

procedure TComboBoxEx.CMMouseEnter(var msg: TMessage);
begin
  DroppedDown:= True;
end;

Al declarar una clase que se llama igual que una que ya existe, se "engaña" a Delphi para que instancie tu clase en vez de la original... Por eso hay que declararla antes de la declaración de la Form1.

Espero te sirva. Saludongos.
Responder Con Cita
  #3  
Antiguo 11-02-2010
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Perfecto Lord. Sencillo y elegante. Gracias.
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #4  
Antiguo 03-03-2010
LuisAlf:: LuisAlf:: is offline
Miembro
 
Registrado: nov 2009
Posts: 60
Poder: 15
LuisAlf:: Va por buen camino
Al leer el post se me hizo interesante el problema.....

Saben la solución que da Lord Delfos es excelente, me gusto mucho,pero antes de implementarla quise experimentar un poco y lo logre....muy a mi manera pero es una solucion......creo que es una forma salvaje de hacerlo pero bueno.....

Código:
 
 if((x<(combo.left+combo.Width+5))and(x>combo.Left-6))
    and((y<(combo.top+combo.height+5))and(y>combo.Top-5))then
        combo.DroppedDown:=true;

Lo aplique a un combobox(no se cual seal sea el comboboxEx) y como claramente afxe dijo que este componente no tiene el evento onmousemove, pués se me ocurrio hacerlo pero con el onmousemove de la forma, es decir al estar el cursor cerca de la posición del combobox se activa la propiedad DroppedDown:=true, esto es lo que valida el if del codigo al conocer la posición del cursor por medio de los parametros del evento: x, y...

Última edición por LuisAlf:: fecha: 03-03-2010 a las 18:38:21. Razón: FORMATO
Responder Con Cita
  #5  
Antiguo 03-03-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
¡Pues funciona muy bien!

Lo bueno de tu solución es que no se necesita declarar una nueva clase en cada ventana en la que uno quiera usar el "truco".
Responder Con Cita
Respuesta



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
Instalar automaticamente JULIPO MySQL 2 15-11-2007 21:20:19
Redireccionar pagina automaticamente Coco_jac PHP 3 05-09-2007 08:18:28
Ayuda ComboBoxEx Ge0Ks C++ Builder 11 27-02-2007 05:13:46
cerrar automáticamente emiliu Varios 5 27-11-2005 16:37:12
Actualizar Delphi automaticamente brandolin Varios 3 25-11-2003 21:24:39


La franja horaria es GMT +2. Ahora son las 00:29:32.


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