Distribution

Welche Dateien muß ich mit meinem Programm weitergeben, wenn es die ActiveX-HTML-Komponente enthält?

Die entsprechende Datei heißt html.ocx und liegt im Windows-Systemverzeichnis. Mit der Weitergabe dieser Datei ist es allerdings nicht getan. Sie muß noch per regsvr32 (Windows) oder tregsvr (Delphi) im System registriert werden.

Generell kannst Du sowas herausfinden, indem Du
a) in der Dokumentation des ActiveX nachsiehst (Ich weiß, nicht bei allen steht das dabei) deshalb
b) Benutze den Menüpunkt Komponenten - ActiveX importieren. Du bekommst eine Liste aller im System registrierten ActiveX (OLE) Controls. Inklusive Dateinamen und Liste der dort definierten Klassen.

Warum werden auf einigen Rechnern die Glyphs auf Toolbuttons nicht korrekt dargestellt?

Ich hab in einem Programm eine Imagelist, aus der meine ToolButtons ihre Glyphs beziehen. Das läuft auch gut, bis ich die kompilierte EXE-Datei auf einem anderen Rechner ausprobiere. Da fehlen auf einmal alle Bilder...

Das ist ein bekanntes Problem. MS hat man dem Internet Explorer 4.0 die Implementierung der ImageLists geändert, deswegen funktionieren die alten Kapselungen nicht mehr. Angeblich läßt sich das umgehen, indem man die Icons in einer Resourcendatei speichert und sie zur Laufzeit in die Imagelist lädt. Im Update Pack#1 für D3 (gibt's nur von Inprise auf CD, nicht zum Download) oder in D4 ist das aber behoben.

Zur Präzisierung: Das Problem ist die COMCTL32.DLL auf dem Entwicklungsrechner. Wenn da der IE 4.0 installiert ist (zwischenzeitlich evtl. auch schon andere neue MS-Programme), wird die Imagelist von der neuen COMCTL32.DLL gespeichert und kann nur noch auf Rechnern mit der neuen COMCTL32.DLL gelesen werden. Wenn auf dem Entwicklungsrechner die alte DLL (Vers. 4.70) läuft, und die Imagelist auch von der erzeugt wurde, können alle Rechner die Imagelist lesen.

Fehlende Umlaute in Delphi-Programmen

Einer meiner Anwender hat mir ein sehr seltsames Problem berichtet: In allen Menüs meines Programmes (Caption und Canvas.Textout, überwiegend mit MS-Sans-Serif, teilweise Arial) sind die Umlaute nicht korrekt dargestellt.

Das ist ein altbekanntes Problem - meine User fragen mich das alle paar Wochen. :-(

Der User setzt wahrscheinlich die Microsoft LexiROM ein. Diese installiert 2 defekte Schriften, Arial Spezial G1 und Arial Spezial G2 (MSGEOAR1.TTF, MSGEOAR2.TTF). Entfernen dieser Schriften sollte das Problem beheben - auch LexiROM laeuft besser ohne diese Schriften. Fragt sich nur, ob MS das extra gemacht hat :-(((

Wie kann man in einem Programm eine Nicht-System-Schriftart benutzen?

In meinem Delphi-Programm benutze ich mal keine Standard-Schrift von Windows, sondern eine spezielle Schriftart als Font in Labels. Aber wenn ich das kompilierte Programm weitergebe und es auf einem Rechner läuft, auf dem diese spezielle Schirftart nicht installiert ist, gibt's Probleme mit der Anzeige. Gibt es eine Möglichkeit, die Schriftdatei in das Programm einzubinden?

[Markus Goetz:] Liefere den Font als Datei mit und nenn die Datei z.B. Irgendwas.TTF und rufe dann in der OnCreate-Methode des Formulars folgendes auf:

AddFontResource(pchar(ExtractFilePath(ParamStr(0))+'Irgendwas.TTF')));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
In der OnDestroy-Methode noch folgendes :

RemoveFontResource(pchar(ExtractFilePath(ParamStr(0))+'Irgendwas.TTF')));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);

Installshield fragt bei einer Paradox-Installation nach fehlenden Datapump.*-Dateien

Wenn ich mit Installshield ein Setup-Programm zusammenstelle und die BDE für Paradox damit einbinden will, listet Installshield drei Dateien DATAPUMP.* auf, die ich nirgends auf meinem PC finden kann. Lösche ich die drei Dateien aus dem Protokoll, dann funktioniert die Installation auf dem zweiten PC nicht. Wer kann mir helfen?

Suche mal in der Datei "swdepend.ini" im InstallShield Verzeichnis nach DataPUMP (das sind 3 Zeilen) und setze vor diese Zeilen jeweils ;; Dann klappt's wieder, wie es soll :)

Lizenzbestimmungen für den Gebrauch des GIF-Formats updated

Die Firma Unisys besitzt Patentrechte an dem im GIF-Format verwendeten LZW-Komprimieralgorithmus. Darum muß man Programme, die Bilder im GIF-Format verwenden (also lesen oder schreiben können) bei Unisys kostenpflichtig lizensieren. Dieser Textauszug von der Unisys-Internetseite verdeutlicht die Bestimmungen:

"In all cases, a written license agreement or statement signed by an authorized Unisys representative is required from Unisys for all use, sale or distribution of any software (including so-called "freeware") and/or hardware providing LZW conversion capability (for example, downloaded software used for creating/displaying GIF images). In certain cases, no license fees may be required, but this needs to be evidenced by a written agreement or written statement signed by an authorized Unisys representative."

Walter Schick hat dazu allerdings eine interessante Anmerkung beigesteuert und bezieht seine Informationen von einem Patentanwalt:

"...wobei das GIF-Format seinerzeit von Compuserve freigegeben wurde und die US Firma Unisys lediglich in den USA selbst ein Patent an der Bildkompression hält, das auch nicht unumstritten ist, und sowieso im Jahr 2003 ausläuft.

In Deutschland und der übrigen EU ist diese Kompressionsmethode definitiv nicht durch ein Patent geschützt. Solange eine Anwendung, die GIF verwendet, nicht in den USA vertrieben wird, kann Unisys nichts machen."