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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2010, 13:51   #1
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию Изменить родителя неизвестной книпке. Delphi

При запуске формы, создается 66 Button и 66 GroupBox. Создаются через Create, потому что их количество пользователь может изменить.

Задача пользователя состоит в том, что бы переташить кнопки на groupbox'ы в правильном порядке.

При перетаскивании кнопки на groupbox в событии OnDragdrop мне необходио прописать, что бы кнопка меняла свойство parent c Form1 на GroupBox(x) (х - номер этого groupbox).

Просто написать Button1.Parent:=GroupBox1 я не могу потому, что не знаю какую именно кнопку и в какой именно groupbox переместит пользователь.

Подскажите, как можно написать что то примерно такое : Source.parent:=Sender;

Или как можно узнать имя кнопки, которую перетащили, и имя groupbox, на который перетащили?

Помогите, пожалуйста. Понимаю, все очень запутанно. Но такое задание дали на учебе. Срочно надо.

Заранее спасибо.
FACE OFF вне форума Ответить с цитированием
Старый 12.10.2010, 14:11   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

когда создаешь кнопки напиши что-то натипа
Код:
button.name:=inttostr(i);
а потом на все кнопки сделай общий обработчик который будет выполнять строчку
Код:
application.FindComponent...    .Parent:=......
вроде так
fbus вне форума Ответить с цитированием
Старый 12.10.2010, 14:28   #3
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию

Цитата:
Сообщение от fbus Посмотреть сообщение
когда создаешь кнопки напиши что-то натипа
Код:
button.name:=inttostr(i);
а потом на все кнопки сделай общий обработчик который будет выполнять строчку
Код:
application.FindComponent...    .Parent:=......
вроде так
Имена у них есть, я присвоил.

А можно пример такого кода. Как я понял, что то типа:
application.FindComponent('button1) .Parent:=groupbox1.

Но проблема в том, что я не знаю, какой номер будет у кнопки. Я пишу процедуру, которая потом присваивается всем полям при их создании.
FACE OFF вне форума Ответить с цитированием
Старый 12.10.2010, 14:51   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

OnStartDrag event (TControl)

Occurs when the user begins to drag the control or an object it contains by left-clicking on the control and holding the mouse button down.

type TStartDragEvent = procedure (Sender: TObject; var DragObject: TDragObject) of object;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 12.10.2010, 15:00   #5
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
OnStartDrag event (TControl)

Occurs when the user begins to drag the control or an object it contains by left-clicking on the control and holding the mouse button down.

type TStartDragEvent = procedure (Sender: TObject; var DragObject: TDragObject) of object;
Что то я ничего не понял...
FACE OFF вне форума Ответить с цитированием
Старый 12.10.2010, 16:03   #6
WhiteSpirit
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 82
По умолчанию

В обработчике события OnEndDrag кнопки пишешь:
Код:
if Target = nil then Exit;
if Target is TGroupBox then TButton(Sender).Parent:=TGroupBox(Target);
В обработчике OnDragOver GroupBox' а
Код:
Accept:=(Source is TButton);
WhiteSpirit вне форума Ответить с цитированием
Старый 12.10.2010, 16:42   #7
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию

Спасибо огромное. Все получилось. Вы мне очень помогли.
FACE OFF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки неизвестной длины в си abr_question Общие вопросы C/C++ 18 22.01.2010 00:26
как взять со строки неизвестной длины n первых символов? :) peq Microsoft Office Excel 2 07.01.2010 22:40
Перепутал родителя)) nusik Общие вопросы C/C++ 2 26.05.2009 11:40
Pascal - Задано число n неизвестной разрядности. Вычислить сколько цифр в этом числе Виолетта Помощь студентам 2 18.03.2009 07:17
Нахождение неизвестной Sam86 Microsoft Office Excel 5 16.09.2008 19:39