Mam kila form: FormMenu oraz FormMenu1, FormMenu2, ... FormMenuX.
(X-nr.formy)
W Project-Options-Forms, FormMenu jest formą ‘Auto-create’ zaś FormMenu1... FormMenuX są ‘Available forms’.
Wywołanie FormMenu1... FormMenuX, następuje poprzez procedurę, która jest umieszczona w FormMenu:
Procedure TworzFormMenu(TNazwaFormy : TComponentClass; NazwaFormy : TForm);
Begin
FormMenu.Enabled := False;
Application.CreateForm(TNazwaFormy, NazwaFormy);
NazwaFormy.Visible :=True;
Repeat
Application.ProcessMessages;
Until(NazwaFormy.Visible=False);
NazwaFormy.Destroy;
FormMenu.Enabled := True;
FormMenu.Show;
End; { koniec procedury }
Na FormMenu1 mam umieszczony tylko jeden komponent ComboBox zwany ListaZakresow.
W FormMenu1 istnieją tylko dwie procedury:
Procedure WpiszListeZakresow;
Var
xx : Integer;
Begin
FormMenu1.ListaZakresow.Clear;
For xx:=0 to 9 Do
Begin
FormMenu1.ListaZakresow.Items.Add(IntToStr(xx));
End;//xx
FormMenu1.ListaZakresow.ItemIndex := 0;
End; { koniec procedury }
procedure TFormMenu1.FormActivate(Sender: TObject);
begin
WpiszListeZakresow;
end;
Kiedy wywołuję TworzFormMenu(TFormMenu1, FormMenu1);
Program mi się zawiesza. To samo dzieje się z innymi FormMenuX, wktórych umieszczone są jakieś komponenty lub w których odwołuję się do funkcji lub procedur w zadeklarowanym UnitProcedury. UnitProcedury nie ma wpływu na problem, gdyż kiedy go nie deklaruję, opisany stan rzeczy nadal ma miejsce.
Generalnie chodzi mi o to, aby w zależności jakie parametry podam w Procedure TworzFormMenu() , otworzyło mi się okno z FormMenuX.
Może przyjąłem złą metodę tworzenia i uaktywniania kolejnych okienek FormMenuX ?
Będę wdzięczny za wyjaśnienia.
Pozdrawiam.