Autor Beitrag
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Do 12.04.12 11:12 
Hey,

ich brauche manchmal temporäre Objekte vom Typ TMyClass und erzeuge sie deshalb nur für eine Prozedure bzw Funktion (unter dem Kopf im var-Teil). Sobald die Funktion durchgelaufen ist, brauche ich die Variable nicht und möchte, dass der Arbeitsspeicher wieder freigegeben wird. Muss ich dann bei jedem Objekt .Free schreiben oder macht Delphi das automatisch?

Sry dass ich so viel Frage, aber wenn ich die Antwort wüsste, bzw rausbekommen könnte würde ich nicht fragen.

Danke für die Antworten.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 12.04.12 11:14 
Wenn Du keine Interfaced Klasse erstellst musst Du sie freigeben

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Do 12.04.12 11:23 
Und Interfaced Klasse bedeutet was? :D
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 12.04.12 11:50 
Ein anschauliches Beispiel findest Du unter
www.delphipraxis.net...-implementieren.html

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1337
Erhaltene Danke: 119

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Do 12.04.12 18:40 
Was spricht dagegen ordentlich zu programmieren und einen Ressourcenschutzblock zu nehmen und diesen odentlich zu verwenden?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure example;
var
  sl: TStringList;

begin
  // sl erstellen
  sl := TStringList.Create;
  try
    // sl verwenden
  finally
    // sl freigeben, und zwar immer, 
    // auch wenn die Procedure an irgend einer Stelle innerhalb von try ... finally mit einer Exception abgebrochen wird!
    sl.Free;
  end;
end;

Interfaces mögen zwar erstmal verlockend klingen sind in den meißten Fällen die Mühe aber nicht wert.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 12.04.12 18:42 
@Sinspin
Ich mag sie auch nicht, aber er kommt aus der Java Ecke und da muss man sich um derartiges nicht kümmern.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1337
Erhaltene Danke: 119

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Do 12.04.12 19:46 
user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
@Sinspin
Ich mag sie auch nicht, aber er kommt aus der Java Ecke und da muss man sich um derartiges nicht kümmern.

Ich habe mir früher für C auch mal via #define die geschweiften Klammern in begin und end umdefiniert. Aber was bringt das? Dafür das einem der Müll weggemacht wird gibt es ganze andere Sachen die in Delphi ohne großes Theater gehen in Java aber eine Weltumschiffung erfordern. Ich erinnere mich da gut an ordentlich scalierbare Anwendungen oder meine Versuche auf Dlls zuzugreifen.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?