Seite 1 von 6
Standardfont identifizieren
Verfasst: 22.07.2013 21:37
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!
Re: Standardfont identifizieren
Verfasst: 22.07.2013 23:57
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
Re: Standardfont identifizieren
Verfasst: 23.07.2013 00:14
von Daffy0815
Danke, bekomme ich aber leider nicht zum laufen!
Der Compiler "stolpert" über die Zeilen mit "DefType"
Gruß
Daffy
Re: Standardfont identifizieren
Verfasst: 23.07.2013 00:21
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

Re: Standardfont identifizieren
Verfasst: 23.07.2013 00:30
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
Re: Standardfont identifizieren
Verfasst: 23.07.2013 00:39
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
Re: Standardfont identifizieren
Verfasst: 23.07.2013 00:58
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.
Re: Standardfont identifizieren
Verfasst: 23.07.2013 01:03
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
Re: Standardfont identifizieren
Verfasst: 23.07.2013 01:13
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.)
Re: Standardfont identifizieren
Verfasst: 23.07.2013 01:17
von Daffy0815
Seehr schön
Dann sagen wir doch mal "DER GANZ NORMALE TEXT DEN MAN OHNE IRGENDETWAS ANZUGEBEN IN EIN FENSTER SCHREIBT"