Witam jak ponownie wywołać funkcję FormCreate? Mam grę gdzie w przypadku Game Overu chcę ją rozpocząć od nowa. Wyczytałem na tym forum że wystarczy wywołać funkcję FormCreate. No ale co to za parametr, który ona przyjmuje?
Najlepiej jest podać tam Self
np.FormCreate(Self);
Dzięki, że też nikt o tym nigdzie nie napisał wcześniej, bardzo często się chyba tak robi przecież. Tylko mam taki problem że wywala errora, coś w tej procedurze się nie podoba programowi
Tylko kłóci mi się to z dynamicznie tworzonymi obrazkami. Tzn. muszę je usunąć jakoś a nie da się tego zrobić wpisując Obrazek23.Destroy bo jeszcze nie został utworzony i kompilator sie buntuje.
{procedurka tworzaca imaga}
procedure TForm1.CreateBlock(dTop : integer; dLeft : integer; f_n : integer; f_k : integer; n : integer);
begin
Images[f_n][f_k] := TImage.Create(Form1);
with Images[f_n][f_k] do
begin
Width := 25;
Height := 25;
Top := dTop;
Left := dLeft;
Name := 'Block' + IntToStr(n);
Parent := Form1;
Visible := false;
Picture.LoadFromFile('klocek_niebieski.jpg');
end;
end;
http://4programmers.net/Delphi/Assigned
Powinno zadziałać.
Po prostu przed utworzeniem obrazka za pomocą w/w funkcji sprawdzasz, czy nie został on już utworzony.
No dobrze tylko nie mam bladego pojęcia jak tego użyć. Wpisywałem nazwę procedury do parametru ale lipa.
Np.tak:
if Assigned(Images[f_n][f_k]) Then
Images[f_n][f_k].Destroy;
Dziękuję!
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.