У меня есть вторичная форма для входа в мое приложение, для которой у меня есть процедура AddLine
:
type
TFormLog = class(TForm)
Memo1: TMemo;
private
procedure AddLine(aString: String);
{ Private declarations }
public
{ Public declarations }
end;
var
FormLog: TFormLog;
implementation
{$R *.dfm}
{ TFormLog }
procedure TFormLog.AddLine(aString: String);
begin
Memo1.Lines.Add(aString);
end;
Когда я использую автозаполнение (Ctrl-Shift_C), Delphi добавляет процедуру AddLine
в раздел private
, поэтому очевидно, что процедура невидима для основной формы, когда я пытаюсь
FormLog.AddLine('some text');
Но перемещение объявления в общедоступный раздел не помогает:
type
TFormLog = class(TForm)
Memo1: TMemo;
private
{ Private declarations }
public
{ Public declarations }
procedure AddLine(aString: String);
end;
Я все еще получаю ошибку компилятора, что процедура AddLine
не разрешена. Я добавил единицу журнала в предложение uses
, поэтому Formlog
известно в основной форме.
Попытка прямого доступа к TMemo дает тот же эффект.
Как я могу исправить свой код, чтобы я мог добавлять текст в форму журнала из моей основной формы?
AddLine
в общедоступный раздел и сохраните форму. Добавьте устройство в свой проект. Если это не работает, компилятор должен подбирать другой модуль с таким же именем или использовать ранее скомпилированный модуль (каким-то образом не видя исходный код). - person LU RD   schedule 11.01.2016