Ich mache das in etwa so
Pseudocode
Delphi-Quellcode:
prozedur1
var
Variableninstanz Typ
begin
Variableninstanz erstellen
prozedur2(variableninstanz)
end
prozedur2 (variableninstanz: Typ = nil)
var
gebeinstanzfrei Boolean
begin
gebeinstanzfrei := False
if variableninstanz = nil
begin
variableninstanz erstellen
gebeinstanzfrei := True
end
.....
if gebeinstanzfrei then
variableninstanz.Free
end
Auf diese Art und Weise schicke ich eine bei Programmstart erstellte Variableninstanz von Ini bis an die Stelle an der das Programm komplett geladen ist.
Verwendet wird diese Instanz von einer Hand voll Prozeduren. Eine globale Instanz kommt nicht in Frage, das immer immer neu-erstellen in jeder Prozedur ebenfalls nicht.