как подсчетать компоненты?
От: Chugu  
Дата: 09.04.05 09:50
Оценка:
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.
Re: как подсчетать компоненты?
От: Chugu  
Дата: 09.04.05 10:04
Оценка:
да и сам ActiveFlor создаеться таким же образом
как и CheckForm дапустим формой Main
Re: как подсчетать компоненты?
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.04.05 03:27
Оценка:
Здравствуйте, 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>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: как подсчетать компоненты?
От: Chugu  
Дата: 12.04.05 10:36
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Chugu, Вы писали:


S>Никогда не используй прямое имя формы в ее методах! Используй вместо него слово "self".

S>Твои ошибки выделены:

спасибо но не помогает :(

если ActiveFlor сам был создан create-ом то для III формы он просто не существует
Re[3]: как подсчетать компоненты?
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.04.05 11:05
Оценка:
Здравствуйте, Chugu, Вы писали:
C>если ActiveFlor сам был создан create-ом то для III формы он просто не существует
Не капай мне на мозг. Код исправил? Что не работает? Приведи код и текст ошибки.
... << RSDN@Home 1.1.4 beta 4 rev. 347>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: как подсчетать компоненты?
От: Danchik Украина  
Дата: 12.04.05 11:53
Оценка:
Здравствуйте, 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.