Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
ВнизAccessViolation, из-за чего??? Найти похожие ветки
← →
Den[NSP] (2003-08-09 19:37) [0]Описываю программку:
Unit1:
Добавлена единственная процедура FormCreate, на форме ничего нет
...
procedure TForm1.FormCreate(Sender: TObject);
var
Var1: Boolean;
begin
Var1 := True;
if Var1 then Form2.Label1.Caption := "1"
else Form2.Label1.Caption := "2";
end;
...
Unit2:
На форму добавлен компонент Label1, процедур нет
при запуске возникает AccessViolation. Из-за чего???
Нечто подобное уже было несколько раз в других программах под Delphi6 и Delphi7. Под Delphi5 никогда не было.
← →
Семен Сорокин (2003-08-09 19:51) [1]Делаешь в OnCreate формы Form1, а формы наверняка AutoCreate, и поэтому Form2 еще не создана, а ты к ней обращаешься: Form2.Label1.Caption - в этом и трабла. И научись пользоваться отладкой (пошаговый выполнением).
← →
nikus (2003-08-09 20:01) [2]Решение сей траблы:
открываешь файл проекта (.dpr)
Меняешь местами строчки
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Имеешь то что надо =)
← →
Anatoly Podgoretsky (2003-08-09 20:05) [3]AV возможно иметь не будет, но главная форма будет другая. Кроме того у него использование глобальной переменной Form2, которых вполне возможно более одной.
← →
Den[NSP] (2003-08-09 20:21) [4]Семен Сорокин © подсказал решение по поводу AutoCreate...
TForm1.FormCreate первой строчкой добавляю
Application.CreateForm(TForm2, Form2);
и все...
Большое спасибо всем за ответы...
(Третий раз в жизни пишу в конференцию по Delphi, и первый раз получаю ответ)
← →
sniknik (2003-08-09 21:54) [5]по моему проще в TForm1.FormShow код перенести (onShow)
на случай если понадобятся Hide/Show сделать условие на одноразовость. но это не часто нужно можно обойтись
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.32 c