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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2008, 14:21   #1
Witaliy
Форумчанин Подтвердите свой е-майл
 
Регистрация: 27.04.2008
Сообщений: 179
По умолчанию Выделенный компонент

Я делаю программу, в которой нужно сделать передвижение RunTime компонентов.
И вот у меня проблема. Как сделать, чтобы для всех компонентов были те процедуры
для их движения:
Код:
procedure b1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
form1.Repaint;
form1.Canvas.Rectangle(b1.Left-2, b1.Top-2, b1.Left+b1.Width+2, b1.Top+b1.
Height+2);
dow:=true;
ox:=x;
oy:=y;
end;

procedure b1MouseMove(Sender: TObject; Shift: TShiftState; X
  Y: Integer);
begin
if dow=true then
 begin
   b1.Top:=b1.Top-(oy-y);
   b1.Left:=b1.Left-(ox-x);
   form1.Repaint;
 end;
end;

procedure b1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
dow:=true;
end;
Но как сделать, чтобы нажатый компонент можно было двигать, а остальные нет. И как сделать, чтобы вместо b1 был нажатый (выделенный) компонент???
www.programmer.uaforums.net - Український форум програмістів.

www.satellite.ipsys.net - Український форум супутникового телебачення.

Последний раз редактировалось Stilet; 09.06.2008 в 08:50.
Witaliy вне форума Ответить с цитированием
Старый 09.06.2008, 08:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще-то для этого Drag&Drop предназначается.
Ну в принципе можно для компонентов динамически определять процедуры-обработчики событий. В цикле пройдись по form1.controls и назначь им один и тот же обработчик(и)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2008, 19:31   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Witaliy Посмотреть сообщение
Но как сделать, чтобы нажатый компонент можно было двигать, а остальные нет. И как сделать, чтобы вместо b1 был нажатый (выделенный) компонент???
вместо b1 поставь везде TButton(Sender) и всё будет в ажуре! и в обработчике MouseUp поставь dow:=false;
rpy3uH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Word не заменяет выделенный фрагмент Romanbl4 Microsoft Office Word 3 01.08.2008 07:36
Выделенный текст в RichEdit Andr Компоненты Delphi 1 20.08.2007 20:53
Выделенный текст в другом приложении Nez Win Api 9 09.04.2007 01:52
найти выделенный текст в IWebBrowser kolli Компоненты Delphi 0 13.01.2007 17:53