AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ist wahres Unicode mit Delphi überhaupt möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

Ist wahres Unicode mit Delphi überhaupt möglich?

Ein Thema von blackdrake · begonnen am 7. Aug 2008 · letzter Beitrag vom 23. Aug 2008
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:30
Hallo.

Borland will ja bald seine Delphi-VCLs Unicode-tauglich machen. Es gibt zwar jetzt schon kommerzielle Komponenten, mit denen man Unicode gut handhaben kann, doch sind diese für OpenSource-Entwickler für mich nicht zu gebrauchen.

Ich habe fast die Vermutung, dass Delphi die falsche Programmiersprache ist, wenn man Unicode möchte. Die VCL dürfte das kleinere Übel sein.

Ich habe mir mal folgendes Beispielprogramm ausgedacht und sehe, dass Unicode quasi unmöglich ist:

1. Das Programm bekommt einen Unicodenamen über die Befehlszeile.
> Geht nicht. ParamStr() gibt nur einen String von sich, keinen Widestring!

2. Der Dateiname soll in einer Editbox dargestellt werden.
> Würde gehen, wenn VCL Unicode geeignet.

3. Die Datei soll nun umbenannt werden.
> Geht, wenn man MoveFileW() anstelle von MoveFile() verwendet.

4. In die Datei soll mit einer Nicht-API-Funktion geschrieben werden.
> Keine Ahnung. Deklaration von AssignFile() ist nicht innerhalb der System.pas aufzufinden.

Am meisten machen mir also die Befehlszeile (ParamStr) und die Nicht-API-Funktionen von Delphi sorgen.

Das blöde ist außerdem, dass ich nicht in den Genuss der neusten Delphi Versionen wie z.B. 2008 kommen werde. Als OpenSource-Entwickler bin ich sehr froh, Turbo-Delphi kostenlos nutzen zu dürfen. Würde ich kommerzielle VCLs nutzen, könnten andere Entwickler meinen Source nicht weiterverwenden.

Was meint ihr? Ist Delphi der falsche Weg, wenn man an Unicode denkt? Ich bin mir sicher, Microsoft hat in VC++ etc. absolut keine Probleme mit Unicode.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:36
Zitat:
1. Das Programm bekommt einen Unicodenamen über die Befehlszeile.
> Geht nicht. ParamStr() gibt nur einen String von sich, keinen Widestring!
Ab D2009 ist der StandardString von Delphi ein UnicodeString

Zitat:
2. Der Dateiname soll in einer Editbox dargestellt werden.
> Würde gehen, wenn VCL Unicode geeignet.
Ab D2009 ist das der Fall

Zitat:
3. Die Datei soll nun umbenannt werden.
> Geht, wenn man MoveFileW() anstelle von MoveFile() verwendet.
Dito

Zitat:
4. In die Datei soll mit einer Nicht-API-Funktion geschrieben werden.
> Keine Ahnung. Deklaration von AssignFile() ist nicht innerhalb der System.pas aufzufinden.
System.pas ist nur ein Dummy
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:38
Also unsere Anwendung ist (dank ElPack und ein bischen TNTWare) seit 2002 mit Delphi 6 Unicodefähig. Selbst unter Win98 (bis vor kurzen noch Win95) können wir Unicode in der GUI ohne jedliche Installation (passender Font vorrausgesetzt). Welches VC++ oder .NET kann das
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:41
Man kann sich ein ParamStrW selbst basteln. Gibt hier einen Eintrag in der Library der zeigt, wie das geht.

In Dateien schreiben geht mit Sachen wie den TNTFileStream wunderbar. Könnte man sich wahrscheinlich auch aus dem Code von TFileStream und ersetzen der Api-Aufrufe durch die entsprechende *W-Variante selbst zusammenbauen.

Insofern: Mit etwas Mehraufwand bekommt man seine Anwendung durchaus Unicode-fähig.
The angels have the phone box.
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:45
Zitat von mkinzler:
Ab D2009 ist der StandardString von Delphi ein UnicodeString
Würde das bedeuten, dass man den Code einfach portieren kann, ohne sich Gedanken über Unicode und WideStrings zu machen?

Sprich - Kompiliert in Turbo-Delphi eine Non-Unicode-Anwendung, kompiliert in D2009 eine Unicode-Anwendung?

Würde man jedoch in D2009 kompilieren ... gäbe es dann nicht Inkompatibilitätsprobleme mit älteren Windows Versionen (W95 *räusper*)?

Zitat von Bernhard Geyer:
Also unsere Anwendung ist (dank ElPack und ein bischen TNTWare) seit 2002 mit Delphi 6 Unicodefähig. Selbst unter Win98 (bis vor kurzen noch Win95) können wir Unicode in der GUI ohne jedliche Installation (passender Font vorrausgesetzt). Welches VC++ oder .NET kann das Smile
ElPack habe ich zufälligerweise, weil ich aufgrund eines Bannerexchanges für Freeware-Entwickler eine Frei-Lizenz erhalten habe. Aber für OpenSource wie gesagt makaber, weil dann der Code nur noch für mich und ElPack-Besitzer einsehbar/veränderbar wäre.

