по умолчанию, Delphi генерируется код новой формы будет выглядеть примерно так:
type
TForm1 = class(TForm)
{ lots of stuff }
end
Это описывает то, что «TForm1» выглядит, но не создает «экземпляр» одного.
(подумайте о «экземпляре» как НЛО: просто потому, что вы сказали мне, что НЛО выглядело не означает, что - это НЛО. Вы должны создать для меня, чтобы вы думали, что вы не сумасшедший)
Вы также увидите что-то вроде следующего в том же файле:
var
Form1: TForm1;
Это выделяет некоторые memroy для хранения instanance из TForm1, но, также, не создает один.
В файле .dpr вы можете увидеть что-то вроде этого:
Application.CreateForm(TForm1, Form1);
, который создает и экземпляр TForm1 и сохраняет его в переменной Form1.
Вы также можете сделать подобную вещь вручную:
Form1 := TForm1.Create(nil)
Это также создает экземпляр TForm1 и сохраняет его в переменной Form1.
Ваш (несколько упрощенно) поставляется код, выглядит следующим образом:
procedure link;
var
form1: TForm1:
begin
form1.dnname.text := 'squire';
end;
В контексте процедуры «ссылка», «Form1» не было присвоено значение, поэтому он будет содержать случайное значение (это не совсем так, но сейчас будет всплывать)
Вам либо нужно присвоить значение «form1» (действительное), либо убедиться, что «form1» уже ссылается на допустимое значение.
Следующая может работать для вас:
procedure link;
begin
form1.dnname.text := 'squire';
end;
Но пожалуйста, пожалуйста, найдите время, чтобы понять, что происходит.
Будет светлый момент.
И я могу заверить вас, что каждый супер-карма переполнение стека плакат был тот лампочку момент для themselfs ...
ли ошибка «Нарушение прав доступа по адресу 0074a43c6»? Укажите точное сообщение об ошибке. – dummzeuch