Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Win 10 : add/remove Font Resource

  Alt 2. Dez 2017, 16:48
Das Problem wirst du auch unter einem Vollständig ge-update-tetem Window 7 haben. Delphi älter als XE hat übrigens auch das Problem, wenn man keinen Workaround oder IDEFixPack installiert hat.

Zitat:
Nach der Installation dieses Sicherheitsupdates können Schriftarten, die in einem anderen Verzeichnis als dem Standardverzeichnis für Schriften (%windir%\fonts\) installiert wurden, nicht verändert werden, wenn sie in eine aktive Sitzung geladen werden. Versuche, diese Schriftarten zu ändern, zu ersetzen oder zu löschen, werden blockiert, und die Meldung "Datei wird verwendet" wird angezeigt.
Quelle


Du kannst aber anstatt AddFontResource die Funktion AddFontMemResourceEx verwenden. Dann musst du auch keine Datei anlegen, die du wieder löschen musst.

Delphi-Quellcode:
var
  FontsCount: DWORD;
begin
  ...
  FontRes := TResourceStream.Create(hInstance, 'TTF', 'CityFont');
  try
    FontInt := AddFontMemResourceEx(FontRes.Memory, FontRes.Size, nil, @FontsCount);
  finally
    FontRes.Free;
  end;
end;
RemoveFontMemResource ist nur notwendig, wenn du zwischenzeitlich die Schriftart entfernen willst. Wenn der Prozess beendet wird, werden alle Mem-Fonts ebenfalls entladen.

Geändert von jbg ( 2. Dez 2017 um 17:19 Uhr)
  Mit Zitat antworten Zitat