Программы   Загрузка Партнерство   О компании Контакты  
 
                    
  Карта Сайта   
   

Как узнать размеры TComboBox с показанным выпадающим списком до показа списка


На событии FormShow пошлите сообщение CB_SHOWDROPDOWN в ComboBox дважды - один раз чтобы заставить список выпасть, второй - чтобы убрать его. Затем пошлите сообщение CB_GETDROPPEDCONTROLRECT, передав в качестве параметра адрес TRect. TRect будет содержать экранные кординаты прямоугольника описывающего ComboBox вместе с выпавшим списком. Затем Вы можете вызвать ScreenToClient чтобы преобразовать экранные кординаты в координаты клиентской области окна.


var
  R: TRect;

procedure TForm1.FormShow(Sender: TObject);
var
  T: TPoint;
begin
  SendMessage(ComboBox1.Handle, CB_SHOWDROPDOWN, 1, 0);
  SendMessage(ComboBox1.Handle, CB_SHOWDROPDOWN, 0, 0);
  SendMessage(ComboBox1.Handle, CB_GETDROPPEDCONTROLRECT, 0,
  LongInt(@r));
  t := ScreenToClient(Point(r.Left, r.Top));
  r.Left := t.x;
  r.Top := t.y;
  t := ScreenToClient(Point(r.Right, r.Bottom));
  r.Right := t.x;
  r.Bottom := t.y;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Canvas.Rectangle(r.Left, r.Top, r.Right, r.Bottom );
end;

           


Куратор рекламы в Новосибирске: skoda в новосибирске. Автомобильный каталог иномарок. . Виртуальный рай для животных - усыпление собак. Ветеринарные услуги. 24ч. . Построить дом легко: педикюр на дому. Отбелить зубы быстро и без вреда. . pc strategy game .


Программы  |  Загрузка  |  Партнерство  |  О компании  |  Контакты

Copyright © LSD Software 2006 - 2011