Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

создание своего combobox   Найти похожие ветки 

 
snake2003   (2004-06-10 13:12) [0]

выпадающее окно становится активным при выборе мышкой - как такое предотвратить ? смотрел в исходниках вроде так же сделал.
привожу свой код - может чего недопонял или проглядел - ткните носом.

procedure TSnPopupWindow.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 with Params do
 begin
   Style   := WS_POPUP or WS_BORDER or WS_CLIPCHILDREN;
   ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
   WindowClass.Style := CS_SAVEBITS;
 end;
end;

procedure TSnPopupWindow.ShowPopup(Origin: TPoint);
begin
 SetWindowPos(Handle, HWND_TOP, Origin.X, Origin.Y, 0, 0,SWP_NOSIZE or SWP_NOACTIVATE or SWP_SHOWWINDOW);
 FVisible := True;
end;

constructor TSnComboEdit.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 ControlStyle  := ControlStyle - [csSetCaption];
 FDropDownRows := 8;
 FPopup := TSnPopupWindow.Create(Self);
 with FPopup do
 begin
   Parent  := Self;
   Width   := Self.Width;
   Height  := FDropDownRows*19;
   Visible := False;
 end;
 FPopupVisible := False;
end;

procedure TSnComboEdit.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 with Params do
 begin
   if NewStyleControls and Ctl3D
     then ExStyle := ExStyle or WS_EX_CLIENTEDGE
     else Style   := Style or WS_BORDER or WS_CLIPCHILDREN;
 end;
end;


 
Игорь Шевченко ©   (2004-06-10 16:40) [1]


> выпадающее окно становится активным при выборе мышкой


А каким оно должно становиться, если в него мышкой ткнули ?


 
snake2003   (2004-06-11 11:00) [2]

прикольно конечно - Игорь Шевченко. но это не ответ, мне надо что бы активным оставался edit.


 
snake2003   (2004-06-11 11:44) [3]

охота сдела комбо как в IE может кто подскажет где пример глянуть


 
Игорь Шевченко ©   (2004-06-11 13:52) [4]

snake2003   (11.06.04 11:44)


> охота сдела комбо как в IE


TComboBoxEx


 
snake2003   (2004-06-11 14:23) [5]

а в TComboBoxEx нельзя изменять мышкой размер выпадающего окна.
к тому же мне интересен принцип работы таких компонентов. я потом планирую на выпадающем окне отображать несколько других компонентов.


 
malkolinge ©   (2004-06-14 12:44) [6]

http://www.delphikingdom.com/helloworld/treecombobox.html


 
snake2003   (2004-06-15 11:10) [7]

этот пример я уже видел - там та же проблема. в обсуждении рекомендуют разобраться с флагами - но у меня как раз это и не получается.


 
snake2003   (2004-06-15 11:16) [8]

и еще вопрос(для общего развития): почему на C++ когда создают выпадающее окно пишут WS_CHILD а на дельфях WS_POPUP, пробовал создавать как в си так окно просто не отображается. в чем тут загвоздка ?


 
snake2003   (2004-06-15 17:18) [9]

с активацией окна поборолся так
procedure TSnPopupWindow.WMMouseActivate(var Msg: TMessage);
begin
 Msg.Result := MA_NOACTIVATE;
end;
а по поводу WS_CHILD кто может объяснить ?


 
Игорь Шевченко ©   (2004-06-21 14:17) [10]


> а по поводу WS_CHILD кто может объяснить ?


Задай свой вопрос в отдельной ветке и в другой конференции, например, в WinAPI


 
dm ©   (2004-06-25 11:59) [11]

procedure DropDownListBox.ONEnter;
begin
 parent.setfocus; // parent =  EDIT, к которому привязан ListBox
end;



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
1-1117797070
Mishenka
2005-06-03 15:11
2005.06.29
Как посчитать контрольную сумму файла?


3-1115995250
Lex_!
2005-05-13 18:40
2005.06.29
TThread и работа с базой


4-1115604301
Antoxa
2005-05-09 06:05
2005.06.29
Подскажите. Есть ярлыка на рабочем столе в т.ч. и мой надо чтобы


1-1118107653
Rat
2005-06-07 05:27
2005.06.29
Как в DBGrid сделать дополнительный bookmark


14-1117440868
Огшу
2005-05-30 12:14
2005.06.29
WLAN, дальность полета ?