Zurück zur Übersicht

Module Bearbeiten

Max2D Bearbeiten

Bilder zeichnen Bearbeiten

Ein Bild wird mit dem Befehl DrawImage auf den Bildschirm gezeichnet:

DrawImage( Bild:TImage, x:Int, y:Int, Frame:Int )

Rechtecke Bearbeiten

Um ein Rechteck zu zeichnen benutzt man den Befehl DrawRect. Als Parameter werden die Position (x,y), die Breite und ebenso die Höhe benötigt.

DrawRect( x:Int, y:Int, width:Int, height:Int )

Kreise Bearbeiten

DrawOval zeichnet einen Kreis. Die Parameter sind dieselben wie bei DrawRect.

DrawOval( x:Int, y:Int, width:Int, height:Int )

Text zeichnen Bearbeiten

Der zu zeichnende Text ist der erste Parameter, die Position folgt danach.

DrawText( text:String, x:Int, y:Int )

Einsatz von Blenden Bearbeiten

In Blitz Max ist es möglich, Blenden zu nutzen. Die zu verwendende Blende setzt man mit SetBlend

SetBlend( blend:Int )

Folgende Parameter kann man für diese Funktion verwenden:

  • SOLIDBLEND (Pixel überschreiben BackBuffer)
  • MASKBLEND (Pixel werden nur gezeichnet, wenn ihr Alpha-Wert größer als 0.5 ist)
  • ALPHABLEND (Pixel werden mit einer Transparenz (Alpha-Wert) in den BackBuffer gezeichnet)
  • LIGHTBLEND (Pixel werden mit dem BackBuffer additiv gemischt)
  • SHADEBLEND (Pixel werden mit dem BackBuffer multiplikativ gemischt)

MaxGUI Bearbeiten

MaxGUI ist ein Modul, das man sich zusätzlich zu BMax anschaffen kann. Damit ist es möglich, grafische Benutzeroberflächen (GUI - Graphical User Interface) zu entwickeln, die auf Windows, Linux und Macintosh laufen.

Fenster erstellen Bearbeiten

Um ein Fenster zu erstellen muss man die Funktion CreateWindow benutzen. Ihr kann man 7 Parameter übergeben, wovon nur 5 nötig sind:

CreateWindow:TGadget( name:String, x:Int, y:Int, width:Int, height:Int, gruppe:TGadget=Null, style:Int=15 )
  • Der Name des Fensters
  • Die x-Postion
  • Die y-Position
  • Die Breite
  • Die Höhe
  • Zugehörige Gruppe (optional, sonst NULL)
  • Eigenschaften des Fensters (mehrere Eigenschaften werden durch einen vertikalen Strich getrennt)
    • WINDOW_TITLEBAR (Titelleiste)
    • WINDOW_RESIZABLE (Benutzer kann das Fenster vergrößern)
    • WINDOW_MENU (Das Fenster hat ein Menü)
    • WINDOW_STATUS (Das Fenster hat eine Statusbar)
    • WINDOW_TOOL ((Das Fenster hat eine reduzierte Titelleiste, nicht bei allen Betriebssystemen)
    • WINDOW_CLIENTCOORDS (Koordinaten relativ zur "Client-Area", nicht zum Fenster)
    • WINDOW_HIDDEN (Das Fenster ist versteckt)
    • WINDOW_ACCEPTFILES (Drag and Drop aktiv)

Hier ist ein kleines Beispiel für ein leeres MaxGUI-Projekt:

'Variable als TGadget definieren
Local window:TGadget

'Fenster erstellen
window:TGadget = CreateWindow("Mein Fenster", 0, 0, 640, 480)

'Event Handler: Hier werden alle Ereignisse bearbeitet
While True
	
	WaitEvent
	
	'Jedes Ereignis hat eine ID, die beim Eintritt dieses Ereignisses in EventID() steht
	Select EventID()
		
		Case EVENT_WINDOWCLOSE
			
			End
			
	End Select
	
Wend

Menü Bearbeiten

Toolbar Bearbeiten

ProgressBar Bearbeiten

StatusBar Bearbeiten

Audio Bearbeiten

Streams Bearbeiten

Ein Stream ist ein Datenstrom, von dem man Daten lesen und schreiben kann.

Read-Stream Bearbeiten

Einen Stream zum Lesen von Dateien erstellt man mit ReadStream.

ReadStream( url:Object )

Wenn man Daten im Strom auslesen will, muss man je nach Kontext eine andere Funktion wählen:

  • ReadByte
  • ReadShort
  • ReadInt
  • ReadLong
  • ReadString
  • ReadLine

Möchte man wissen, ob man das Ende einer Datei erreicht hat,nimmt man die Funktion Eof.

Eof( stream:TStream )

Einen Stream muss man am Ende wieder schließen, dafür wählt man die Funktion CloseStream.

CloseStream( stream:TStream )

Diese Stream-Funktionen wird benötigt, wenn man eine Datei öffnen und ihren Inhalt lesen möchte. Hier ist eine Funktion, welche den Inhalt einer Textdatei ausliest:

Function PrintFile(url:Object)
	
	Local stream:TStream
	stream = ReadStream(url)
	While Eof(stream)=0
		
		Print ReadLine(stream)
		
	Wend
	CloseStream stream
	
End Function
Write-Stream Bearbeiten

Einen Stream zum Schreiben von Dateien erstellt man mit WriteStream.

WriteStream( url:Object )

Wenn man jetzt einzelne Daten schreiben möchte muss einen Befehl je nach Kontext benutzen:

  • WriteByte
  • WriteShort
  • WriteInt
  • WriteLong
  • WriteString
  • WriteLine

Auch hier schleißt man den Stream mit CloseStream.

CloseStream( stream:TStream )

Hier ein kleines Beispiel anhand eines Texteditors der mit der Eingabe <ende> geschlossen werden kann.

Global name:String 'Variable für den Name der Datei definieren.
Global text:String 'Variable für den Text definieren.
Global ende:Int 'Variable zur MArkierung des Endes definieren.
Global schreiben:TStream 'Stream zum Schreiben definieren.

name:String = Input( "Name für die Datei:" ) 'Input dür den Name der ...

schreiben:TStream = WriteStream( name:String + ".txt" ) '... hier noch mit einem ".txt" versehen wird.

Repeat 'Hier beginnt die Schleife.
		
	text:String = Input( ">" ) 'Input für den Text.
	
	If text:String = "<ende>" Then 'Wenn die Eingabe "<ende>" ist, dann ...
		
		ende = True '... ist ende wahr (true).
	
	Else 'Wenn nicht dann ...
	
		WriteLine( schreiben:TStream, text:String ) '... wird der Text in die Datei geschrieben.
	
	EndIf 'Ende der "Wenn ..., Dann ..." Abfrage.

Until ende:Int = True 'Wenn "ende" wahr ist, dann wird die Schleife beendet.

CloseStream( schreiben:TStream ) 'Wenn die Schleife endet wird der Stream geschlossen ...

End '... und das Programm beendet.

System Bearbeiten