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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2007, 20:11   #1
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию изменение цвета Panel при наведении мыша

Подскажите пожалуйста!
на форме только одна Panel, как можно сделать, чтобы при наведении мыша на эту панель ее цвет изменялся, а при отведении мыша цвет возвращался на место?
С наведением вроде ясно:

Код:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Panel1.Color:=clBlack;
end;
А вот как вернуть прежний цвет?
Kashp вне форума Ответить с цитированием
Старый 07.09.2007, 20:25   #2
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Проще чем ты думаешь! Все почти тоже самое только
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Panel1.Color:=clBtnFace;
end;
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 07.09.2007, 20:41   #3
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Tayfun Посмотреть сообщение
Проще чем ты думаешь! Все почти тоже самое только
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Panel1.Color:=clBtnFace;
end;
хм.. что-то не получается.
Kashp вне форума Ответить с цитированием
Старый 07.09.2007, 21:00   #4
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Цитата:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Panel1.Color:=clGreen;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Panel1.Color:=clSilver;
end;
Все прекрастно работает!
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 07.09.2007, 21:20   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Kashp учти только, это выполняется при каждом и на протяжении всего движения мыши, если нужно будет что-то сложнее изменения цвета, желательно дополнить алгоритм так чтобы код выполнялся один раз при входе мыши и один раз при выходе
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 07.09.2007, 23:00   #6
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Kashp учти только, это выполняется при каждом и на протяжении всего движения мыши, если нужно будет что-то сложнее изменения цвета, желательно дополнить алгоритм так чтобы код выполнялся один раз при входе мыши и один раз при выходе
Вот это собственно мне очень интересно узнать Как это сделать можно?
Kashp вне форума Ответить с цитированием
Старый 07.09.2007, 23:13   #7
Sniper
Пользователь
 
Регистрация: 07.09.2007
Сообщений: 20
По умолчанию

Ставте себе Borland Developer Studio.
Там к большинству компонентов есть события OnMousEnter и OnMouseLive (если я не напутал названия). Вот их и юзай... Они вызываються один раз... Тока XPManifest не кидай на форму.
Sniper вне форума Ответить с цитированием
Старый 08.09.2007, 00:36   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Вот это собственно мне очень интересно узнать Как это сделать можно?
если нет желания устанавливать последние версии Дельфи, придется самому код писать, что-то в этом роде
Код:
var
MouseOnPanel: boolean;

procedureTForm1.Panel1MouseMove(Sender:TObject;Shift:TShiftState;X,Y: Integer);
begin
if not MouseOnPanel then
  begin
    MouseOnPanel:=true;
    Panel1.Color:=clGreen;
  end;
end;

procedure TForm1.FormMouseMove(Sender: TObject;Shift:TShiftState;X,Y: Integer);
begin
if MouseOnPanel then
  begin
    MouseOnPanel:=false;
    Panel1.Color:=clSilver;
  end;
end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 08.09.2007, 10:18   #9
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Всем спасибо за помощь!
Kashp вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XPMan и Panel WOLFak Компоненты Delphi 14 25.05.2008 10:33
Задача/Pascal/графический режим/пошаговое изменение цвета Чайникус Помощь студентам 1 02.05.2008 18:07
Изменение вида Image при наведении указателя Сергей А Помощь студентам 3 05.08.2007 15:26
Изменение цвета Artem Общие вопросы Delphi 5 12.07.2007 09:07