Erwin hat geschrieben:Ok, mal sehen, ob ich es jetzt langsam begriffen habe:m.fuchs hat geschrieben:Genau. Wenn da eine Komponente (also nicht nil) übergeben wird, würde sich der TTimer dort anmelden. Und damit auch dafür sorgen, dass es später automatisch entsorgt wird.
Automatisch entsorgt wird? Also beim beenden des Programms? Dann geht es wohl vor allem darum, sicher zu stellen, dass nicht das Programm es versehentlich übersieht? Kommt so was öfter bei selbst erstelltem vor? Oder ist es eben Aufwendiger (und deshalb mit Fehler zu rechnen) weil der Formulareditor nicht richtig dabei mit einbezogen7informiert wurde?m.fuchs hat geschrieben:Nein, wenn diese Komponenten einen Owner haben, dann solltest du dem auf keinen Fall dazwischengrätschen. Räum nur das weg, was du selber erzeugt hast. Aber nicht die Sachen, die im Formulareditor entworfen werden.
Mit erzeugen ist wohl in dem Fall gemeint, selbst erstellt. Nicht einfach aus der Komponenten-Palette was auf das Formular etc. erstellt zu haben? Und das bei der Erstellung kein Elternkomponente zugewiesen bekam?
Alles andere aus der Komponentenliste sollte man dann dem Programm/Formulareditor überlassen?
Zählt dazu auch einfache eigene Prozeduren und Funktionen?
Und wie sieht es mit Variablen, Arrays etc. aus?
StringList soll man ja wiederum selbst aufräumen, wenn ich das richtig verstanden habe? Anderseits gibt es dazu ja auch keine Komponente in der K-Leiste.
@ Warf, das ist ja irgendwie verwirrend, was da abgeht. Leider kann ich kaum Englisch. Und Technik-Englisch ... das dann gleich schon gar nicht.
Wenn ich Dich also richtig verstehe, sollte man mit der Nutzung von Free abschätzen, ob man die Komponente bald wieder braucht oder es länger dauert. Wenn man es bald wieder braucht, dann lieber vorerst stehen lassen. Nur wenn es länger dauert, sollte man Free nutzen. Und beim Programm beenden natürlich. So wie es bei den einen Spezielle Glühbirne, die beim Einschalten gleich dermaßen viel Strom brauchen, wofür eine normale eine Stunde davon leuchten könnte. Die Spezielle dann auszuschalten, wenn man in 10 Minuten eh wieder anmachen muss, würde da dann kein Sinn ergeben. Und Free für eine Komponenten (bzw. dessen Freigabe) zu nutzen, die man bald eh wieder braucht, würde für das BS-Speicher-System kein Sinn machen?
Ja genau. Zum Beispiel wenn du einen Filestream verwendest um eine Konfigurationsdatei zu lesen und zu schreiben, du Liest sie einmal beim Programmstart und schreibst beim beenden, dann lohnt es sich natürlich nicht das Objekt die ganze zeit zu behalten. Wenn du allerdings ein Logbuch schreibst, nach jeder Funktion oder so, dann lohnt es sich natürlich den Stream zu behalten (auch wenn Datenstream als Beispiel etwas schlecht ist, da Dateien öffnen wieder mal ne Sache für sich ist, aber ich denke du verstehst die Idee)