Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Не могу найти форму


Автор: Budy 21.4.2005, 20:52
:Приветсвую
Вот есть у меня две формы со дефолтными именами (Form1 и Form2). На Form1 кидаю кнопку, при нажатии на кнопку создаю форму, подобную Form2:
Код

procedure TForm1.Button1Click();
var
  BF: TForm2;
begin
  Inc(Count);
  BF:=TForm2.Create(nil);
  BF.Name:='BF'+IntToStr(Count);
  BF.Show;
end;

На Form1 есть еще кнопка, при нажатии на которую надо вывести мессагу, в которой указать сколько существует таких BF-форм. Пробую так:
Код

procedure TForm1.Button2Click();
var
  Comp: TComponent;
  I,A: Integer;
begin
  A:=0;
  For I:=1 to Count do
    begin
      Comp:=FindComponent('BF'+IntToStr(I))as TForm2;
      if not(Comp=nil) then Inc(A);
    end;
  ShowMessage(IntToStr(A));
end;

Дык вот все время 0 показывает.

Автор: Pakshin A. S. 21.4.2005, 21:01
Код

BF:=TForm2.Create(self);

Автор: Dimannn 21.4.2005, 21:07
Дело в том, что ты не делаешь при закрытии формы что-то типа
Код

FindComponent(BG+Inttostr(FormNumber)) as TForm2).Free;

Поэтому Formы постоянно висят в памяти и их (хотя и закрытых) находит FindComponent.

Автор: Budy 25.4.2005, 06:23
Pakshin A. S., точно, thanks

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)