Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#211

Re: Desktop Widget Engine (v0.7)

  Alt 19. Nov 2008, 16:03
Version 0.7 ist online!

ACHTUNG ACHTUNG:
Widgets, die mit einer früheren Version als 0.7 erstellt wurden, funktionieren NICHT mehr!!!!!

Aufgrund der Umstellung zu Unicode hat sich intern so viel getan, dass ich diesen Schritt gehen musste. Alle bereits auf der Website veröffentlichen Widgets sind bereits mit Version 0.7 kompatiblel.

Wenn ihr ein komplettes Update machen wollt, solltet ihr folgendes tun:
  • Die neue Version herunterladen
  • Programm ausführen und auf "Widget hinzufügen" klicken
  • Dann unten den Knopf Widgets herunterladen auswählen
  • Dann die endsprechenden Widgets auswählen (mehrfachauswahl möglich, Strg+A für alle) und auf öffnen klicken
  • Fertig!

So, nun aber zum eigendlichen Thema: Widgets sind jetzt komplett Unicode-fähig. Dafür habe ich sehr viele Standardfunktionen wie Copy, Length, usw. um eine WideString und um eine UTF8-Variante erweitert. Für die UTF8-Variante steht am Ende der Funktion jeweils ein U, für die WideString-Variante ein W.

Ihr müsst euch keine Sorgen um die hin-und her-Konvertierung machen - das macht der Kompiler alles automatisch. Jedoch solltet ihr wissen, dass eine Zuweisung von einem WideString zu einem String sachen verlohren gehen können (liegt ja an der begrentzen Möglichkeit von string).

Weil die Widgets jetzt Unicode-Fähig sind, können sie jetzt natürlich auch Übersetzt werden. Dafür habe ich einen Übersetzungsmanager eingebaut. Den Quelltext müsst ihr dafür aber auch anpassen.

Um einen String aus der Sprach-Datei zu laden, gebt ihr folgendes ein
Delphi-Quellcode:
var s: string;
begin
  s := Language.Lang('Identifier', 'Default');
end;
'Identifier' ist dabei ein der Name des Strings in der Sprachdatei. 'Default' ist der Wert, der zurückgegeben wird, falls 'Identifier' nicht gefunden wurde. Nichtgefunden Einträge werden automatisch gespeichert.

Wenn ihr jetzt eure Strings mit diesem Ausdruck [Language.Lang(...)] ersetzt habt, führt ihr euer im Editor aus. Dann wird automatisch die erste Sprachdatei erstellt. Dann schließt ihr euer Widget wieder und öffnet im Editor den Übersetzungsmanager (unter "Ansicht"). Dort wählt in dann im Punkt "Sprache" den Punkt "Vom letzen ausführen Importieren" - und schon füllt sich der Editor. Jetzt könnt ihr alle Einträge beliebig bearbeiten.

ACHTUNG: es werden nur die Sprach-Strings übernommen, die bei der Ausführung per Language.Lang() aufgerufen wurden. Falls sich der Ausdurck "Language.Lang" in einem Code-Stück befindet, der nicht erreicht wurde, wird der String nicht übernommen (da er ja nicht vorhanden ist).

Die Umstellung auf Unicode hat sehr viel mit sich gezogen - ich würde ich wirklich empfehlen, mal kurz den ChangeLog zu Version 0.7 durchzulesen.

@Sherlock: Man bist du schnell - ich schreibe gerade, was sich alles verändert hat und schon kommt der nächste Eintrag
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat