Наличие обработчиков событий OnMouseDown/OnMouseUp не мешает нажатию кнопок нажатие все равно вызывает событие Onclick.
Buttons[i].Marked := True; end; end;
OffsetRect(rO,Buttons[i].ClientOrigin.X,Buttons[i].ClientOrigin.Y); if IntersectRect(rO,r,rO) then
r.BottomRight := (Sender as TControl).ClientToScreen(Point(X,Y)); with ToolBarl do for i := 0 to ButtonCount-1 do begin
Shift: TShiftstate; X, Y: Integer); var i: Integer;r,rO : TRect; begin if Selecting then begin
procedure TForml.ToolBarlMouseUp(Sender: TObject; Button: TMouseButton;
StartingPoint := (Sender as TControl).ClientToScreen(Point(X,Y)); Selecting := True; end;
Shift: TShiftstate; X, Y: Integer); begin
procedure TForml.ToolBarlMouseDown(Sender: TObject; Button: TMouseButton;
var Start ingPoint : TPoint; Selecting : boolean;
Ниже приведен фрагмент программы, с помощью которого можно выделить кнопки на панели при помощи мыши. Приведенные ниже обработчики событий нужно присвоить всем кнопкам панели и самой панели TToolBar:
отображает поверхность кнопки синим цветом (точнее, цветом clHighlight), как у выделенных объектов. В отличие от предыдущего случая с indeterminate кнопка остается в состоянии Marked независимо от нажатий вплоть до присвоения этому свойству значения False.
После Него КНОПКа ВЫХОДИТ ИЗ СОСТОЯНИЯ Indeterminate.
Такие кнопки выделяются серым цветом, чтобы показать пользователю^ что их выбирать не следует. Переход в состояние lndeterminate=True все еще позволяет кнопке обрабатывать событие Onclick, но при этом она переходит в отжатое состояние (Down=False). Но только до следующего нажатия.
property ^determinate: Boolean;
Если в какой-то ситуации одна или несколько кнопок должны стать недоступными, для этого можно установить свойство Enabled в значение False. Но у кнопок в группе есть еще и третье состояние неопределенное:
Рис. 5.1. Несколько групп кнопок с зависимым нажатием на панели инструментов
в значение True и можно отжимать все кнопки. Значение этого свойства всегда одинаково для всех кнопок в группе.
В такой группе всегда должна быть нажата хотя бы одна кнопка; на этапе разработки установите ее свойство Dam в значение True. Но если это вам не подходит, можно установить свойство
Программирование в Delphi 7 стр.51
Комментариев нет:
Отправить комментарий