Hi,
wenn ich nur eine Instanz benötige und diese nur mit :new() erzeuge, aber ohne :create(), muß ich dann irgendwas beachten, wenn ich diese Instanz nicht mehr benötige, oder killt die der Garbage Collector ohne Probleme? Weiß das einer?
:new() ohne :create()
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
:new() ohne :create()
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Rolf,
ja das geht. Ich benötige nur das Objekt, oder wie man den Zustand nennt. Warum das so geht, habe ich auch nicht ganz kapiert.
ich brauche oSteuer:oBez um da was reinzuschreiben, wegen einer Pauschalroutine. Aber ich kann das SLE nicht gebrauchen am Bildschirm. Zuerst habe ich es versteckt, aber dann habe ich aus Neugier das :create weggelassen. Es klappt für meine Zwecke.
Ob es jetzt DIE Lösung ist, kann ich nicht sagen. Es klappt aber.
ja das geht. Ich benötige nur das Objekt, oder wie man den Zustand nennt. Warum das so geht, habe ich auch nicht ganz kapiert.
Code: Alles auswählen
oSteuer:oBez := XbpSle():new()
oSteuer:oBez:datalink := { |x| IIf( x==NIL, LTrim(oSteuer:Bez), NIL) }
Ob es jetzt DIE Lösung ist, kann ich nicht sagen. Es klappt aber.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
:New() ruft intern die :Init() Methode (falls vorhanden) auf und gibt somit ein Objekt zurück. Normalerweise kann so ein Objekt keine Mehtoden ausführen, aber oXbpPrinter():New():List() zeigt dass es Ausnahmen gibt
:Create() dient bei 'normalen' XbParts dazu Systemresourcen mit dem jeweiligen Objekt zu verbinden. Bei eigenen Klassen, die lediglich Speicher benötigen, braucht man auch kein :Create() eigene Methoden müssten dennoch aufrufbar sein, solange diese keine Systemresourcen benötigen, das habe ich aber noch nicht probiert.
Solange du nur Variablen brauchst ist das aber überhaupt kein Problem und diese werden auch wieder sauber vom GC entfernt.
:New() ruft intern die :Init() Methode (falls vorhanden) auf und gibt somit ein Objekt zurück. Normalerweise kann so ein Objekt keine Mehtoden ausführen, aber oXbpPrinter():New():List() zeigt dass es Ausnahmen gibt
:Create() dient bei 'normalen' XbParts dazu Systemresourcen mit dem jeweiligen Objekt zu verbinden. Bei eigenen Klassen, die lediglich Speicher benötigen, braucht man auch kein :Create() eigene Methoden müssten dennoch aufrufbar sein, solange diese keine Systemresourcen benötigen, das habe ich aber noch nicht probiert.
Solange du nur Variablen brauchst ist das aber überhaupt kein Problem und diese werden auch wieder sauber vom GC entfernt.
Gruß
Hubert
Hubert