Edit: Project-Homepage gibts nun
hier
Hallo zusammen,
da Delphi 2006 nun intelligentere Records kann als seine Vorgänger (damit meine ich Function, Private/Public, Class Functions und Operatorüberladung), lag es einmal nahe, die bekannten schönen Valuetypes aus .Net mal für
Win32 nachzuprogrammieren.
Oberstes Gebot für mich dabei war Quellcodekompatibilität, so dass ein und derselbe Code in beiden Welten funktioniert. Via {$IFDEF} macht sich die
Unit dann unter .Net selbst unsichtbar.
Zum Üben hab ich mir zu erst einmal "TimeSpan" rausgesucht und bin damit auch fertig geworden. Funktioniert relativ gut, wenn man von zwei Delphi 2006 Bugs absieht:
- Der Debugger crasht leider total, da er wohl die ganzen neuen Recordfeatures noch nicht so ganz kennt
- Beim Aufruf gibt es gelegentlich einen Compilerfehler, so dass man in diesen Fällen den Code etwas umschreiben muss
Hab beide Bugs hier unter Bugreports gemeldet. Der zweite ist auch bereits bei Borland auf Status=Open. Bei dem anderen vertrau ich in Sakuras Fähigkeiten, seine Kollegen in den allerwertesten zu treten
Als nächstes Projekt steht für mich DateTime an, da TimeSpan ohne DateTime nur halb so viel Spaß macht. Aber es gibt noch viele weitere interessante Klassen, wobei für mich die Valuetypes (=records) im Vordergrund stehen.
Später könnte man sich auch überlegen, Klassen wie StringBuilder nachzuprogrammieren. Sie hat zwar in der Delphi-
Win32 Welt eigentlich nichts zu tun, aber man würde Sourcecode Kompatibilität erreichen, ohne seinen Code durch $IFDEFs verschandeln zu müssen.
Was meint Ihr dazu?