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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2011, 15:04   #1
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
Вопрос Панели

Как сделать: На форме есть панель, на панели кнопки, при нажатии на одну определённую из этих кнопок появлялась вторая панель прям на первой панели, на второй панели есть тоже кнопки. Как сделать чтобы при убирании курсора со второй панели она становилась Visible:=false. Я делаю но при наведении на кнопку на второй панели она закрывается так как щитает что при наведении курсора на кнопку на панели 2 она выходит за рамки самой панели 2 как сделать чтобы этого не происходило???

Код:
procedure TForm1.btn1Click(Sender: TObject);
begin
sPanel1.Visible:=True;
end;


procedure TForm1.sPanel1MouseLeave(Sender: TObject);
begin
sPanel1.Visible:=False;
end;
Ko$ вне форума Ответить с цитированием
Старый 10.11.2011, 16:59   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,834
По умолчанию

в таймере сделай проверку на положение курсора мыши: над панелью он или нет?
только не забудь, что координаты мыши считаются от верхнего левого угла ЭКРАНА, а панель №2 лежит на первой панели и на форме.

Код:
цикл таймера
begin
if(CursorPos.X<Form1.Left+Panel1.Left+Panel2.Left)or(Form1.Left+Panel1.Left+Panel1.Left+Panel1.Width<CursorPox.X)then
if(CursorPos.Y<Form1.Top+Panel1.Top+Panel2.Top)or(Form1.Top+Panel1.Top+Panel1.Top+Panel1.Height<CursorPox.Y)then
 Panel2.Visible:=False;//если курсор не попадает на площадь панели - панель исчезает
end;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 11.11.2011, 15:54   #3
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
По умолчанию

Ошибка. Пишет следующее:
[Error] Unit1.pas(389): Undeclared identifier: 'CursorPos' Это исправил
Но код ваш не работает т.е. запускается но функции свои не выполняет. И на сколько ставить таймер?

Последний раз редактировалось Ko$; 11.11.2011 в 16:04.
Ko$ вне форума Ответить с цитированием
Старый 11.11.2011, 17:48   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,834
По умолчанию

таймер ставьте на 100 мсек. пусть почаще проверяет.
а ошибка тут была, но я исправил:
Код:
if(CursorPos.X<Form1.Left+Panel1.Left+Panel2.Left)or(Form1.Left+Panel1.Left+Panel2.Left+Panel2.Width<CursorPox.X)then
if(CursorPos.Y<Form1.Top+Panel1.Top+Panel2.Top)or(Form1.Top+Panel1.Top+Panel2.Top+Panel2.Height<CursorPox.Y)then...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 11.11.2011, 20:53   #5
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
По умолчанию

А то что CursorPox так и должно быть? Если да то какой тип ставить?
Цитата:
Сообщение от NetSpace Посмотреть сообщение
таймер ставьте на 100 мсек. пусть почаще проверяет.
а ошибка тут была, но я исправил:
Код:
if(CursorPos.X<Form1.Left+Panel1.Left+Panel2.Left)or(Form1.Left+Panel1.Left+Panel2.Left+Panel2.Width<CursorPox.X)then
if(CursorPos.Y<Form1.Top+Panel1.Top+Panel2.Top)or(Form1.Top+Panel1.Top+Panel2.Top+Panel2.Height<CursorPox.Y)then...
Ещё такая фишка когда нажимаеш на кнопку которая стоит на форме1 то срабатывает таймер потому что курсор в данный момент находится на кнопке и форма открывается и закрывается через 100 дол сек

Последний раз редактировалось Ko$; 11.11.2011 в 21:00.
Ko$ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фокусирование панели asp1k Общие вопросы Delphi 0 14.05.2011 11:45
Размещении панели tae1980 Microsoft Office Excel 0 13.03.2011 15:56
Параметры панели hepr Общие вопросы C/C++ 1 26.12.2010 01:54
Панели Линукс Яр|/||< (^_^) Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 2 03.02.2010 11:01
Панели на брузеры NORS Софт 7 24.02.2009 04:36