Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ComboBox раскрытие вверх


Автор: hug 14.9.2007, 19:30
Добрый день, кто-нибудь реализовал раскрытие комбо вверх?
как подойти к этому вопросу?

Автор: Rrader 16.9.2007, 08:22
Вот накидал компонентик:
Код

TExtCombo = Class(TComboBox)
Protected
  Procedure WndProc(Var Msg: TMessage); Override;
End;

{ TExtCombo }

Procedure TExtCombo.WndProc(Var Msg: TMessage);
Var
  Info: TComboBoxInfo;
  R: TRect;
  W: Integer;
Begin
  Case Msg.Msg Of
    WM_LBUTTONDOWN:
      Begin
        Msg.Result := 0;
        Info.cbSize := SizeOf(TComboBoxInfo);
        GetComboBoxInfo(Self.Handle, Info);
        SendMessage(Self.Handle, CB_SHOWDROPDOWN, 1, 0);
        GetWindowRect(Info.hwndList, R);
        { Height Of List }
        W := R.Bottom - R.Top;
        GetWindowRect(Self.Handle, R);
        { New Position }
        SetWindowPos(Info.hwndList, 0, R.Left, R.Top - W,
          Self.Width, W, 0);
        Exit;
      End;
  End;
  Inherited WndProc(Msg);
End;

 smile

Добавлено через 1 минуту и 41 секунду
Либо делай сабклассинг TComboBox

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)