Otóż mój program ma już dość dużą ilość form, i podczas włączania programu są one wszystkie tworzone... niestety wydłuża to i to jak czas włączania programu. Później, żeby uaktywnić jakąś formę daje ShowModal. W jaki sposób zrobić, aby formy były tworzone podczas ich uruchamiania, a nie podczas uruchamiania programu, bo trwa to zbyt długo. Tworzenie dynamiczne odpada.. mam tam zbyt skomplikowane ułożenie komponentów. W jaki sposób to rozwiązać... ?
Ulozenie komponentow nie zmieni sie jesli utworzysz forme dynamicznie.
Zobacz. Usun
Application.CreateForm(TFormX, FormX);
z glownego pliku projektu i w procedurce wywolujacej okno zrob tak:
procedure TForm1.ButtonXClick(Sender : TObject);
var
Okienko : TFormX;
begin
Okienko := TFormX.Create(Application);
Okienko.ShowModal;
Okienko.Free;
end;
gwarantuje ze bedzie dzialac, bo sam tego uzywam.
ikari. To o czym piszesz, nazywa się właśnie dynamicznym tworzeniem form !!
Ale wczesniej musisz wejsc w PROJECT--->OPTIONS i tam w zakladce Forms masz 2 pola jedno Auto-Create Form a drugie available form.Te formy co maja sie otwierac dopiero po wywolaniu musisz przesunac do available form,a przy ich wywoływaniu uzyc procedurki jaka podal ci ikari.
Chyba to zrozumiale opisalem?:) [cya]
<font color="red">Jack</span>: wiem, ze to jest tworzenie dynamiczne, ale on je skreślał ze względu na ułożenie komponentów. A ono sie ładnie przecież odbudowuje o ile korzystamy z Create (a nie CreateNew), więc nie ma z tym problemu. Forma działa tak samo jak stworzona podczas uruchamiania programu!
Oczywiście że kod Ikari jest dobry sam takiego używam przcież taka forma zachowuje się tak samo jak stworzona razem z prgramem.
PS w CreateForm wpisz raczej Self