Форум: "Основная";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
ВнизДочернее окно Найти похожие ветки
← →
OlegNOE (2003-06-05 13:04) [0]Подскажите мастера, почему при попытке присваивания свойству Tag дочерней формы значения вылетает ошибка?
← →
Skier (2003-06-05 13:05) [1]Код.
← →
OlegNOE (2003-06-05 13:14) [2]procedure TMF.CreateChildForm(fm: Integer; nmFrm: String);
Var i: Integer;
x: Boolean;
begin
x:=True;
for i:= 0 to MF.MdiChildCount - 1 do
begin
If MF.MDIChildren[i].Name=nmFrm then
begin
x:=False;
mf.MDIChildren[i].Tag:=tg;
mf.MDIChildren[i].Show;
Break;
end;
end;
If x then
begin
TSBnk.Create(Application);
Sbnk.Tag:=1; // Error
end;
end;
----------------
Ошибка Access violation at adress XXXXXXXX
← →
reonid (2003-06-05 13:14) [3]Скорее всего, потому что она не создана.
Или же неправильное использование глобальных переменных.
← →
Skier (2003-06-05 13:16) [4]вот и косяк
TSBnk.Create(Application);
!
← →
reonid (2003-06-05 13:25) [5]Предчувствие меня не обмануло
(Второе).
Вопрос: на что ссылается SBnk?.
Очевидно, ты надеешься, что на только что созданную форму.
Тогда вопрос: на чём основана твоя уверенность?
Выкинь глобальную переменную SBnk и заведи
в процедуре локальную:
procedure TMF.CreateChildForm(fm: Integer; nmFrm: String);
Var tmpSBnk: TSBank;
begin
...
tmpSBnk := TSBnk.Create(Application);
tmpSbnk.Tag:=1; // Error
...
end;
← →
OlegNOE (2003-06-05 13:27) [6]reonid, форма создается, я ее вижу
Skier, Почему косяк? Как надо?
← →
reonid (2003-06-05 13:32) [7]OlegNOE (05.06.03 13:27)
Я понимаю, что она создаётся.
Я хочу, чтобы подумал ты:
1) У тебя есть переменная SBnk типа TSBnk.
2) Ты создаёшь объект типа TSBnk.
Объект (форма) действительно создана, её можно увидеть.
НО С ЧЕГО ТЫ ВЗЯЛ, ЧТО ПЕРЕМЕННАЯ SBnk БУДЕТ УКАЗЫВАТЬ
НА ЭТОТ СОЗДАННЫЙ ОБЪЕКТ????
Ответь.
← →
OlegNOE (2003-06-05 13:34) [8]зажался немного, теперь догнал, всем спасибо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c