Standardfont identifizieren
Standardfont identifizieren
Hallo,
wenn man in einem Programm einen Text ausgibt ohne einen bestimmten Font zu definieren so wird (wahrscheinlich) der normale Systemfont mit einer ??? Größe verwendet.
Wie kann man diesen im Programm identifizieren?
(Danach muss ich ja die Größe der Unterfenster berechnen)
Gruß
Daffy
PS. Bis jetzt habe ich nur herausgefunden das es etwas gibt das sich "#DEFAULT_GUI_FONT" nennt.
Wie man damit aber auf Name und Größe des Fonts kommt ist mir ein Rätsel!
wenn man in einem Programm einen Text ausgibt ohne einen bestimmten Font zu definieren so wird (wahrscheinlich) der normale Systemfont mit einer ??? Größe verwendet.
Wie kann man diesen im Programm identifizieren?
(Danach muss ich ja die Größe der Unterfenster berechnen)
Gruß
Daffy
PS. Bis jetzt habe ich nur herausgefunden das es etwas gibt das sich "#DEFAULT_GUI_FONT" nennt.
Wie man damit aber auf Name und Größe des Fonts kommt ist mir ein Rätsel!
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Standardfont identifizieren
In dem folgenden Code von Rescator gibt es Prozeduren dafür, ist aber schon sehr alt und mit API-Befehlen.
http://forums.purebasic.com/english/vie ... 97e#p95386
Code: Alles auswählen
Procedure.s GetDefaultFontName()
fnt.l=GetStockObject_(#ANSI_VAR_FONT)
If fnt
DefType.LOGFONT finfo
GetObject_(fnt,SizeOf(LOGFONT),@finfo)
systemfontname.s=PeekS(@finfo\lfFaceName[0])
ProcedureReturn PeekS(@finfo\lfFaceName[0])
EndIf
ProcedureReturn "System"
EndProcedure
Procedure.l GetDefaultFontSize()
fnt.l=GetStockObject_(#ANSI_VAR_FONT)
If fnt
DefType.LOGFONT finfo
GetObject_(fnt,SizeOf(LOGFONT),@finfo)
systemfontsize=finfo\lfHeight
ProcedureReturn finfo\lfHeight
EndIf
ProcedureReturn 12
EndProcedurePB 4.00 | Windows XP Home SP3
Re: Standardfont identifizieren
Danke, bekomme ich aber leider nicht zum laufen!
Der Compiler "stolpert" über die Zeilen mit "DefType"
Gruß
Daffy
Der Compiler "stolpert" über die Zeilen mit "DefType"
Gruß
Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Standardfont identifizieren
Wenn man nicht von alleine drauf kommt, das DefType dem Define entspricht, hilft immer noch die Suche in der Hilfe.
Da gibts dann nur einen Treffer in der Geschichte (History), wonach dann immer noch etwas blättern angesagt ist
Da gibts dann nur einen Treffer in der Geschichte (History), wonach dann immer noch etwas blättern angesagt ist
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Standardfont identifizieren
@ts-Soft
So "schlau" war ich auch schon!
Nur dann geh doch mal in die Hilfe dann gib unter "suchen" "deftype" ein und dann ????
Keine Möglichkeit zum suchen des Wortes in hunderten von Zeilen der "Geschichte"!!!
Gruß
Daffy
So "schlau" war ich auch schon!
Nur dann geh doch mal in die Hilfe dann gib unter "suchen" "deftype" ein und dann ????
Keine Möglichkeit zum suchen des Wortes in hunderten von Zeilen der "Geschichte"!!!
Gruß
Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Standardfont identifizieren
Was mich an der Ausgabe der Prozedur einwenig wundert ist das diese "MS SANS SERIF" zurückgibt.
Ich dachte immer der Standardfont wäre "Tahoma".
Und vor allen Dingen: Wo erscheint diese Schriftart bzw. deren Größe in den Einstellungen der Systemsteurung?
Unter Eigenschaften von Anzeige -> Darstellung -> Erweitert kommt diese Schriftart gar nicht vor!
Gruß
Daffy
Ich dachte immer der Standardfont wäre "Tahoma".
Und vor allen Dingen: Wo erscheint diese Schriftart bzw. deren Größe in den Einstellungen der Systemsteurung?
Unter Eigenschaften von Anzeige -> Darstellung -> Erweitert kommt diese Schriftart gar nicht vor!
Gruß
Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Standardfont identifizieren
Tahoma mag für Gadgets und Windows die Standard-Font sein, hängt aber davon ab, was du in deiner Theme eingestellt hast, aber danach hast du ja nicht gefragt.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Standardfont identifizieren
Eingestellt ist "Windows klassisch", Windows Standard, Schriftgrad Normal
Ist aber doch eigentlich egal wenn nirgens in den Eigenschaften der Anzeige eine Einstellung für den "Standard-Text-Font" und dessen Größe zu finden ist, dann ist das Ganze doch sowieso für die Katz!
Eigentlich ist das Ganze irgendwie "zum kotzen". Für jede zweite Programmzeile suchst man sich stundenlang einen "Wolf".
Es kann doch nicht wahr sein, dass es so ein Aufwand ist herauszufinden mit welcher Schriftart und Schriftgröße eine stinknormale Textausgabe in einem PureBasic-Fenster unter Windows hat.
Desgleichen die Sache mit den Compileroptionen.
Wenn ein Programm der Version 1.0 fünf Konfigurationsparameter hat und in der Version 1.1 sagen wir mal sechs dann sollte das Programm anhand seiner Versionsnummer in der Lage sein die Konfigurationsparameter entsprechend anzupassen.
Hierzu muss es aber auch möglich sein die Versionsnummern IM Programm zu verwalten und nicht nur in irgendeiner Compileroption.
Oder muss man das bei PureBasic doppelt verwalten?
Gruß
Daffy
Ist aber doch eigentlich egal wenn nirgens in den Eigenschaften der Anzeige eine Einstellung für den "Standard-Text-Font" und dessen Größe zu finden ist, dann ist das Ganze doch sowieso für die Katz!
Eigentlich ist das Ganze irgendwie "zum kotzen". Für jede zweite Programmzeile suchst man sich stundenlang einen "Wolf".
Es kann doch nicht wahr sein, dass es so ein Aufwand ist herauszufinden mit welcher Schriftart und Schriftgröße eine stinknormale Textausgabe in einem PureBasic-Fenster unter Windows hat.
Desgleichen die Sache mit den Compileroptionen.
Wenn ein Programm der Version 1.0 fünf Konfigurationsparameter hat und in der Version 1.1 sagen wir mal sechs dann sollte das Programm anhand seiner Versionsnummer in der Lage sein die Konfigurationsparameter entsprechend anzupassen.
Hierzu muss es aber auch möglich sein die Versionsnummern IM Programm zu verwalten und nicht nur in irgendeiner Compileroption.
Oder muss man das bei PureBasic doppelt verwalten?
Gruß
Daffy
Zuletzt geändert von Daffy0815 am 23.07.2013 01:19, insgesamt 1-mal geändert.
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Standardfont identifizieren
Eine Standard-Schriftart ist eine Schriftart, die benutzt wird, wenn nichts anderes Definiert ist.
Für Gadgets und deine GUI ist aber eine Font definiert, also musst du sie auch so auslesen, jenachdem von was (Button, Menü, Title, Dialog usw.)
Für Gadgets und deine GUI ist aber eine Font definiert, also musst du sie auch so auslesen, jenachdem von was (Button, Menü, Title, Dialog usw.)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Standardfont identifizieren
Seehr schön
Dann sagen wir doch mal "DER GANZ NORMALE TEXT DEN MAN OHNE IRGENDETWAS ANZUGEBEN IN EIN FENSTER SCHREIBT"
Dann sagen wir doch mal "DER GANZ NORMALE TEXT DEN MAN OHNE IRGENDETWAS ANZUGEBEN IN EIN FENSTER SCHREIBT"
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert