воскресенье, 10 февраля 2013 г.

как нажать кнопку из другой кнопки delphi

Наличие обработчиков событий 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

Комментариев нет:

Отправить комментарий