Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.10.2011, 20:00   #1
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
Восклицание панель

Как сделать чтобы при наведении на кнопку которая на панели панель не сворачивалась обратно
Код:
procedure TForm1.sPanel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
sPanel1.Height:=30;
sSpeedButton1.Height:=30;
end;

procedure TForm1.WMMouseLeave(var msg: TMessage);
begin
 sPanel1.Height:=9;
 sSpeedButton1.Height:=9;
end;

Последний раз редактировалось mihali4; 19.10.2011 в 23:36.
Ko$ вне форума
Старый 19.10.2011, 20:35   #2
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

К примеру проверять координаты мышки на предмет нахождения над кнопкой)
или-же создать аналогичные события для кнопки, MouseMove и WMLeave, так-же создать флажок ( AboveButtonX:boolean = false; ) при MouseMove изменять на true, при WMLeave на false. B событиях панельки проверять флажок и соответственно менять или не менять размеры панельки и кнопки.
надеюсь понятно обьяснил
Lime вне форума
Старый 19.10.2011, 23:37   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Ko$ Посмотреть сообщение
Как сделать чтобы при наведении на кнопку которая на панели панель не сворачивалась обратно
А как вы собираетесь попасть мышкой на кнопку, не заходя на панель ???
mihali4 вне форума
Старый 20.10.2011, 10:06   #4
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А как вы собираетесь попасть мышкой на кнопку, не заходя на панель ???
Нужно чтобы при наведении на кнопку панель так же разворачивалась как и при наведении на саму панель
Изображения
Тип файла: jpg Безимени-1.jpg (37.6 Кб, 77 просмотров)
Ko$ вне форума
Старый 20.10.2011, 11:41   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Прежде, чем попасть на кнопку, вы обязательно попадете на панель, поскольку кнопка лежит на панели.
Следовательно, попав на панель, развертывание уже произойдет...
Вообще, я не совсем понимаю, что вы хотите получить...
Попробуйте этот простенький вариант - может как раз это вам и нужно?
Код:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
//разворачиваем
Panel1.Height:=300;
Button1.Height:=30;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
//сворачиваем
Panel1.Height:=150;
Button1.Height:=25;
end;
mihali4 вне форума
Старый 20.10.2011, 12:57   #6
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
Стрелка

mihali4 спасибо за сторание но мне нужно другое. Получается как в 1ой картинке, а надо как во второй!
Изображения
Тип файла: gif pol.gif (20.6 Кб, 78 просмотров)
Тип файла: gif nado.gif (19.2 Кб, 81 просмотров)
Ko$ вне форума
Старый 20.10.2011, 14:30   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Господи, ну это уж совсем примитивно...
Добавьте к предложенному мной еще одну процедурку:
Код:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Panel1MouseMove(Self,[],0,0);
end;
И будет вам счастье
mihali4 вне форума
Старый 18.11.2011, 09:23   #8
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
По умолчанию

mihali4 помогите 1)Как сделать: На форме есть панель, на панели кнопки, при нажатии на одну определённую из этих кнопок появлялась вторая панель прям на первой панели, на второй панели есть тоже кнопки. Как сделать чтобы при убирании курсора со второй панели она становилась Visible:=false. Я делаю но при наведении на кнопку на второй панели она закрывается так как щитает что при наведении курсора на кнопку на панели 2 она выходит за рамки самой панели 2 как сделать чтобы этого не происходило???
Код:
procedure TForm1.btn1Click(Sender: TObject);
begin
sPanel1.Visible:=True;
end;
 
 
procedure TForm1.sPanel1MouseLeave(Sender: TObject);
begin
sPanel1.Visible:=False;
end;
2)И ещё как сделать:у меня стоит панель при открытии формы она шириной 10, при наведении на панель она становится шириной 30. Как сделать программно чтобы при нажатии на кнопку она становилась просто шириной 30 без наведении на неё курсора (Нужно Panel1)

Код:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Panel1.Height:=30;
lbl1.Font.Size:=16;
lbl1.Top:=8;
lbl1.Left:=325;
sSpeedButton1.Top:=-1;
sSpeedButton2.Top:=-1;
sSpeedButton3.Top:=-1;
sSpeedButton4.Top:=-1;
sSpeedButton5.Top:=-1;
sSpeedButton6.Top:=-1;
sSpeedButton7.Top:=-1;
btn1.Top:=-1;
sPanel1.Top:=-1;
end;

//------------------------------------------------------------Чтобы панель сворачивалась при наведении курсора------------------
procedure TForm1.WMMouseLeave(var msg: TMessage);
begin
Panel1.Height:=10;
lbl1.Font.Size:=8;
lbl1.Top:=1;
lbl1.Left:=455;
sSpeedButton1.Top:=10;
sSpeedButton2.Top:=10;
sSpeedButton3.Top:=10;
sSpeedButton4.Top:=10;
sSpeedButton5.Top:=10;
sSpeedButton6.Top:=10;
sSpeedButton7.Top:=10;
btn1.Top:=10;
sPanel1.Top:=10;

end;

Последний раз редактировалось Ko$; 18.11.2011 в 09:27.
Ko$ вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Панель задач Черничный Общие вопросы Delphi 2 18.08.2008 02:28
Панель на Taskbare neo7777 Общие вопросы Delphi 1 28.02.2008 12:37
Как создать программу-панель (как панель Msoffice), чтобы была поверх всех окон Romanbl4 Общие вопросы Delphi 6 27.06.2007 17:23