Ver Mensaje Individual
  #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
Reputación: 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