![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убрать фокус
Piero © (2005-11-26 11:11:00)У меня на форме есть только 1 компанент, который может получить фокус - comboBox, и при движении колеса мыши, значения его меняются, как убрать с него фокус, и как сделатьЖ если есть фокус, что бы не было реакции на вращение колеса мышки
Если ставить обработчик в форме:
procedure TMainForm.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
WheelDelta:=0
end;
не помагает
0xBAD (2005-11-27 02:44:00) [1]а ComboBox1.TabStop:=false не помогает?
sniknik (2005-11-26 17:10:00) [2]можно так
переписывае все описание класса tcomboBox к себе в модуль выше описания формы, и делаеш небольшое изменение
type
TComboBox = class(TCustomComboBox)
private
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
published
property AutoComplete default True;
property AutoDropDown default False;
property AutoCloseUp default False;
property BevelEdges;
property BevelInner;
property BevelKind default bkNone;
property BevelOuter;
property Style; {Must be published before Items}
property Anchors;
property BiDiMode;
property CharCase;
property Color;
property Constraints;
property Ctl3D;
property DragCursor;
property DragKind;
property DragMode;
property DropDownCount;
property Enabled;
property Font;
property ImeMode;
property ImeName;
property ItemHeight;
property ItemIndex default -1;
property MaxLength;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property Sorted;
property TabOrder;
property TabStop;
property Text;
property Visible;
property OnChange;
property OnClick;
property OnCloseUp;
property OnContextPopup;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnDrawItem;
property OnDropDown;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMeasureItem;
property OnSelect;
property OnStartDock;
property OnStartDrag;
property Items; { Must be published after OnMeasureItem }
end;
TForm1 = class(TForm)
....
procedure TComboBox.WMCommand(var Message: TWMCommand);
begin
if Message.NotifyCode <> 1 then inherited;
end;
изменения выделенны.
Piero (2005-11-26 15:57:00) [3]Спасибо, я не заметил, что WheelDelta - не var-параметр
Zeqfreed (2005-11-26 13:56:00) [4]Piero (26.11.05 11:11)
> procedure TMainForm.FormMouseWheel(Sender: TObject;
>Shift: TShiftState;
> WheelDelta: Integer; MousePos: TPoint; var Handled:
>Boolean);
>begin
> WheelDelta:=0
>end;
> не помагает
Разумеется, не помогает. Т.к. WheelDelta - не var-параметр, то его изменение (по сути изменение локальной копии) действительно лишь в пределах процедуры. Читаем справку по событию TMouseWheelEvent и думаем. После того как подумали, понимаем, что установкаHandled := true;укажет, что событие больше не требует обработки и так как мы ничего больше не сделали ни к чему не приведет.
Piero (2005-11-26 13:02:00) [5]Не знаю
а по второму вопросу, как отключить, обработку вращения колеса мышки?
Anatoly Podgoretsky (2005-11-26 12:49:00) [6]А куда его убрать, раз у тебя только один компонент?
Piero (2005-11-26 12:13:00) [7]все, равно не убирается фокус
ActiveControl:=nil
MainForm.activecontrol:=nil;
ss2 (2005-11-26 12:03:00) [8]ActiveControl:=nil;