Текущий архив: 2005.12.11;
Скачать: CL | DM;
ВнизУбрать фокус Найти похожие ветки
← →
Piero (2005-11-26 11:11) [0]У меня на форме есть только 1 компанент, который может получить фокус - comboBox, и при движении колеса мыши, значения его меняются, как убрать с него фокус, и как сделатьЖ если есть фокус, что бы не было реакции на вращение колеса мышки
Если ставить обработчик в форме:
procedure TMainForm.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
WheelDelta:=0
end;
не помагает
← →
ss2 (2005-11-26 12:03) [1]ActiveControl:=nil;
← →
Piero (2005-11-26 12:13) [2]все, равно не убирается фокус
ActiveControl:=nil
MainForm.activecontrol:=nil;
← →
Anatoly Podgoretsky © (2005-11-26 12:49) [3]А куда его убрать, раз у тебя только один компонент?
← →
Piero (2005-11-26 13:02) [4]Не знаю
а по второму вопросу, как отключить, обработку вращения колеса мышки?
← →
Zeqfreed © (2005-11-26 13:56) [5]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 15:57) [6]Спасибо, я не заметил, что WheelDelta - не var-параметр
← →
sniknik © (2005-11-26 17:10) [7]можно так
переписывае все описание класса 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;
изменения выделенны.
← →
0xBAD © (2005-11-27 02:44) [8]а ComboBox1.TabStop:=false не помогает?
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.035 c