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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2012, 15:39   #1
DelhiProgramer
Пользователь
 
Регистрация: 10.08.2012
Сообщений: 84
По умолчанию Ссылка на процедуру

Допустим у меня есть модуль (Unit 2 например), в котором есть процедура добавляющая пункт в главное меню из первого модуля. То есть из Unit 1 мне надо дать ссылку на процедуру этого юнита в другой юнит, но тот другой как бы не знает, что вызывающий его юнит назывется юнит 1. То есть какую процедуру надо сделать в юнит 2, чтоб вызвав её из юнита 1 в юните 2 главному меню при щелчке на пункт вызывалась процедура из юнита 1
Наверно никто не поймёт что я хотел спросить...
DelhiProgramer вне форума Ответить с цитированием
Старый 10.08.2012, 15:48   #2
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Используйте Uses. Почитайте книжки по Delphi
astecenko вне форума Ответить с цитированием
Старый 10.08.2012, 15:52   #3
DelhiProgramer
Пользователь
 
Регистрация: 10.08.2012
Сообщений: 84
По умолчанию

Счас объясню лучше, чё мне надо
в Unit2 есть массивы
menuh: array[1..10] of Tmainmenu;
forms: array[1..10] of TForm;
...
//процедуры связанные с меню
procedure CreateNewMenu(d,p: integer);
begin
menuh[d]:=TMainMenu.Create(Forms[p]);
forms[p].Menu:=menuh[d];
end;

procedure MenuADD(d: integer; mp: string);
var
newitem: Tmenuitem;
begin
newitem := tmenuitem.create(Menuh[d]);
newitem.caption := mp;
{если вы хотите определить событие onclick
newitem.onclick:=Dynamenuclick; }
{добавляем это к верхнему уровню меню}
menuh[d].items.insert(menuh[d].items.count, newitem);
end;

procedure SubMenuAdd(d,mi: integer; mp: string);
var
newitem, toitem: Tmenuitem;
begin
{to = верхний уровень меню для нового пункта}
toitem := menuh[d].items[mi];
newitem := tmenuitem.create(toitem);
newitem.caption := mp;
{если вы хотите определить событие onclick
newitem.onclick:=Dynamenuclick; }
toitem.onclick := nil;
toitem.insert(toitem.count, newitem);
end;
Как определить событие onclick с процедурой из модуля, который использует Unit2 если имя этого модуля не известно (uses не выйдет)
DelhiProgramer вне форума Ответить с цитированием
Старый 10.08.2012, 16:07   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

имя модуля не может быть вам не известно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.08.2012, 16:16   #5
DelhiProgramer
Пользователь
 
Регистрация: 10.08.2012
Сообщений: 84
По умолчанию

Это конечно верно, но этот модуль допустим будет использоваться другими людьми им тогда обязательно надо немножно изменить подключения юнитов
Стоп. А у меня Unit 2 вызывается проектом а не юнитом, чё тогда
DelhiProgramer вне форума Ответить с цитированием
Старый 10.08.2012, 16:24   #6
DelhiProgramer
Пользователь
 
Регистрация: 10.08.2012
Сообщений: 84
По умолчанию

Ладно извините я уже запутался, чёрт с ней с этой идеей
DelhiProgramer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылка Maiykl Помощь студентам 0 12.06.2012 09:48
Написать процедуру, заменяющую стандартную процедуру Insert Andi5 Паскаль, Turbo Pascal, PascalABC.NET 2 24.11.2011 17:57
Ссылка Drulya C# (си шарп) 2 17.10.2011 18:41
Ссылка в VB 6 serega112000 Помощь студентам 2 01.02.2010 21:44
Ссылка на процедуру из dpr которая в pas Alex Cones Win Api 3 14.11.2009 13:00