AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit AddFontResource

Ein Thema von G-Baumstamm · begonnen am 19. Okt 2012 · letzter Beitrag vom 21. Okt 2012
Antwort Antwort
G-Baumstamm

Registriert seit: 9. Jan 2010
63 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit AddFontResource

  Alt 19. Okt 2012, 13:31
Delphi-Version: 5
Heyho,

in einer meiner Anwendungen verwende ich die Schriftart 'Segoe UI Semibold', die unter Windows Vista & 7 ja vorinstalliert ist.

Um das gleiche Design auch unter XP zu haben (wo die Schriftart nicht installiert ist), möchte ich die Schriftart als Resource einbinden. Folgende Prozedur soll sie dann installieren:

Delphi-Quellcode:
{ Die rc-Datei: }

Segoe RT_FONT "seguisb.ttf"

{ aus der main-unit: }

type
  TFontResBuffer = record
    Buffer: PChar;
    Fraktur: THandle;
    Size: Integer;
  end;

{ ... }

var FontRes: TFontResBuffer;

{ ... }

procedure TProject.AddFontFromRes (const ResName: PChar; var Buffer: TFontResBuffer);
var
  Res : TResourceStream;
  ResFontCount: DWord;
begin
  Res := TResourceStream.Create(hInstance, ResName, 'RT_FONT');
  try
    Buffer.Size := Res.Size + 1;
    Buffer.Buffer := AllocMem(Buffer.Size);
    Res.Read(Buffer.Buffer^, Buffer.Size);
  finally
    Res.Free;
  end;
  ResFontCount := 1;
  Buffer.Fraktur := AddFontMemResourceEx(Buffer.Buffer, Buffer.Size, nil, @ResFontCount);
  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

{ Aufruf: } 

Project.AddFontFromRes(PChar('Segoe'),FontRes);
Die Schriftart wird anscheinend vernünftig aus der Resource geladen, zumindest gibt AddFontMemResourceEx nen gültiges Handle zurück. Das Problem: Unter XP passiert nach Aufruf dieser Prozedur trotzdem nichts, Labels, Buttons etc haben weiterhin Arial als Schriftart (nimmt er standardmäßig als Ersatz denke ich). Wenn ich auf meinem Windows 7 - Rechner die Prozedur ausführe und vorher die Schriftart vom System entferne, hat er für die ersten ~2 Sekunden die fette Variante aus der Segoe Familie und switcht dann zur richtigen, scheint also zu funktionieren.

Irgendjemand ne Idee was da falsch laufen könnte ?
Daniel NR
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Problem mit AddFontResource

  Alt 19. Okt 2012, 13:35
In einer meiner Anwendungen verwende ich die Schriftart 'Segoe UI Semibold', die unter Windows Vista & 7 ja vorinstalliert ist.

Um das gleiche Design auch unter XP zu haben (wo die Schriftart nicht installiert ist), möchte ich die Schriftart als Resource einbinden.
Hast du auch von Microsoft die Erlaubnis geholt das zu machen? AFAIK erteil MS keine Erlaubnis diese Schriftarten mit der eigenen Anwendung zu verteilen!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
G-Baumstamm

Registriert seit: 9. Jan 2010
63 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Problem mit AddFontResource

  Alt 19. Okt 2012, 19:49
Das wusste ich nicht, danke für den Hinweis. Werde ich mir wohl ne freie Schriftart suchen und die verwenden ... Denke allerdings nicht das damit das beschriebene Problem gelöst ist, jemand da noch ne Ahnung ?
Daniel NR
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Problem mit AddFontResource

  Alt 19. Okt 2012, 21:28
Verwendest Du den Font dann auch irgendwo ....

http://www.delphipraxis.net/170969-%...ml#post1186852
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
G-Baumstamm

Registriert seit: 9. Jan 2010
63 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Problem mit AddFontResource

  Alt 21. Okt 2012, 17:18
Danke sehr, funktioniert einwandfrei !
Daniel NR
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:14 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