Autor Beitrag
LokutusvB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 74

WinXP
Delphi 5, Delphi XE
BeitragVerfasst: Mi 09.11.11 15:58 
Hallo,

im Netz gibt es einige Diskussionen über das Thema "Delphi Windows Font installieren/kopieren/löschen". Aber keine der Diskussionen schafft wirklich Klahrheit.

Ich möchte für das Nutzen von Barcodes in einem Delphi-Programm (Delphi XE) 2 Barcode-TTF-Schriftdateien in Windows installieren bzw. wieder löschen.

Laut Delphi-Hilfe und Internet gibt es dafür die Funktionen Add bzw. RemoveFontRessource mit anschließend SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);.

Das hat bei mir allerdings zur Folge, wenn ich den PC neustarte, sind die Schriften wieder weg. Kopiere ich die Windows-Schriften einfach via Datei-Kopie in den Windows\Fonts-Ordner, müßte ich noch nachträglich den Ordner einmalig öffnen und dann wieder schließen. Wieso geht das nicht alles automatisch mit AddFontRessource?

Und wie bekomme ich eine solche Schrift wieder gelöscht? Die Datei aus dem Windows\Fonts Ordner per DeleteFile löschen, reicht nicht aus. Öffne ich den Ordner, sind die Schriftdateien noch immer mit einer Größe von 0 kb aufgelistet. RemoveFontRessource tut es hier an der Stelle leider auch nicht.

Kann hier bitte mal aufklären und Ordnung in das "Wirrwarr" schaffen?


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 09.11.2011 um 15:35
HeftCD
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 91
Erhaltene Danke: 9

Win2k, WinXP, Win7, Win8
Delphi 3 Pro, Delphi 5, Delphi 7, Turbo Delphi, BC1
BeitragVerfasst: Mi 09.11.11 22:10 
Ich seh Dein Problem nicht.


mach doch IF NOT Fileexists() then
schreib doch aus nem MEMO ne COMMAND Datei.

"bla.cmd"

Copy MEIN_FONT.ttf "C:\Windows\Fonts\"


und für die per Shellexecute aus und löscht die danach.


Und zum Löschen schreibste auch ne Command-batch-Datei.
Del "C:\Windows\Fonts\MEIN_FONT.ttf"


Gänsefüßchen, bei LEERZEICHEN im PFAD angeben.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mi 09.11.11 23:07 

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
LokutusvB Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 74

WinXP
Delphi 5, Delphi XE
BeitragVerfasst: Do 10.11.11 08:45 
user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:
Ich seh Dein Problem nicht.

Wenn möglich, würde ich das Problem gern ohne Shellexecute lösen. Sonst könnte ich mir auch gleich eine Batch-Datei schreiben und Delphi links liegen lassen. Das Problem der Schriften muß doch auch mit Delphi ohne Shellexecute lösbar sein.

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
vielleicht hilft das
www.delphipraxis.net...essource-nutzen.html

Danke für den Link, ich werde mir die Diskussion mal anschauen.
...
Ich habe mir die Diskussion mal angeschaut. Wenn ich die Lösung richtig verstehe, ist dort die Schrift nur innerhalb der Anwendung gültig. Ich benötige jedoch eine Lösung, in der die Schrift für alle Windows-Anwendungen zur Verfügung steht, bis sie eben wieder irgendwann vom Delphi-Programm gelöscht werden soll.

Zusatz:
Ich habe das hier gefunden:
delphi-treff.de/tipp...-und-deinstallieren/

Wenn ich jedoch RemoveFontRessource mit SendMessage aufrufe, ist die Schrift noch immer im Fonts-Verzeichnis enthalten.