Давайте напишем пример, в котором будем программно менять внешний вид панели. Для этого создайте новое приложение и установите на форму два компонента TPanel с палитры компонентов Standard.
В этом примере не будут меняться имена панелей. Они останутся по умолчанию Panel 1 и Рапе12. Так будет нагляднее.
Единственное, что мы поменяем,— это свойства caption обеих панелей. У первой я написал Buttoni, а у второй — Close.
Теперь создадим обработчик события onmousedown (срабатывает, когда нажали кнопку мыши) для первой панели и в нем напишем следующий код:
procedure TFormi.PanelIMouseDown(Sender: TObj ect;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Panel1.BevelOuter:=bvLowered;
end;
Одна строка кода меняет вид панели. Создадим еще обработчик события onmouseup (срабатывает, когда отпустили нажатую кнопку мыши) для первой панели. По этому событию меняется вид панели на исходный:
procedure TFormi.PanelIMouseUp(Sender: TObj ect;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Panel1.BevelOuter:=bvRaised;
end;
Попробуйте запустить программу и нажать на первую панель. Когда вы нажимаете кнопку мыши, панель изменит внешний вид на вогнутый. При отпускании мыши панель возвращает исходный вид. Таким образом, панель начинает работать как кнопка.
Раз так, давайте создадим экзотичную кнопку. Для второй панели изменим свойства:
- BevelOuter на bvRaised;
- BevelInner на bvLowered.
Теперь создадим обработчик события onmousedown для второй панели и в нем напишем следующее:
Procedure TForml.Panel2MouseDown(Sender: TObj ect;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin
Panel2.BevelOuter:=bvLowered;
Pane12.BevelInner:=bvRaised; end;
Здесь меняется внешний вид панели на вогнутый. Теперь создадим обработчик события onmouseup для второй панели. По этому событию мы меняем вид панели на исходный:
procedure TForml.Panel2MouseUp(Sender: TObj ect;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin
Panel2.BevelOuter:=bvRaised;
Panel2.BevelInner:=bvLowered;
Close; end;