Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
10. Jun 2014
Das bleibt die ganze Zeit da drin.
Der Stream-Adapter leitert nur alle Zugriffe auf die TStream-Klasse um, welche über seine Methoden gemacht werden.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
10. Jun 2014
Eigentlich Recht einfach.
- TStream-Nachfolger können nicht direkt an IStream übergeben werden.
> TStream ist halt ein Delphi-Typ und ISteam kommt irgendwo aus dem OLE32, oder so.
> Gut, man hätte natürlich auf die Idee kommen können, die Methoden von IStream direkt in TStream einzubauen, damit man auch direkt darüber das IStream hätte supporten können, aber so schlau war wohl Keiner....
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
9. Jun 2014
Geplanter Zufall.
Probleme gibt es vorallem dann, wenn die Stringreferenzen auf der "falschen" Seite verändert, kopiert oder längere Zeit gespeichert werden.
Beispiel:
Erzeug dir einen String, z.B. über IntToStr (Achtung, es darf keine Konstante sein),
übergib ihn einer Interface-Methode und speichere ihn auf der anderen Seite in einer globalen Variable
und nun beende dein Programm...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
9. Jun 2014
String, AnsiString und UnicodeString sind Typen, welche über den Speichermanager des Delphi verwaltet werden.
WideString wird über die OleAut32.dll verwaltet.
Und der ShortString ist ein Record und wird von keinem Speichermanager verwaltet, da er meistens direkt auf dem Stack liegt.
Alles was über den Delphi-Speichermanager verwaltet wird, muß z.B. via ShareMem verbunden werden.
Und wenn...