FormCreate - jak reutworzyć?

0

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?

1

Najlepiej jest podać tam Self np.FormCreate(Self);

0

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

0

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;
1

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.

0

No dobrze tylko nie mam bladego pojęcia jak tego użyć. Wpisywałem nazwę procedury do parametru ale lipa.

1

Np.tak:

if Assigned(Images[f_n][f_k]) Then
 Images[f_n][f_k].Destroy;
0

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.