fb:porticula NoPaste
Auflösungsangepasster Bildschirmaufbau
Uploader: | Sebastian |
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