Форум: "Компоненты";
Текущий архив: 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.037 c