![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цикл по формам ! [D2005, XP]
mandalay © (2008-08-12 16:53:00)В проекте создаются динамически модальные формы.
пример:
if not Assigned(formAnalitics) then
begin
formAnalitics := TfrmAccountsAnaliticsfrm.Create(Self);
formAnalitics.CreateAnalitics(AccID);
formAnalitics.FitToLayout;
end;
formAnalitics.ShowModal;
при их закрытии делается Close но не Free!!!! тоесть они еще как бы "висят" в памяти :) !!!
Вопрос:
Как мне с помощю цикла обтатится ко всем формам formAnalitics? тоесть как бы пробежаться по ним и собрать введенные там данные :)?
Заранее спасибо !!!
MsGuns (2008-08-13 00:03:00) [1]Смешались в кучу фрэймы, формы
Вот розог всыпать для проформы ;)
McSimm (2008-08-12 23:31:00) [2]
> Какие еще нафих фреймы ?
Он имел в виду, что код, создающий модальную форму, принадлежит какому-то из методов фрейма, которых много и которые лежат на форме.
Т.е. переменнаяif not Assigned(formAnalitics) thenне одна на форму, но одна на фрейм.
вот так вот я понял.
Сергей М. (2008-08-12 22:27:00) [3]
> модальные формы создаются из фреймов
Какие еще нафих фреймы ?
Фрейм это фрейм (TFrame), а форма это форма (TForm).
Мало того что это две разные разницы, так еще и нету TFrame метода ShowModal - ни ныне, ни присно, ни во веки веков.
Leonid Troyanovsky (2008-08-12 20:22:00) [4]
> mandalay © (12.08.08 17:18) [7]
> > Почему формЫ-то ?
> > Судя по приведенному коду будет создана только одна форма,
> см. [2]
> модальные формы создаются из фреймов, которые лежат на одной
> общей форме!!!
Сам ты 2. Причем тут фреймы на общей форме, если форма одна.
Если хочешь все формы, изволь: Screen.Forms, отбираешь,
например, по классу.
--
Regards, LVT.
PS И не надо на нас кричать.
Ega23 (2008-08-12 17:23:00) [5]Поправка:
frm := TMyForm.Create( nil);
Ega23 (2008-08-12 17:22:00) [6]
var
ID : Integer;
frm : TMyForm
begin
ID := какой-то_DataSet.fieldByName('Какой-то_ID').AsInteger;
frm := TMyForm.Create;
try
frm.Connection := Мой_Connection;
frm.ID := ID;
frm.ShowModal;
if frm.ModalResult=mrOK then
begin
Refresh(какой-то_DataSet)
какой-то_DataSet.Locate('Какой-то_ID', ID, []);
end;
finally
frm.Free;
end;
end;
И вызывай это из своего фрейма, та форма, на которой твой фрейм расположен, вообще ничего про эту модальную знать не должна.
mandalay (2008-08-12 17:18:00) [7]
> Сергей М. © (12.08.08 17:02) [5]
>
>
> > модальные формы
>
>
> Почему формЫ-то ?
>
> Судя по приведенному коду будет создана только одна форма,
> потому что проверка not Assigned(formAnalitics) будет успешной
> только одинт раз, ибо не фигурирует обnilение этой переменной
> ..
см. [2]
модальные формы создаются из фреймов, которые лежат на одной общей форме!!!
тоеть один фрейм одна форма(formAnalitics)!
aaaaa (2008-08-12 17:05:00) [8]
> как делаешь мод формы?
тьфу, не глянул
> formAnalitics.ShowModal;
собирай свои данные
formAnalitics.Free;
Сергей М. (2008-08-12 17:02:00) [9]
> модальные форм ы
Почему форм Ы-то ?
Судя по приведенному коду будет создана только одна форм а, потому что проверкаnot Assigned(formAnalitics)будет успешной только одинт раз, ибо не фигурирует обnilение этой переменной ..
aaaaa (2008-08-12 17:01:00) [10]
> mandalay © (12.08.08 16:58) [2]
как делаешь мод формы?
stas (2008-08-12 17:00:00) [11]Ну примерно так:
For i:=0 to self.componentCount-1 do
begin
if (Self.Components[i] is TfrmAccountsAnaliticsfrm) then
begin
A:=TfrmAccountsAnaliticsfrm(Self.Components[i] ).Edit1.text
end;
end
mandalay (2008-08-12 16:58:00) [12]поправка:
модальные формы создаются из фреймов, которые лежат на одной общей форме!!!
тоеть один фрейм одна форма(formAnalitics)!
McSimm (2008-08-12 16:57:00) [13]
> formAnalitics.ShowModal;
Может лучше забирать данные после этой строки и хранить уже как удобно ?