![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание формы в мной созданном обьекте. [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 .