![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Доброго времени суток!
У меня возникла проблема в Delphi XE (2011): Вот пример исходного кода: Код:
program MyApp;
var
ExitButton: TMenuItem; // TButton, TMenuItem, TList, TComboBox и т.д.
procedure ExitButtonClick(Sender: TObject);
begin
{ ... }
end;
begin
{ ... }
ExitButton.OnClick := ExitButtonClick; // Вот в этом месте ошибка
{ ... }
end.Ошибка: E2009 Incompatible types: 'method pointer and regular procedure' Помогите разобраться с ошибкой, уже как 3 месяца не могу понять в чем дело. Заранее спасибо! |
|
#2
|
|||
|
|||
|
ExitButton.Items[n].OnClick := ExitButtonClick;
может так Последний раз редактировалось stil, 29.11.2010 в 18:03. |
|
#3
|
||||
|
||||
|
Нет, не работает...
|
|
#4
|
||||
|
||||
|
Вот так работать будет:
Код:
private
procedure ExitButtonClick(Sender: TObject);
public
end;
var
...
ExitButton: TMenuItem; // TButton, TMenuItem, TList, TComboBox и т.д.
implementation
{$R *.dfm}
procedure TForm1.ExitButtonClick(Sender: TObject);
begin
{ ... }
end;
...
{ ... }
ExitButton.OnClick := ExitButtonClick; // Вот в этом месте ошибка
{ ... } |
|
#5
|
||||
|
||||
|
Вообще-то и недолжно работать. Насколько я в курсе, предполагается, что для обработки события может быть использован только метод класса, а не любая процедура.
|
|
#6
|
||||
|
||||
|
Спасибо) Тему считаем закрытой...
|