TNTWare ist ja leider kommerziell geworden. Als es noch Freeware war, hatte man fast die perfekte Lösung.

Zitat von Gausi:
Man kann sich ein ParamStrW selbst basteln. Gibt hier einen Eintrag in der Library der zeigt, wie das geht.
Das geht? Muss ich gleich mal suchen. Vielen Dank für den Hinweis.

Ich müsste mir mal einen Plan machen, welche Stellen der Dateiname in meinem Programm passiert, sodass ich alle Non-Unicode-Funktionen versuchen kann, zu umgehen oder zu ersetzen.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
christian_u

Registriert seit: 13. Nov 2006
126 Beiträge
 
#6

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:47
Hast du dich mal mit Lazarus auseinandergesetzt ? Dort wird Unicode wesentlich weiter unterstützt und man braucht keine Zusatzkomponenten. Ausserdem, ist Lazarus selbst ja Open Source und dürfte dir damit wesentlich mehr zusagen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:48
Zitat:
Würde das bedeuten, dass man den Code einfach portieren kann, ohne sich Gedanken über Unicode und WideStrings zu machen?
Ja und Nein. UnicodeString ist nicht WideString sondern ein unicodefähiger Stringtyp

Zitat:
Sprich - Kompiliert in Turbo-Delphi eine Non-Unicode-Anwendung, kompiliert in D2009 eine Unicode-Anwendung?
Ja

Zitat:
Würde man jedoch in D2009 kompilieren ... gäbe es dann nicht Inkompatibilitätsprobleme mit älteren Windows Versionen (W95 *räusper*)?
Nein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:52
Zitat von mkinzler:
Zitat:
Würde das bedeuten, dass man den Code einfach portieren kann, ohne sich Gedanken über Unicode und WideStrings zu machen?
Ja und Nein. UnicodeString ist nicht WideString sondern ein unicodefähiger Stringtyp

Zitat:
Sprich - Kompiliert in Turbo-Delphi eine Non-Unicode-Anwendung, kompiliert in D2009 eine Unicode-Anwendung?
Ja
Vorsicht mit sowas! Das kommt sehr darauf an, was man in seiner Anwendung mit den Strings macht. Sobald man irgendwo die Eigenschaft benutzt, dass ein Zeichen ein Byte beansprucht, muss man umstrukturieren. Das wurde ja auch auf den Delphi-Tagen am Ende erläutert.
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:53
Zitat von blackdrake:
Würde das bedeuten, dass man den Code einfach portieren kann, ohne sich Gedanken über Unicode und WideStrings zu machen?
Zu 95-100% Ja. Je nachdem wie gut/fehlerfrei dein Code ist.

Zitat von blackdrake:
Würde man jedoch in D2009 kompilieren ... gäbe es dann nicht Inkompatibilitätsprobleme mit älteren Windows Versionen (W95 *räusper*)?
Win9x wird nicht mehr unterstützt (AFAIK seit D7 oder D2005). Mit D2007 laufen zwar die Apps noch (nach entsprechenden IE-Update), aber es ist keine unterstützte Plattform mehr (Nachdem W95 eher schon an der Promillegrenze scheidert von Rest-PC's ist dies irrelevant).

Zitat von Bernhard Geyer:
ElPack habe ich zufälligerweise, weil ich aufgrund eines Bannerexchanges für Freeware-Entwickler eine Frei-Lizenz erhalten habe. Aber für OpenSource wie gesagt makaber, weil dann der Code nur noch für mich und ElPack-Besitzer einsehbar/veränderbar wäre.
Man kann nicht alles haben

Zitat von Bernhard Geyer:
TNTWare ist ja leider kommerziell geworden.
War die einzigle Lösung das TNT noch weiterentwickelt wurde nachdem Troy sich zurückgezogen hat.

Zitat von Bernhard Geyer:
Man kann sich ein ParamStrW selbst basteln. Gibt hier einen Eintrag in der Library der zeigt, wie das geht.
Du hast doch TNTWare. Dort ist dach doch gemacht worden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: Ist wahres Unicode mit Delphi überhaupt möglich?

  Alt 7. Aug 2008, 13:58
Zitat von christian_u:
Hast du dich mal mit Lazarus auseinandergesetzt ? Dort wird Unicode wesentlich weiter unterstützt und man braucht keine Zusatzkomponenten. Ausserdem, ist Lazarus selbst ja Open Source und dürfte dir damit wesentlich mehr zusagen.
Ein OpenSource Delphi mit mehr Unicodesupport? Klingt ja wie in Bizarrowelt

Vielen Dank für den Hinweis. Ich werd es mir mal anschauen. Ich befürchte aber, dass man seine Projekte nicht einfach reinschieben und sofort wieder nutzen kann (jedoch unter der Annahme, dass man nur Standard-VCLs sowie die Indy's nutzt). Ich werde das Programm trotzdem mal genauer testen.

Zitat von Bernhard Geyer:
Du hast doch TNTWare. Dort ist dach doch gemacht worden
Wenn du mich meinst, ich habe leider kein TNTWare. Als es noch Freeware war, hatte ich mir über Unicode gar keine Gedanken gemacht und habe TNT daher auch nicht genutzt.
Daniel Marschall
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz