Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Auflösungsangepasster Bildschirmaufbau

Uploader:AdministratorSebastian
Datum/Zeit:19.10.2011 14:59:11

'Aufloesungsangepasster Bildschirmaufbau
'19.10.2011, FBPSL
'Beilage zu http://forum.qbasic.at/viewtopic.php?t=7654

Declare Sub AufloesungErmitteln ()
Declare Function kx (ByVal xRelativ As Single) As Integer
Declare Function ky (ByVal yRelativ As Single) As Integer
Declare Sub PrintZentriert (ByRef Ausgabe As String, byval yRelativ As Single, Byval farbe As Uinteger)

DIM SHARED AS INTEGER istBreite, istHoehe, farbtiefe

'Aufloesung irgendwie festlegen, z.B. durch direkte Benutzereingabe
DIM AS INTEGER sollBreite, sollHoehe
Print "Bitte legen Sie die Aufloesung fest:"
Input "Breite = ", sollBreite
Input "Hoehe  = ", sollHoehe
ScreenRes sollBreite, sollHoehe, 4
'Aufloesung gesetzt.


' ....

'Da wir vielleicht nicht immer wissen, mit welcher Aufloesung gearbeitet wird:
AufloesungErmitteln  'Gewaehlte Aufloesung feststellen

Line ( kx(0.25), ky(0.25) ) - ( kx(0.75), ky(0.75) ), 14, B
Line ( kx(0.25), ky(0.5)  ) - ( kx(0.75), ky(0.5)  ), 14, B
PrintZentriert ("Hallo Welt", 0.35, LOWORD(COLOR))

sleep
end


' *** Ende des Hauptprogramms. Ab hier Unterprogramme ***


Sub AufloesungErmitteln ()
    SCREENINFO istBreite, istHoehe, farbtiefe
End Sub

Function kx (ByVal xRelativ As Single) As Integer
    If ((xRelativ < 0) Or (xRelativ > 1)) Then
        Return 0  'Fehler
    Else
        Return istBreite * xRelativ
    End If
End Function

Function ky (ByVal yRelativ As Single) As Integer
    If ((yRelativ < 0) Or (yRelativ > 1)) Then
        Return 0  'Fehler
    Else
        Return istHoehe * yRelativ
    End If
End Function

Sub PrintZentriert (ByRef Ausgabe As String, byval yRelativ As Single, Byval farbe As Uinteger)
    DIM AS INTEGER Spalten, ZeichenBreite, BreiteDesStrings, xPos, yPos
    Spalten = LOWORD(WIDTH)
    ZeichenBreite = istBreite / Spalten
    BreiteDesStrings = Len(Ausgabe) * ZeichenBreite
    xPos = (istBreite-BreiteDesStrings)/2   'istBreite=Breite des Bildschirms
    yPos = istHoehe * yRelativ
    Draw String (xPos,yPos), Ausgabe, farbe
End Sub