...get the Handle of a ComboBox List?

Author: Thomas Stutz

Category: VCL

  private
    
{ Private declarations }
    
procedure ComboBoxMessage(var Msg: TMessage); message WM_USER;
  public
    
{ Public declarations }
  
end;

var
  
Form1: TForm1;

implementation

{$R *.dfm}

function EnumProc(wnd: HWND; Alabel: TLabel): BOOL; stdcall;
var
  
buffer: array[0..50] of Char;
begin
  
Result := True;
  if IsWindowVisible(wnd) then
  begin
    
GetClassName(wnd, buffer, SizeOf(buffer));
    if StrIComp(buffer, 'ComboLBox') = 0 then
    begin
      
Alabel.Caption := Format('handle found: %x', [wnd]);
      Result := False;
    end;
  end;
end;

procedure TForm1.ComboBoxMessage(var Msg: TMessage);
begin
  
EnumThreadWindows(GetCurrentThreadID, @EnumProc, Integer(label1));
end;

procedure TForm1.ComboBox1DropDown(Sender: TObject);
begin
  
PostMessage(Handle, WM_USER, 0, 0);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base