Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема вызова функции при событии FormActivate [D7, WinXP]


VHS ©   (2004-07-23 14:18:00) 

История:

Создаю форму, которая будет как MDIChild, в ней, на равне с описанием всех элементов, добавляю свои ф-ции. Так:

type
TfrmEditPayBlacklist = class(TForm)

......

public
idxs : TStringList;
idxk : TStringList;
procedure ShowList;
end;


Естественно убираю в проекте автосоздание формы.
Теперь, из главного (родительского) окна, создаю вот это свое окно:

procedure TfrmMain.actShowBlackListExecute(Sender: TObject);
begin
with TfrmBlackList.Create(application) do Show;
end;


Окно появляется. Все рады. Все выполняется. Но, усложняем задачу. Не закрывая этого созданного окна, создаем его еще раз, выполняя вушеуказанную ф-цию. Получаем второе, такоеже окно. Вродебы опять все в норме.

Суть проблемы:

В создаваемой форме, на метод OnActivate стоит ф-цция:

procedure TfrmBlackList.FormActivate(Sender: TObject);
begin
ShowList; //можно было задать как self.ShowList - результат тотже.
end;


И когда мы, имея два одинаковых дочерних окна на экране, переходим на предыдущее окно, вызывая событие FormActivate, то при вызове ф-ции ShowList, получаем Error access viotation. Причем, что странно, затыкается олько на ф-циях, которые я задаю сам.

А. Вот еще. Этот SHowList задан в программе так:

procedure TfrmBlackList.ShowList;
var
....
begin
......

end;


Вопрос:

Как правильно задавать процедуры в динамически создаваемых окнах чтобы небыло такой вот фигни? Или надо по-другому создавать эти формы? Или еще чего?


VHS   (2004-07-23 14:27:00) [1]

Нет.
Спасибо за помошь проблема была найдена. Странно, но ошибка выдавалась при обращении к application.ProcessMessages.


Sandman25   (2004-07-23 14:20:00) [2]

В ShowList есть обращения к frmBlackList?


Наверх

Титульная страница Поиск, карта сайта Написать письмо