Ich möchte gerne 8ausgelöst durch einen If-Befehl in einem Timer) ein Form1 auf den Anfanszustand zurücksetzten (so wie es beim Start der Anwendung war), also alle Variablen zurücksetzten, alle Elemente mit den alten Eigenschaften versehen. Wie geht das?
Danke schon mal
Simor
Zuletzt geändert von Simor am Do 14. Nov 2013, 17:21, insgesamt 1-mal geändert.
Da ich bisher noch kein TShape verwendet habe, habe ich mir einfach mal eins auf eine Form platziert und nachgeschaut. Im Objektinspektor wurde die Eigenschaft Shape1.Shape als "stRectangle" erstellt. Das kann bei Dir anders sein, je nachdem, was Du dort eingestellt hast. Ich verstehe das Problem nicht wirklich?!
Um alle Anfangswerte zu speichern und wieder zu laden, könnte man wohl noch TXMLPropStorage oder TIniPropStorage verwenden. Ich initialisiere alles, was in den Projekten angepasst werden kann, jedoch immer per Hand (lade die Werte dazu auch teilweise aus einer Datei oder Datenbank).
Einfach mit Free. Es ist ganz wichtig, nach dem Löschen auf nil zu setzen, sonst will später der Owner, also das Formular, die Shapes selbst nochmals löschen, aber scheitern, weil ja schon gelöscht ist. Und mit nil prüfst du auch, ob ein(e) Shape schon gelöscht ist. Also:
procedure TForm1.DeleteShape(AIndex: Integer);
begin
if shape[AIndex] <> nil then begin
shape[AIndex].Free;
shape[Aindex] := nil; // beides kann man auch mit FreeAndNil(shape[AIndex]) zusammenfassen
end;
end;
Zuletzt geändert von wp_xyz am Do 14. Nov 2013, 17:02, insgesamt 1-mal geändert.