Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание формы в мной созданном обьекте. [D6, XP]


Andr ©   (2008-04-24 07:35:00) 

Доброго времени суток. Создана форма fmSpr, на неё выставляю восемь обьектов, кот. видимы:
     for k := 0 to 7 do
     begin
       StOb[k] := TStanObject.Create(fmSpr);
       StOb[k].CreateDev(n,spr_ini,Crat); //Произвожу внутренние действия
     end;
В CreateDev активизирую ещё один обьект:
 StatOut := TStatOut.Create(Self);
который будет производить статисьтику действиий k-го обьекта StOb[k].
constructor TStatOut.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 OutStrLi := TStringList.Create;
end;
А также в StatOut открываю форму которая принадлежит этому проэкту:
procedure TStatOut.OpMem;
begin //OpMem
 if not Assigned(fmStatOut) then
 begin
   Application.CreateForm( TfmStatOut, fmStatOut );
   fmStatOut.Caption := '№ '+IntToStr(tag+1)+'. Статистика.';
   fmStatOut.mmOut.Lines.Text := OutStrLi.Text;
 end;
 fmStatOut.Show;
end; //OpMem
Не знаю понятно обьяснил последовательность. Т.е. я педпологаю, что в OutStrLi будет хранится и в fmStatOut.mmOut отображтся статистика действий обьекта StOb[k], в отдельности. На самом деле у меня получается одина форма fmStatOut и один StatOut на весь массив StOb из k обектов, при том что я создаю fmStatOut и StatOut отдельно в каждом StOb[k].CreateDev
С уважением, Andr.


icWasya   (2008-04-24 09:06:00) [1]

Форма fmStatOut должна быть одна на весь проект или из должно быть восемь?

Если она одна, то

procedure TStatOut.OpMem;
begin //OpMem
if not Assigned(fmStatOut) then
begin
  Application.CreateForm( TfmStatOut, fmStatOut );
end;

fmStatOut.Caption := '№ '+IntToStr(tag+1)+'. Статистика.';
fmStatOut.mmOut.Lines.Text := OutStrLi.Text;

fmStatOut.Show;
end; //OpMem


если их много, то внутри объекта TStatOut нужно завести поле fmStatOut типа TfmStatOut .


Наверх

Титульная страница Поиск, карта сайта Написать письмо