Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Verhältnis Spalten/Zeilen zur Auflösung gleichsetzen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Leader4



Anmeldungsdatum: 20.01.2005
Beiträge: 99
Wohnort: Leipzig

BeitragVerfasst am: 01.07.2005, 09:42    Titel: Verhältnis Spalten/Zeilen zur Auflösung gleichsetzen Antworten mit Zitat

Mal ne Frage zur Bildschirmauflösung. zwinkern

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. traurig


Weiß jemand, wie man FB gleiche Zeilen-Spalten-Vertteilungen in unterschiedlichen Screens erzeugen kann? Würde mir echt helfen.

Danke. happy
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 02.07.2005, 21:55    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz