Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 07.11.2008, 23:52 Titel: [gelöst]FontHöhe ermitteln |
|
|
Gruss an alle...
Gibt es in FB irgendsowas wie ne Systemvariable die den benutzten Font(genauer die Höhe) in einem beliebigen Screen anzeigt???
Hab mir da ne Notlösung(Pixelzählen in einem Image mit chr(219) ) gebastelt, aber wenns auch anners geht...
Mutton
Zuletzt bearbeitet von Muttonhead am 08.11.2008, 16:20, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 08.11.2008, 00:05 Titel: |
|
|
alle fonts haben entweder 8,14,16 pixel höhe. so einfach ist das. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 08.11.2008, 00:17 Titel: |
|
|
Ich weiss... es geht mir nur einfach darum... angenommen ich mache mit SCREENRES (zb 234x467) einen Screen auf, welchen der 3 Fonts benutzt FB?
Es geht mir einfach nur um die INFO über die grad benutzte Höhe...
Mir ist schon klar, dass ich einen bestimmten Font einstellen kann
Mutton |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 08.11.2008, 00:24 Titel: |
|
|
Nicht getestet, aber ich denke, dass immer erst einmal der Font mit Höhe 16 verwendet wird. Umstellen kannst du mit WIDTH. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 08.11.2008, 00:32 Titel: |
|
|
bei screenres wird immer 8x8 benutzt. sieht man daran, dass die buchstaben quadratisch sind.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 08.11.2008, 00:40 Titel: |
|
|
Ah, danke, gut zu wissen.
Ich verwende immer nur die Standard-SCREENs. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 08.11.2008, 01:00 Titel: |
|
|
Es geht um eine kleine .bi die ich grad baue... subs innerhalb der bi sollen selbstständig die Fonthöhe ermitteln können, um Text richtig positionieren zu können.
Sollte ein anderer FB Programmierer meine .bi benutzen, kann er mit WIDTH machen was er will, meine Subs reagieren dann entsprechend....
Mutton |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 08.11.2008, 12:18 Titel: |
|
|
Code: | Function fonthoehe As Integer
Dim As Integer h
ScreenInfo h
Select Case h\HiWord(Width)
Case Is < 8 : Return 0
Case 8 To 13 :Return 8
Case 14, 15 : Return 14
Case Is > 15 :Return 16
End Select
End Function
Dim As Integer i,h,w
For i = 1 To 20
Screen i
Print "Screenmod:";i
ScreenInfo h,w
Print "Hoehe x Breite:";h;" x";w
Print "Zeilen x Spalten: ";HiWord(Width);" x ";LoWord(Width)
Print "Fonthoehe:";fonthoehe
Sleep
Next |  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 08.11.2008, 16:17 Titel: |
|
|
@volta cool...
FB Referenz:
"Die Funktion WIDTH gibt Informationen über die aktuelle Größe des Konsolefensters zurück."
also gehts auch bei Screens !!!!
meine Lösung:
Code: | function GetFontHeight as integer
dim as integer depth,fheight,i,col
dim as integer ptr gfx
SCREENINFO ,,depth
gfx=imagecreate(16,32)
if gfx then
select case depth
case 16,32
color &HFFFFFF,&H000000
line gfx,(0,0)-(15,31),&HFFFFFF,bf
draw string gfx,(0,0),chr(219),&H000000
col=&H000000
case 8
color 1,2
line gfx,(0,0)-(15,31),1,bf
draw string gfx,(0,0),chr(219),2
col=2
end select
for i=0 to 32
if point(0,i,gfx)=col then fheight=i
next i
imagedestroy (gfx)
end if
fheight +=1
function=fheight
end function |
Mutton
Mit Dank an allen .... [solved] |
|
Nach oben |
|
 |
|