|
|
|
|
Как
узнать размеры 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;
Источник:
Дельфи. Вокруг да
около.
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|
|