Thema: Delphi eigene ComboBox

Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#1

eigene ComboBox

  Alt 29. Dez 2007, 23:13
Hi,

ich möchte eine ComboBox so abwandeln, dass Sie automatisch aufklappt, sobald sie den Fokus erhält oder das Editfeld angeklickt wird.
(Sonst soll alles original bleiben - kein Autoselect o.ä.)

Beim Fokussieren über die Tab-Taste klappt das schon, nicht aber wenn man mit der Maus in das Editfeld klickt.

Hat jemand einen Tipp?

Delphi-Quellcode:
  TComboBoxData = class(TComboBox)
  private
...
    procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
    procedure WMKillFocus(var Message: TWMSetFocus); message WM_KILLFOCUS;
  protected
...
    procedure Click; override;
    procedure MouseDown(Button:TMouseButton;Shift:TShiftState;X,Y:Integer); override;
  public
...
  published
...
  end;


procedure Register;


{ TComboBoxData }

procedure TComboBoxData.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  inherited;
// :-( Wird nur beim Klick auf den DropDownButton aufgerufen
end;

procedure TComboBoxData.Click;
begin
  inherited;
// :-( wird nur beim Anklicken eines Items aufgerufen
end;

procedure TComboBoxData.WMSetFocus(var Message: TWMSetFocus);
begin
  inherited;
  DroppedDown := True;
// :-) FUNKTIONIERT beim Fokussieren über Tab-Taste
end;

Evtl. kann man irgendwie die OnClick-Behandlung der "Edit-Komponente" zuordnen!?


Danke Stahli
  Mit Zitat antworten Zitat