Standardfont identifizieren

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Standardfont identifizieren

Beitrag von Daffy0815 »

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!
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Re: Standardfont identifizieren

Beitrag von Rebon »

In dem folgenden Code von Rescator gibt es Prozeduren dafür, ist aber schon sehr alt und mit API-Befehlen.

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
EndProcedure
http://forums.purebasic.com/english/vie ... 97e#p95386
PB 4.00 | Windows XP Home SP3
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Standardfont identifizieren

Beitrag von Daffy0815 »

Danke, bekomme ich aber leider nicht zum laufen!

Der Compiler "stolpert" über die Zeilen mit "DefType"

Gruß

Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
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

Beitrag von ts-soft »

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 :mrgreen:
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.
Bild
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Standardfont identifizieren

Beitrag von Daffy0815 »

@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
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Standardfont identifizieren

Beitrag von Daffy0815 »

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
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Standardfont identifizieren

Beitrag von STARGÅTE »

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
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Standardfont identifizieren

Beitrag von Daffy0815 »

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
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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Standardfont identifizieren

Beitrag von STARGÅTE »

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.)
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
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Standardfont identifizieren

Beitrag von Daffy0815 »

Seehr schön :mrgreen:

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
Antworten