| 
				
					|  | Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| Leader4 
 
 
 Anmeldungsdatum: 20.01.2005
 Beiträge: 99
 Wohnort: Leipzig
 
 | 
			
				|  Verfasst am: 01.07.2005, 09:42    Titel: Verhältnis Spalten/Zeilen zur Auflösung gleichsetzen |   |  
				| 
 |  
				| Mal ne Frage zur Bildschirmauflösung.   
 Kann man das Verhältnis Spalten/Zeilen zu Auflösung skallieren?
 
 Also:
 - Wenn ich Screen 18 verwende, hab ich eine Auflösung von 640x480
 und 80 Spalten sowie 30 Zeilen.
 - Wenn ich Screen 19 verwende, hab ich eine Auflösung von 800x600
 und über 100 Spalten und etwa 35 Zeilen.
 
 Mein Ziel ist es jetzt, dass ich auch im Screen 19 nur 80 Spalten und
 30 Zeilen hab. Dann könnt ich den Benutzer entscheiden lassen, ob er
 eine Auflösung von 640x480 oder 800x600 haben möchte, ohne dass
 der ganze Text auf dem Bildschirm verschoben wird.
 
 Ich habs im Screen 19 schon mit Folgendem versucht: width 80,25
 Hat aber nichts gebracht.
   
 
 Weiß jemand, wie man FB gleiche Zeilen-Spalten-Vertteilungen in unterschiedlichen Screens erzeugen kann? Würde mir echt helfen.
 
 Danke.
  _________________
 Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann.
 |  |  
		| Nach oben |  |  
		|  |  
		| Dusky_Joe 
 
  
 Anmeldungsdatum: 07.01.2005
 Beiträge: 1007
 Wohnort: Regensburg/Oberpfalz
 
 | 
			
				|  Verfasst am: 02.07.2005, 21:55    Titel: |   |  
				| 
 |  
				| WIDHT ist - soweit ich weiß - nur dazu zuständig, das Konsole-Fenster zu beeinflussen. Wenn du mit -s gui complierst, wird dieser befehl also vermutlich sogar ignoriert. 
 Ich kann dir leider auch nicht sagen, wie du die Zeichengröße wählst, möglich sollte es aber auf jeden fall sein, zumindest in einigen Modi. Du kannst aber  nur zwischen den Zeichengrößen 8x8, 8x14 und 8x16 wählen, da andere Charmaps nicht in der GfxLib gespeichert sind.
 
 Was du machen könntest, wäre eine eigene Font-Routine zu schreiben. Das ist nicht ganz unpraktisch, da PRINT viele Nachteile hat, z.B. dass der Hintergrund verloren geht, der Text sich nicht genau platzieren lässt, ...
 
 Als vorlage könntest du diesen Code benutzen, der in der Datei gfxLib.txt zu finden ist (siehe freeBASIC-Verzeichnis\docs):
 
  	  | Code: |  	  | DECLARE SUB GfxPrint( BYREF text AS STRING, _ BYVAL x AS INTEGER, BYVAL y AS INTEGER, _
 BYVAL col AS INTEGER, BYVAL buffer AS ANY PTR = 0 )
 
 TYPE fb_FontType
 h AS INTEGER
 data AS UBYTE PTR
 END TYPE
 
 ' Uncomment the internal gfx font you want to use
 EXTERN fb_FontData ALIAS "fb_font_8x8" AS fb_FontType
 'EXTERN fb_FontData ALIAS "fb_font_8x14" AS fb_FontType
 'EXTERN fb_FontData ALIAS "fb_font_8x16" AS fb_FontType
 
 SUB GfxPrint( BYREF text AS STRING, _
 BYVAL x AS INTEGER, BYVAL y AS INTEGER, _
 BYVAL col AS INTEGER, BYVAL buffer AS ANY PTR = 0 )
 
 DIM row AS INTEGER, i AS INTEGER
 DIM bits AS UBYTE PTR
 
 FOR i = 1 TO LEN(text)
 bits = fb_FontData.data + _
 (ASC(MID$(text, i, 1)) * fb_FontData.h)
 FOR row = 0 TO fb_FontData.h-1
 IF (buffer) THEN
 LINE buffer, (x + 7, y + row)_
 -(x, y + row), col,, _
 *bits SHL 8
 ELSE
 LINE (x + 7, y + row)-(x, y + row),_
 col,, *bits SHL 8
 END IF
 bits += 1
 NEXT row
 x += 8
 NEXT i
 END SUB
 
 SCREEN 13
 GfxPrint "Hello world!", 112, 96, 15
 SLEEP
 | 
 
 (wird die nächsten Tage auf http://dhost.info/siteofkaos/freeBASIC/Inhalt.html online gehen, muss nur noch ganz fertig werden.... siehe dann Den Punkt Gfx=>Tipps und Tricks=>GfxPrint)
 _________________
 fully biological degradable
 
 Once, the big wave arrives, you've got two ways, you can go:
 Either, you ride it, or you don't do.
 But, if you don't ride, you'll never know wether you'd have gone wet.
 |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten.
 Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
 Du kannst deine Beiträge in diesem Forum nicht löschen.
 Du kannst an Umfragen in diesem Forum nicht mitmachen.
 
 |  |