iskander писал(а):см. TComponent.Create.
ок! убедили! ))) массивы и списки форм можно выкинуть

iskander писал(а):Создал справочник, показал модально, обработал пользовательский ввод, уничтожил справочник.
+1
Модератор: Модераторы
iskander писал(а):см. TComponent.Create.
iskander писал(а):Создал справочник, показал модально, обработал пользовательский ввод, уничтожил справочник.
leo_bsv писал(а):тогда встаёт вопрос - как динамически создать столько форм сколько надо - ведь они должны определяться как-то так
Выделить всё
- Код: Выделить всё
var
Form1, Form2...: TForm1;
function SaleDocNew:TSaleEditDocForm;
function SaleDocEdit(TbDocId:integer):TSaleEditDocForm;
implementation
uses MakoshGlobalUtils, saleMassAddUnit, saleListUnit, MakoshMainDataUnit;
{$R *.lfm}
var
SaleDocList:TList;
function SaleDocNew: TSaleEditDocForm;
begin
Result:=TSaleEditDocForm.CreateEditForm(-1);
Result.Show;
Result.SetFocus;
AlignSprWorkForm(Result);
end;
function DoFindDoc(TbDocId: integer): TSaleEditDocForm;
var
i:integer;
begin
Result:=nil;
for i:=0 to SaleDocList.Count - 1 do
begin
if TSaleEditDocForm(SaleDocList[i]).FTbDocId = TbDocId then
begin
Result:=TSaleEditDocForm(SaleDocList[i]);
break;
end;
end;
end;
function SaleDocEdit(TbDocId: integer): TSaleEditDocForm;
var
i:integer;
begin
Result:=DoFindDoc(TbDocId);
if not Assigned(Result) then
begin
Result:=TSaleEditDocForm.CreateEditForm(TbDocId);
Result.Show;
end;
Result.SetFocus;
end;
constructor TSaleEditDocForm.CreateEditForm(ATbDocId: integer);
begin
inherited Create(Application);
SaleDocList.Add(Self);
FTbDocId:=ATbDocId;
end;
destructor TSaleEditDocForm.Destroy;
begin
SaleDocList.Remove(Self);
inherited Destroy;
end;
initialization
SaleDocList:=TList.Create;
finalization
SaleDocList.Free;
end.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 193