IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Событие для динамически созданного компонента
sheka
сообщение 31.07.2010 23:23
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Продолжнение "Вызывает антирес и такой ишо разрез"
Как можно осуществить событие для динамически созданного компонента? Проблема в том, что программа модульная и "процедура не описана как метод формы".
procedure MyOnClick(Sender: TObject);
begin
form1.Label1.Caption:=inttostr(form1.MainMenu1.Items.IndexOf(sender as TMenuItem));
end;

procedure CreateSubMenu(MainMenu: TMainMenu; p: TP);
var
i,j: integer;
k: longint;
N: TMenuItem;
begin
k:=3;
//...
SetLength(MenuItemArray, 2, k);
for j:=0 to k-1 do
for i:=0 to 1 do
begin
N:=TMenuItem.Create(MainMenu);
n.Caption:=inttostr(i)+inttostr(j);
n.OnClick:=MyOnClick; //вот здесь пишет Incompatible types: 'method pointer and regular procedure'
MainMenu.Items[i+1].items[1].Insert(j,n);
MenuItemArray[i][j]:=n;
end;
end;

Сама программа: Прикрепленный файл  VstupInfo.rar ( 275.13 килобайт ) Кол-во скачиваний: 417


Сообщение отредактировано: sheka - 31.07.2010 23:24
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 9.08.2010 1:03
Сообщение #2


Гость






Цитата
А вот ответ на Ваш код

Цитата
Могу подсказать, что надо будет сделать, чтобы оно заработало в 2009/2010
, если что:
Прикрепленное изображение

Так что Дельфи 2009 обрабатывает совершенно нормально мой код (предупреждения о CharInSet - не в счет, я их пока не исправлял, и они выше по тексту)

Цитата
но так было бы чуть короче:
И сильно неправильнее, кстати. Я ж тебе сказал, какую сигнатуру имеет TNotifyEvent, а ты опять за свое. КАК ТЫ ОБЪЯСНИШЬ Дельфи, что функция с двумя параметрами должна втиснуться в то, что Дельфи с рождения знает, как TNotifyEvent - то есть, в функцию с одним параметром? Покажи мне, не как ты обходишь то, что наворотил, а как Дельфи принимает вместо одного параметра два, и как именно ты к этим параметрам обращаешься при выполнении кода. (Очень удачно ты сделал, да? Сначала выбрал неправильную структуру программы, потом обошел еще более неправильным костылем, и вроде бы даже и прав остался? Сейчас все работает, а потом - хоть потоп? Ну, разубеждать тебя не буду, дел у меня других нет что-ли... Потом сам придешь спрашивать. Я даже знаю, что именно. Но это уже, извини, без меня. Я больше на твои вопросы не отвечаю...)

Удачи...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.07.2025 14:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"