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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2012, 02:05   #1
Kamalekb
Пользователь
 
Регистрация: 08.09.2009
Сообщений: 20
По умолчанию pagecontrol

Код:
var
  Form1: TForm1;
  var move:boolean;
 X0, Y0: Integer;
implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button <> mbLeft then exit;
 X0 := X;
 Y0 := Y;
 move := true;
 (Sender as TControl).BringToFront;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin

if move=true then begin with (Sender as TControl) do
 SetBounds(Left + X - X0, Top + Y - Y0, Width, Height);
 if    (mouse.CursorPos.X>TabSheet1.Left+Pict1.Left)and
       (mouse.CursorPos.X<TabSheet1.Left+Pict1.Left+image1.Width) and
       (mouse.CursorPos.y>TabSheet1.top+Pict1.top) and
       (mouse.CursorPos.y<TabSheet1.top+Pict1.top+Pict1.Height)
        then Pict1.Picture.LoadFromFile('pic\text\1.png')
        else
             Pict1.Picture.LoadFromFile('pic\text\2.png');

 if    (mouse.CursorPos.X>TabSheet1.Left+Pict2.Left)and
       (mouse.CursorPos.X<TabSheet1.Left+Pict2.Left+image1.Width) and
       (mouse.CursorPos.y>TabSheet1.top+Pict2.top) and
       (mouse.CursorPos.y<TabSheet1.top+Pict2.top+Pict2.Height)
        then Pict2.Picture.LoadFromFile('pic\text\1.png')
        else
             Pict2.Picture.LoadFromFile('pic\text\2.png');

if    (mouse.CursorPos.X>TabSheet1.Left+Pict2.Left)and
       (mouse.CursorPos.X<TabSheet1.Left+Pict2.Left+image1.Width) and
       (mouse.CursorPos.y>TabSheet1.top+Pict2.top) and
       (mouse.CursorPos.y<TabSheet1.top+Pict2.top+Pict1.Height)
        then Pict2.Picture.LoadFromFile('pic\text\1.png')
        else
             Pict2.Picture.LoadFromFile('pic\text\2.png');
 end;

end;
Добрый ночи. Возник вопрос.
На форме Panel - внутри PageControl - страница TabSheet1
На TabSheet1 4 изображения.

Как при перемещении одной image менялись все остальные при наведении.
Сверху код работает только на форме (!)
На Tabsheet не получаеться.

image.mouseleave и тд не предлагать, нужны обязательно эти обработчики.

Спасибо :-)
Изображения
Тип файла: jpg Снимок.JPG (109.3 Кб, 130 просмотров)
Kamalekb вне форума Ответить с цитированием
Старый 11.05.2012, 19:19   #2
Kamalekb
Пользователь
 
Регистрация: 08.09.2009
Сообщений: 20
По умолчанию

Проблема решилась. Код

...TabSheet1.Left+form6.Left
Kamalekb вне форума Ответить с цитированием
Старый 11.05.2012, 20:27   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вообще, это "извращенство" - так обрабатывать картинки. Можно же каждой картинке назначить свой обработчик, который при наведении будет загружать нужную картинку.

Цитата:
image.mouseleave и тд не предлагать, нужны обязательно эти обработчики.
Обоснуйте. Зачем?

ПС Можете не вступать в дискуссию, если считаете, что решили проблему.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 11.05.2012 в 20:30.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PageControl _fynjy_ Общие вопросы Delphi 4 01.05.2012 14:17
PageControl Китти Компоненты Delphi 7 25.05.2011 08:22
PageControl Volt Общие вопросы Delphi 3 07.04.2009 19:19
PageControl chingiz Компоненты Delphi 14 22.11.2008 10:49