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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2011, 00:06   #1
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию Access Violation на вызове события динамически созданного компонента

Код:
procedure TForm1.SubTabClick(Sender: TObject);
begin
  Edit4.Text := (Sender as TPageControl).ActivePage.Caption;
end;
...
var
  AllPages:TPageControl;
  DynPages:Array of TPageControl;
  Pages:Array of TTabSheet;
...
  SetLength(DynPages,max1);
  SetLength(Pages,max1);
  AllPages := TPageControl.Create(Self);
  AllPages.Parent := Self;
...
  for i := 0 to max1 - 1 do begin
    Pages[i] := TTabSheet.Create(Self);
    Pages[i].PageControl := AllPages;
    DynPages[i] := TPageControl.Create(Self);
    DynPages[i].Parent := AllPages.Pages[i];
    @DynPages[i].OnChange := @TForm1.SubTabClick;
  end;
При дебаге процедуры SubTabClick видно, что Sender при выполнении процедуры пустой, но если вызвать ShowMessage(Sender.ClassName); то выведет TPageControl. Всю голову сломал, не понимаю в чем причина пустого Sender'а.
JoLan вне форума Ответить с цитированием
Старый 14.03.2011, 00:37   #2
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Решил проблему следующим способом:

Код:
@DynPages[i].OnChange := @TForm1.SubTabClick;
Заменил на
Код:
DynPages[i].OnChange := Self.SubTabClick;
JoLan вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при вызове функции Access violation Hottabych Win Api 1 22.01.2011 20:35
как убрать Access Violation при Destroy компонента? ZuBy Компоненты Delphi 11 01.09.2010 19:44
Как отловить Events динамически созданного компонента? W0LF Общие вопросы Delphi 2 06.11.2009 20:35
Поиск динамически созданного компонента GAGARIN-NEW Общие вопросы Delphi 2 30.01.2008 17:21
Поиск динамически созданного компонента GAGARIN-NEW Компоненты Delphi 2 16.12.2007 17:07