unit srcActiveFlor;
...
type
TActiveFlor = class(TForm)
procedure UpdateTables(Sender: TObject);
procedure Button1Click(sender: Tobject);
...
var
ActiveFlor: TActiveFlor;
implementation
{ TActiveFlor }
procedure TActiveFlor.Button1Click(Sender: TObject);
var
CheckForm: TcheckForm;
begin
CheckForm:=TCheckForm.create(ActiveFlor);
CheckForm.ShowModal;
CheckForm.Free;
end;
procedure TActiveFlor.UpdateTables(Sender: TObject);
begin
Label1.Caption:=inttostr(ActiveFlor.ComponentCount);//ошибка выдаеться access violation. (ActiveFlor = nil)
... //componentcount не знает с какой формы надо считать. Почему?
end;
end.
unit srcCheckForm;
interface
uses
...
type
TCheckForm = class(TForm)
procedure Button1Click(sender: Tobject);
...
var
CheckForm:TCheckForm;
implementation
{ CheckFlor }
procedure CheckForm.Button1Click(Sender: TObject);
begin
ActiveFlor.UpdateTables(Sender);
ModalResult:=mrOk;
end;
end.
Здравствуйте, Chugu, Вы писали:
Никогда не используй прямое имя формы в ее методах! Используй вместо него слово "self".
Твои ошибки выделены:
unit srcActiveFlor;
...
type
TActiveFlor = class(TForm)
procedure UpdateTables(Sender: TObject);
procedure Button1Click(sender: Tobject);
...
var
ActiveFlor: TActiveFlor;
implementation
{ TActiveFlor }
procedure TActiveFlor.Button1Click(Sender: TObject);
var
CheckForm: TcheckForm;
begin
CheckForm:=TCheckForm.create(ActiveFlor);
CheckForm.ShowModal;
CheckForm.Free;
end;
procedure TActiveFlor.UpdateTables(Sender: TObject);
begin
Label1.Caption:=inttostr(ActiveFlor.ComponentCount);//ошибка выдаеться access violation. (ActiveFlor = nil)
... //componentcount не знает с какой формы надо считать. Почему?
end;
end.
... << RSDN@Home 1.1.4 beta 4 rev. 347>>
Здравствуйте, Chugu, Вы писали:
C>если ActiveFlor сам был создан create-ом то для III формы он просто не существует
Не капай мне на мозг. Код исправил? Что не работает? Приведи код и текст ошибки.
... << RSDN@Home 1.1.4 beta 4 rev. 347>>
Здравствуйте, Chugu, Вы писали:
C>Здравствуйте, Sinclair, Вы писали:
S>>Здравствуйте, Chugu, Вы писали:
S>>Никогда не используй прямое имя формы в ее методах! Используй вместо него слово "self".
S>>Твои ошибки выделены:
C>спасибо но не помогает
C>если ActiveFlor сам был создан create-ом то для III формы он просто не существует
Sinclair, Тебе понятно написал че сделать. Если у тебя и это крешанет, значит будем искать ошибку гы, чуть дальше
unit srcActiveFlor;
...
type
TActiveFlor = class(TForm)
procedure UpdateTables(Sender: TObject);
procedure Button1Click(sender: Tobject);
...
var
ActiveFlor: TActiveFlor;
implementation
{ TActiveFlor }
procedure TActiveFlor.Button1Click(Sender: TObject);
var
CheckForm: TcheckForm;
begin
CheckForm:=TCheckForm.create(Self);
try
CheckForm.ShowModal;
finally
CheckForm.Free;
end;
end;
procedure TActiveFlor.UpdateTables(Sender: TObject);
begin
Label1.Caption:=inttostr(ComponentCount);{нафиг оnсюда ActiveFlor это Self и есть}
end;
end.