Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

создание своего 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.046 c
3-1115969620
pc-hunter
2005-05-13 11:33
2005.06.29
Печать базы даных


3-1116167047
кофейник
2005-05-15 18:24
2005.06.29
Перенос базы на другой сервер


4-1115255968
nickmas
2005-05-05 05:19
2005.06.29
Как перехватить сообщение об ошибке...


14-1117192030
dr Tr0jan
2005-05-27 15:07
2005.06.29
Гостиницы в Москве


1-1117806225
Eraser
2005-06-03 17:43
2005.06.29
Принцип распознавания графических смайликов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский