Moin Moin,
ich wollte nur mal einen winzigen Hack vorstellen, welcher "indirekt" z.B. im Turbo Delphi die TNT
Unicode Controls v2.3.0 einbindet.
[achtung]
Wenn es Probleme gibt, z.B.:
Zitat:
{$IFDEF COMPILER_10_UP}
* {$MESSAGE FATAL 'Do not refer to TntWideStrings.pas. It works correctly in Delphi 2006.'}
{$ENDIF}
und/oder womöglich auch noch mit mehreren Delphiversionen gearbeitet wird,
dann bitte erstmal das Projekt neu erzeugen und prüfen, ob es nicht an den Compilern liegt.
z.B. siehe hier
http://www.delphipraxis.net/internal...126663#1126663
D2006/TDE nutzt z.B. einen erweiterten D7-Compiler und diese sind in den DCUs soweit "leider" kompatibel zueinander, so daß dort die Units nicht automatisch neu kompilert werden und es somit zum einem Versionskonflikt kommen könnte.
[/achtung]
Man bastelt einfach im TD seine
GUI zusammen und bindet dann nur noch die entsprechenden TNT-Units in seine Formular-
Unit ein ... und/oder wo es sonst noch nötig ist.
z.B. die beiliegende Demo:
* ohne die eingebundenen Units ist alles
ANSI ... halt wie gewohnt
* sobald aber die TntHack*-Dateien eingebunden sind,
in der Demo sind es diese
Delphi-Quellcode:
uses ...
TntHackWindows, TntHackSysUtils, TntHackClasses, TntHackGraphics,
TntHackControls, TntHackForms, TntHackDialogs, TntHackStdCtrls, TntHackCheckLst;
werden die entsprechenden Delphi-
VCL-Komponenten beim "Kompilieren" ersetzt.
siehe Anhang:
- oben = normal
- unten = mit TNT-Hack
* einfach Regel: sobald eine XYZ in den Uses steht und einen gleichnamige TntHackXYZ existiert, dann diese einfach mit in der Uses eintragen (nicht austauschen! ... nur anhängen)
Genauer gesagt, werden die Runtime-Typen überschrieben und es werden dann vom
VCL-Form-Loader die TNT-Komponenten geladen.
Vorteil gegenüber dem "normalen" Vorgehen zum Einbinden externer Komponenten ist,
daß man keine Komponenten dynamisch erstellen muß, sondern einfach die Standardkomponenten der
VCL nutzt,
um sich die
GUI zusammenzuklicken und diese dann später autmatisch ersetzt werden.
> das wird vorallem auch dadurch gefördert, daß die TNTs vorwiegend "nur" ein
Unicode-Port der
VCL sind.
Achtung: die TntHack*-Dateien müssen natürlich immer als letztes in der Usesklausel stehen, da sonst die "gehackten" Komponenten von der
VCL überschrieben werden und nicht andersrum (wie es ja gewollt wäre)
Für alle, welche die TNTs kennen:
Hier müssen die gleichnamigen TntHack*-Dateien verwendet werden und nicht die Tnt*.
Es können aber auch "beide" eingebunden werden, solange die TntHack* ebenfalls als Letztere drinnen steht.
Die Anhänge sind zwar in Delphi 7 erstellt und kompiliert, sollten aber (hoffentlich) auch für die Turbos und andere Versionen bis Delphi 2006/2007 funktionieren.
Es muß auch nichts installiert werden.
> nur entpacken und die Suchpfade in den Projektoptionen angeben
Zur
Design-Time sind alle Komponenten noch
ANSI
und nach dem Kompilieren sind sie durch die TNTs ersetzt.
Dieses bedeutet aber auch, daß einiges nicht richtig funktiniert.
z.B. das Maskenzeichen von TEdit/TTntEdit ist in unterschiedlichen Properties gespeichert und würe demnach nicht vom
OI übernommen.
[info]
es ist noch nicht alles der TNTs in den Hack übertragen, bzw. dahin umgeleitet,
aber die vorhandenen Komponenten sollten alle drinnen sein.
[edit 19.10.2009 17:45] Aufgrund einiger Fehler (siehe #2) wurden alle Anhänge ausgetauscht
[update 20.10.2009 23:45] kleine Änderungen und vorallem bezüglich #2 nochmal alles durchgesehn