Referenzhandbuch
|
Kapitel 35
|
Windows
Obwohl sich für "Window" bei deutschen Anwendern verstärkt der Begriff "Fenster" durchsetzt, verbleiben wir
in diesem Text beim englischen "Window", um unnötige Verwirrung zu vermeiden. Windows sind separate Flächen eines
Screens, die zur Anzeige von Informationen genutzt werden. Windows sind unabhängig und somit können Sie in ein Window schreiben,
ohne andere Windows zu überschreiben, auch wenn ein Window vor Ihrem Window liegt. Windows können nur auf Screens der
Intuition-Art verwendet werden. Dies kann der Workbench Screen oder ein anwendereigener Screen sein.
Für eine effektive Handhabung der Windows sind folgende Schritte notwendig:
- Erstellen Sie einen Screen mit Screen oder WBToScreen
- Öffnen Sie die auf dem Screen benötigten Windows
- Benutzen Sie WaitEvent (warte auf Ereignis), um Anwenderaktivitäten in den Windows zu erkennen
- Stellen Sie fest, was bei welchem Ereignis zu unternehmen ist, führen Sie es aus und gehen Sie zurück zu Schritt 3.
Befehl: Window
Syntax: Window Windownummer,X,Y,Breite,Höhe,Flags,Titel$,Dpen,Bpen[,Gadgetlistennummer]
Modus: Amiga
Window öffnet ein Intuition-Window auf dem gültigen, benutzten Screen.
Windownummer ist eine einmalige Objektnummer für das neue Window. Die
X- und Y-Parameter legen die Plazierung des Windows im Screen fest.
Ausgegangen wird von der linken oberen Ecke des Screens. Breite,
Höhe bestimmen die Größe des Fensters.
Der Parameter Flags ist sehr komplex. Die Flags bestimmen, ob ein Window verkleinert oder
vergrößert werden darf, mit einem Schiebebalken versehen wird und vieles mehr. Wenn Sie Kombinationen der Flags im Window
benutzen wollen, benutzen Sie die Oder-Verknüpfung "|".
Beispiel:
Wenn Sie ein Window mit Dragbar (Schiebe- oder Schleppbalken) und Größengadget öffnen wollen, welches nach dem Öffnen
aktiv ist, müssen Sie diesen Flags-Parameter verwenden:
$1|$2|$1000
Mit Titel$ kann der Windowtitel als BASIC-String (Konstante oder Variable) angegeben werden.
DPen bestimmt die Farbe des Detail Pen des Windows. Hiermit wird
Titel$ dargestellt.
BPen bestimmt die Farbe des Block Pen des Windows. (z.B: Windowumrandung)
Mit Gadgetlistennummer können Sie die Nummer des Gadgetlistenobjektes eingeben, das Sie für dieses Window
benutzen möchten.
Wenn Sie das Window öffnen, wird es automatisch zum gültigen, benutzbaren Window erklärt.
In der folgenden Tabelle sehen Sie die verwendbaren Flags, die Sie bei dem Window-Befehl einzeln oder durch das
logische Oder (|) verbunden nutzen können.
Window-Flag |
Wert |
Beschreibung |
WINDOWSIZING |
$0001 |
Fügt ein Größengadget in die rechte untere Ecke des Windows ein und erlaubt eine Größenveränderung |
WINDOWDRAG |
$0002 |
Erlaubt ein Verschieben des Windows durch "Greifen" des Titelbalkens mit der Maus |
WINDOWDEPTH |
$0004 |
Läßt das Window vor oder hinter anderen Windows erscheinen |
WINDOWCLOSE |
$0008 |
Fügt ein Schließgadget in die linke obere Ecke des Windows ein |
SIZERIGHT |
$0010 |
Mit gesetztem GIMMEZEROZERO und WINDOWSIZING wird eine rechte Seitenbegrenzung durchgeführt. Ausgaben in das Window gehen nicht über die Begrenzung hinaus. |
SIZEBOTTOM |
$0020 |
Wie SIZERIGHT; hier wird der untere Rand des Winodws begrenzt. |
BACKDROP |
$0100 |
Öffnet das Window hinter allen anderen geöffneten Windows. WINDOWDEPTH kann nicht gleichzeitig gesetzt werden, da das Window immer hinter anderen Windows bleibt. |
GIMMEZEROZERO |
$0400 |
Verwaltet die Umrandung des Windows unabhängig von der restlichen Window-Fläche. Ausgaben in das Window überschreiben die Umrandungen nicht. Beachten Sie, daß hierfür mehr Speicherplatz benötigt wird. |
BORDERLESS |
$0800 |
Öffnet ein Window ohne Umrandungen |
ACTIVATE |
$1000 |
Aktiviert das Window automatisch |
Beispiel:
WbToScreen 0 ;benutze den Workbench-Screen
WBenchToFront_ ;und bringe ihn in den Vordergrund
Window 0,2,2,600,160,$1|$2|$4|$8,"Ein Window",0,1
MouseWait
WBenchToBack_
Befehl: Use Window
Syntax: Use Window Windownummer
Modus: Amiga
Use Window erlärt das Window mit der Nummer Windownummer als aktuell
zu benutzendes Window. Bei Benutzung von WindowInput und WindowOutput
wird Use Window für das gewählte Window automatisch durchgeführt.
Beispiel:
WBenchToFront_ ;aus der Intuition-Library
WbToScreen 0 ;Workbensch als Screen Nr. 0
Window 1,0,0,100,100,$f,"Window Eins",0,1
Window 2,100,100,100,100,$f,"Window Zwei",0,1 ;automatisch 'aktuell'
Print "Dies ist in Window 2"
Use Window 0 ;benutze Window 1
Print "Dies ist in Window 1"
MouseWait
Befehl: Free Window
Syntax: Free Window Windownummer
Modus: Amiga
Free Window schließt das Window Windownummer und gibt den
Speicherbereich frei. Das Window ist nicht mehr benutzbar. Ein- und Ausgaben müssen auf andere Windows geleitet werden.
Beispiel:
WBenchToFront_ ;Workbench-Screen nach vorne holen
WbToScreen 0 ;und als Screen 0 nutzen
Window 0,0,0,300,100,$f,"Mausknopf - Auf Wiedersehen!",0,1
MouseWait
Free Window 0
Befehl: WindowInput
Syntax: WindowInput Windownummer
Modus: Amiga
Das Window wird als Eingabefenster benutzt, die Inkey$-, Edit$- und
Edit-Funktionen erhalten die Eingaben über dieses Window. WindowInput wird
automatisch ausgeführt, wenn ein Window geöffnet wird oder wenn Use Window benutzt wurde.
siehe auch: WindowOutput, Window, Use Window, Free Window
Befehl: WindowOutput
Syntax: WindowOutput Windownummer
Modus: Amiga
Das Window wird als Ausgabefenster benutzt, die Printbefehle erfolgen auf dieses Window. WindowOutput wird
automatisch ausgeführt, wenn ein Window geöffnet wird oder wenn Use Window benutzt wurde.
siehe auch: WindowInput, Window, Use Window, Free Window
Befehl: DefaultIDCMP
Syntax: DefaultIDCMP IDCMP_Flags
Modus: Amiga
Sie können hiermit eine Einstellung der IDCMP_Flags durchführen, die später nach dem Öffnen des Windows verwendet
werden. Sie können die Flags ändern, sooft Sie möchten, dadurch können Sie für jedes Window eigene Flags
angeben, wenn Sie dies wünschen. Die IDCMP_Flags eines Windows legen fest, welche Arten von "events" (Ereignissen) erkannt
werden. Events (Ereignisse) werden später dem Programm durch die WaitEvent- oder
Event-Funktionen mitgeteilt. Wählen Sie mehr als ein Flag, müssen Sie die einzelnen Flags mit dem
ODER-Operator ("|") verbinden. Bei allen Windows, die vor der Ausführung einer
DefaultIDCMP-Anweisung geöffnet werden, sind folgende Flags gesetzt:
$4|$8|$20|$40|$100|$200|$400|$40000|$80000..
Diese Einstellung ist für die meisten Programme verwendbar.
Wenn Sie aus irgendwelchen Gründen DefaultIDCMP benutzen, achten Sie darauf, daß die
programmnotwendigen Flags gesetzt sind. Wenn Sie zum Beispiel ein Window öffnen, das Menüs beinhaltet, MÜSSEN Sie das
$100 (Menüauswahl)-Flag setzen, sonst haben Sie keine Möglichkeit, eine Menüauswahl zu
erkennen.
Es folgt eine Liste mit möglichen Ereignissen und deren IDCMP-Flags.
IDCMP-Flag |
Event (Ereignis) |
$2 |
Meldet eine Änderung der Windowgröße |
$4 |
Meldet, ob der Windowinhalt zerstört wurde, ein Neuzeichnen des Inhalts also erforderlich ist |
$8 |
Meldet, ob eine Maustaste gedrückt wurde |
$10 |
Meldet eine Mausbewegung |
$20 |
Meldet, ob ein Gadget im Window "gedrückt" wurde |
$40 |
Meldet, ob ein Gadget im Window losgelassen wurde |
$100 |
Meldet, ob eine Menüoperation im Window erfolgt ist |
$200 |
Meldet, ob das Schließgadget des Windows angewählt wurde |
$400 |
Meldet einen Tastendruck von der Tastatur |
$8000 |
Meldet, ob eine Disk ins Laufwerk eingelegt wurde |
$10000 |
Meldet, ob eine Disk aus dem Laufwerk entfernt wurde |
$40000 |
Meldet, ob ein Window aktiviert wurde |
$80000 |
Meldet, ob ein Window deaktiviert wurde |
Beispiel:
Screen 0,2 ;ein Intuition-Bildschirm
DefaultIDCMP $8 ;einfaches "Maustasten"-IDCMP-Flag
Window 0,0,0,320,100,0,"Schließt bei Mausknopf",0,1
DefaultIDCMP $400 ;Tastendruck-Flag
Window 1,0,100,320,100,0,"Schließt bei Tastendruck",0,1
ev.l=WaitEvent
If ev=$8 Then Free Window 0 Else Free Window 1 ;entsprechendes Fenster schließen
WaitEvent
Befehl: AddIDCMP
Syntax: AddIDCMP IDCMP_Flags
Modus: Amiga
AddIDCMP ermöglicht das Hinzufügen eines IDCMP_Flags zu den mit
DefaultIDCMP gesetzten Flags.
Bitte lesen Sie auch DefaultIDCMP.
Beispiel:
Screen 0,3
Window 0,0,0,320,DispHeight,$100f,"My Window",1,2
Repeat ;wiederhole
ev.l=WaitEvent
If ev=$10 ;hat sich die Maus bewegt
If WCursY+8>=InnerHeight Then InnerCls:WLocate 0,0
NPrint "Maus bewegt!"
EndIf
Until ev=512 ;bis das Fenster geschlossen wird
siehe auch: DefaultIDCMP, SubIDCMP
Befehl: SubIDCMP
Syntax: SubIDCMP IDCMP_Flags
Modus: Amiga
SubIDCMP entfernt ein IDCMP_Flag, das mit DefaultIDCMP gesetzt wurde.
Bitte lesen Sie auch DefaultIDCMP.
siehe auch: DefaultIDCMP, AddIDCMP
Befehl/Funktion: WaitEvent
Syntax: WaitEvent
Modus: Amiga
Hält den Programmablauf an und wartet auf ein Intuition Event (Ereignis). Es werden nur Ereignisse registriert, die über die
IDCMPflags als erlaubt erklärt wurden. Als Funktion gibt WaitEvent das IDCMP_Flag des Ereignisses
zurück. Mit EventWindow können Sie feststellen, welche Windowobjektnummer für das Ereignis
verantwortlich ist. Bei Menü-und Gadgetevents stehen weitere Funktionen zur Verfügung, mit denen die Menü- und Gadgetauswahl
erkannt werden kann. Um bei Maustastenevents festzustellen, welche Maustaste gedrückt wurde, muß die
MButtons-Funktion benutzt werden.
ACHTUNG:
Möchten Sie das Resultat von WaitEvent in eine Variable übertragen, stellen Sie sicher, daß
diese Variable eine Langvariable ist: MyEvent.l = WaitEvent
Beispiel:
Screen 0,2 ;ein Intuition-Bildschirm
Window 0,0,0,320,100,0,"in mich klicken zum Schließen",0,1
ev.l=WaitEvent ;auf ein Ereignis warten
siehe auch: Event, GadgetHit, MenuHit, ItemHit, SubHit, EventWindow
Funktion: Event
Syntax: Event
Modus: Amiga
Event arbeitet ähnlich wie WaitEvent, hält aber den Programmablauf
nicht an und gibt das IDCMP-Flag des ausstehenden Windowereignisses zurück. Trat kein Ereignis ein, wird eine
0 ausgegeben.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
ScreensBitMap 0,0 ;benutze seine Bitmap
DefaultIDCMP $400 ;'Tastendruck'-IDCMP für das Fenster
Window 0,0,0,320,200,$1000,"Tastendruck zum Verlassen",0,1
While Event=0 ;solange kein Ereignis eintritt...
Circlef Rnd(300),Rnd(200),Rnd(100),Rnd(8)
Wend
siehe auch: WaitEvent
Funktion: EventWindow
Syntax: EventWindow
Modus: Amiga/Blitz
EventWindow wird benutzt, um festzustellen, in welchem Window das Ereignis stattfand, indem die Nummer dieses
Windowobjektes zurückgegeben wird.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm und vier Fenster
Window 0,0,0,160,100,$100f,"Window 0",1,2
Window 1,160,0,160,100,$100f,"Window 1",1,2
Window 2,0,100,160,100,$100f,"Window 2",1,2
Window 3,160,100,160,100,$100f,"Window 3",1,2
Repeat
ev.l=WaitEvent ;warte auf ein Event
Use Window lw ;benutze das letzte Event-Window
InnerCls ;inneren Bereich des Fenster löschen
Use Window EventWindow ;benutze dieses Event-Window
WLocate 0,0 ;Textcursor nach oben links
Print "Ereignis hier!!" ;unterrichte sie!
lw=EventWindow ;mache dieses Fenster zum letzten Fenster
Until Inkey$=Chr$(27) ;Escape zum Verlassen
siehe auch: WaitEvent, Event
Befehl: FlushEvent
Syntax: FlushEvent IDCMP_Flags
Modus: Amiga/Blitz
Wenn Window Events (Ereignisse) ausgelöst werden, übernimmt Blitz2 diese automatisch in eine "Warteschleife". Dies ist
notwendig, damit Ereignisse, die stattfinden, wenn gerade ein anderes Ereignis vom Programm bearbeitet wird, nicht verloren gehen. Es kann
aber Situationen eben, in denen Sie diese zurückgelegten Ereignisse nicht gebrauchen können. Hierfür gibt es den
FlushEvent-Befehl.
Wenn FlushEvent ohne Parameter ausgeführt wird, erfolgt eine komplette Löschung aller noch
ausstehenden Ereignisse in der Warteschlange. Bei Angabe eines IDCMP_Flags-Parameters wird nur die
Warteschlange des entsprechenden Ereignistyps gelöscht.
siehe auch: WaitEvent, Event
Funktion: GadgetHit
Syntax: GadgetHit
Modus: Amiga
GadgetHit gibt die Identifikationsnummer des Gadget aus, das gerade "gedrückt" oder
"losgelassen" wird.
Bei mehreren Windows haben die Gadgets gleiche Nummern. Stellen Sie mit EventWindow fest, welches Window
beteiligt war, um exakt festzustellen, welches Gadget gedrückt wurde.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
TextGadget 0,20,20,0,1,"Click here" ;eine Gadgetliste erstellen
TextGadget 0,20,40,0,2,"Or in here" ;...
TextGadget 0,20,60,0,3,"Quit here" ;...
Window 0,0,0,320,200,0,"Window und Gadgets",0,1,0
Repeat
Repeat
ev.l=WaitEvent ;warte auf ein Event
Until ev=$40 ;aber nur 'Gadget losgelassen'
If GadgetHit=3 Then End ;falls es Gadget Nr. 3 war - ENDE
Forever
siehe auch: WaitEvent, Event
Funktion: MenuHit
Syntax: MenuHit
Modus: Amiga
MenuHit gibt die Identifikationsnummer des Menüs aus, das beim letzten Menüereignis angewählt
war. Wie bei Gadgets können in verschiedenen Windows Menüs mit gleichen Nummern vorhanden sein. Sie benötigen dann
EventWindow, um das Window herauszufinden, das das Ereignis ausgelöst hat.
Wurde kein Menü gewählt gibt MenuHit -1 zurück.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
Window 0,0,0,320,200,0,"Window mit Menüs",0,1
MenuColour 2 ;ändere die Menüfarbstifte
MenuTitle 0,0,"Menüs" ;erzeuge ein einfaches Menü
MenuItem 0,0,0,0,"Item" ;mit nur einem Eintrag
MenuItem 0,0,0,1,"Quit" ;und einem Menüpunkt für Ausgang
SetMenu 0 ;füge es dem Fenster hinzu
While MenuHit<>0
ev.l=WaitEvent
Wend
siehe auch: WaitEvent, Event, ItemHit, SubHit
Funktion: ItemHit
Syntax: ItemHit
Modus: Amiga
ItemHit gibt die Identifikationsnummer des Menüabschnittes (oder Menüteiles) an, das beim letzten
Menüereignis angewählt war.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
Window 0,0,0,320,200,0,"Window mit Menüs",0,1
MenuColour 2 ;Menüfarbstift ändern
MenuTitle 0,0,"Menus" ;Menütitel
MenuItem 0,0,0,0,"First" ;Teil 0...
MenuItem 0,0,0,1,"Second" ;Teil 1...
MenuItem 0,0,0,2,"Third" ;Teil 2...
MenuItem 0,0,0,3,"Quit" ;Teil 3...
SetMenu 0 ;Menüliste dem Window hinzufügen
Repeat
WaitEvent
Until ItemHit=3 ;Aufhören, wenn 'Quit' angewählt wird
siehe auch: WaitEvent, Event, MenuHit, SubHit
Funktion: SubHit
Syntax: SubHit
Modus: Amiga
SubHit gibt die Identifikationsnummer des Untermenüabschnittes an, das beim letzten Menüereignis
angewählt war. Wurde kein Untermenüpunkt angewählt, gibt SubHit -1 zurück.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
Window 0,0,0,320,200,0,"Window mit Menüs",0,1
MenuColour 2 ;Menüfarbstifte setzen
MenuTitle 0,0,"Menüs" ;Menütitel
MenuItem 0,0,0,0,"Mehr "+Chr$(187) ;Eintrag 0
SubItem 0,0,0,0,0,"Quit" ;Unterabschnitt 0
SetMenu 0 ;Menüliste dem Window hinzufügen
Repeat
WaitEvent
Until SubHit=0
siehe auch: WaitEvent, Event, MenuHit, ItemHit
Funktion: MButtons
Syntax: MButtons
Modus: Amiga
Gibt den Code für die Maustaste aus, die ein "Maustastenereignis" auslöste. Bei mit
Menus Off ausgeschalteten Menüs kann auch die rechte Maustaste ein Ereignis auslösen und mit
MButtons abgefragt werden.
Es folgen die Werte, die MButtons zurückgibt:
linke Taste unten = 1
linke Taste oben = 5
rechte Taste unten = 2
rechte Taste oben = 6
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
Window 0,0,0,320,200,$1000,"Rechte Maustaste zum Aufhören",0,1
Repeat
WaitEvent
Until MButtons=6
siehe auch: WaitEvent, Event
Funktion: RawKey
Syntax: RawKey
Modus: Amiga
RawKey gibt den Raw-Code einer gedrückten Taste wieder, die ein "Tastendruck"-Ereignis
auslöste.
Beispiel:
Screen 0,3
Window 0,0,0,320,200,0,"Tippen Sie ein Control-Zeichen zum Beenden",0,1
While (Qualifier AND $8) = 0
ev=WaitEvent
WLocate 0,0
a$=Inkey$
Print Hex$(RawKey)
Wend
siehe auch: WaitEvent, Event, Qualifier, Inkey$
Funktion: Qualifier
Syntax: Qualifier
Modus: Amiga
Qualifier gibt den Code der letzten gedrückten "Qualifier-Taste" bei einem Tastendruckereignis
aus. Qualifier-Tasten sind Tasten, die in Verbindung mit einer weiteren Taste gedrückt werden, z.B: Shift, Alternate.
Hier nun eine Liste der Werte und der entsprechenden Tasten. Wenn mehrere Qualifiertasten gedrückt werden, erhalten Sie einen
Kombinationswert. Um Ihre gewünschte Taste herauszufiltern, benutzen Sie bitte den logischen UND-Parameter.
Taste |
Links |
Rechts |
Kein Qualifier |
$8000 |
$8000 |
Shift |
$8001 |
$8002 |
CAPS LOCK gedrückt |
$8004 |
$8004 |
Control |
$8008 |
$8008 |
Alternate |
$8010 |
$8020 |
Amiga |
$8040 |
$8080 |
Befehl: WPlot
Syntax: WPlot X,Y,Farbe
Modus: Amiga
WPlot zeichnet einen Pixel an den Koordinaten X,Y in der mit
Farbe gewählten Farbe im aktuell benutzten Window.
Beispiel:
Screen 0,3
Window 0,0,0,320,200,0,"",0,1
For t=1 To 40
For g=1 To 40
WPlot t,g,2
Next
Next
MouseWait
Befehl: WBox
Syntax: WBox X1,Y1,X2,Y2,Farbe
Modus: Amiga
WBox zeichnet ein Rechteck in der Farbe Farbe ins aktuell benutzte Window.
Die Parameter X1 und Y1 bestimmen die linke obere Ecke, die
Parameter X2 und Y2 die rechte untere Ecke.
Beispiel:
Screen 0,3
Window 0,0,0,320,200,0,"Boxes",0,1
For t=1 To 1000
WBox Rnd(320),Rnd(200),Rnd(300),Rnd(200),Rnd(8)
Next
MouseWait
Befehl: WCircle
Syntax: WCircle X,Y,Radius,Farbe
Modus: Amiga
WCircle zeichnet einen Kreis ins aktuell benutzte Window. Der Mittelpunkt wird mit den Parametern
X und Y festgelegt, der
Radius-Wert bestimmt die Größe des Kreises. Der letzte Wert
Farbe legt die Zeichenfarbe des Kreises fest.
Beispiel:
Screen 0,3
Window 0,0,0,320,200,0,"Kreise",0,1
For t=1 To 1000
WCircle Rnd(320),Rnd(200),Rnd(300),Rnd(8)
Next
MouseWait
Befehl: WEllipse
Syntax: WEllipse X,Y,X-Radius,Y-Radius,Farbe
Modus: Amiga
WEllipse zeichnet eine Ellipse ins aktuell benutzte Window.
Parameter:
X und Y = Mittelpunktkoordinaten
X-Radius = horizontaler Radius
Y-Radius = vertikaler Radius
Farbe = Zeichenfarbe
Beispiel:
Screen 0,3
Window 0,0,0,320,200,0,"Ellipsen",0,1
For t=1 To 1000
WEllipse Rnd(320),Rnd(200),Rnd(300),Rnd(300),Rnd(8)
Next
MouseWait
Befehl: WLine
Syntax: WLine X1,Y1,X2,Y2[,Xn,Yn...],Farbe
Modus: Amiga
WLine zeichnet eine Linie oder eine Serie von Linien ins gültige Window. Die ersten 2
Koordinatensätze X1,Y1,X2,Y2 bestimmen die Anfangs- und Endpunkte der Linie. Jede weitere
Koordinate legt den Endpunkt einer anderen Linie fest, deren Anfangspunkt der Endpunkt der zuvor gezeichneten Linie ist. Mit
Farbe bestimmen Sie die Farbe, in der die Linie gezeichnet wird.
Beispiel:
Screen 0,3
Window 0,0,0,320,200,0,"Ein Polygon",0,1
Wline 150,10,200,60,150,110,100,60,160,10,3
MouseWait
End
Befehl: WCls
Syntax: WCls [Farbe]
Modus: Amiga
WCls füllt das gültige Window mit der Farbe Farbe oder, wenn
Farbe nicht angegeben wurde, mit Farbe 0. Wurde das Window ohne
gesetztes Gimmezerozero-Flag geöffnet, löscht WCls die Umrandung und den Titelbalken. Der
InnerCls-Befehl verhindert diesen Effekt.
Beispiel:
Screen 0,3
Window 0,0,0,320,200,$400,"Window Cls",0,1
WCls 2
MouseWait
siehe auch: InnerCls
Befehl: InnerCls
Syntax: InnerCls [Farbe]
Modus: Amiga
InnerCls löscht nur den inneren Bereich des gültigen Windows. Die Umrandung und die Titelleiste
werden bei gesetztem Gimmezerozero-Flag nicht gelöscht. Farbe bestimmt die Farbe, mit der das
Window gelöscht wird.
Beispiel:
Screen 0,3
Window 0,0,0,320,200,0,"Kein GIMMEZEROZERO Window",0,1
InnerCls 2
MouseWait
siehe auch: WCls
Befehl: WScroll
Syntax: WScroll X1,Y1,X2,Y2,DeltaX,DeltaY
Modus: Amiga
WScroll ermöglicht das Bewegen oder Scrollen einer rechteckigen Fläche des aktuell benutzten Windows.
X1 und Y1 bestimmen die linke obere Ecke und
X2 und Y2 die rechte, untere Ecke des Rechtecks. Die
Delta-Parameter legen fest, wie weit die Fläche bewegt wird. Positive Werte bewegen die
Fläche nach rechts/unten, negative Werte nach links/oben.
Befehl: Cursor
Syntax: Cursor Aussehen
Modus: Amiga
Cursor bestimmt die Art des Cursors beim Editieren von Strings oder Zahlen mit den
Edit$- oder Edit-Funktionen. Der Parameter
Aussehen gleich 0 erzeugt einen Blockcursor. Bei Werten größer
0 wird ein Unterstrichcursor benutzt.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
Window 0,0,0,320,200,0,"Cursortypen",0,1 ;und ein Window
Print "Dies ist ein Blockcursor." ;zeige einen Block-Cursor
a$=Edit$("Hallo",10)
Cursor 1 ;Cursor in Unterstrich-Cursor umwandeln
Print "Dies ist ein Unterstrich-Cursor"
a$=Edit$("Hallo",10)
End
Funktion: Editat
Syntax: Editat
Modus: Amiga
Nach der Ausführung von Edit$ oder Edit kann
Editat verwendet werden, um die horizontale Position des Cursors beim Verlassen der Funktion festzustellen.
Mit Editat, EditExit, EditFrom und
Edit$ kann ein einfacher Vollscreen-Editor hergestellt werden.
siehe auch: EditFrom, Edit$, Edit
Befehl: EditFrom
Syntax: EditFrom [Zeichenposition]
Modus: Amiga
EditFrom erlaubt eine Kontrolle der Ausführung der Edit- und
Edit$-Funktionen bei Verwendung in Windows. Wird der Parameter
Zeichenposition angegeben, erfolgt das Editieren an dieser Position
(0 ist die erste Zeichenposition). Weiterhin kann, neben "Return", mit nichtprintbaren
Tasten (z.B.:ESC, Crsr auf und ab) oder durch ein Window Event die Editierung beendet werden. Mit EditExit
kann überprüft werden, mit welcher Taste die Editierung beendet wurde. EditFrom ohne Parameterangabe
schaltet Edit$ und Edit zurück auf normal - die Editierung beginnt bei
Position 0 und kann nur mit der Returntaste beendet werden.
Beispiel:
Dim lines$(20) ;20 Zeilen
Screen 0,0,0,320,172,2,0,"Blitz Edit - ESC zum Beenden",1,2
Window 0,0,0,320,172,$1900,"",2,1
y=1 ;Anfangszeile
WLocate 0,12 ;Zeilenzahlen vorbereiten
Format "##"
For k=1 To 20 ;Schleife zum Ausdrucken der
NPrint k,":" ;Zeilennummern
Next
Repeat
Repeat ;zuerst sollten alle Events (Gadgets, Menüs etc.) behandelt werden
ev.l=Event
Select ev ;dort sollte die 'Behandlung' stattfinden
End Select
Until ev=0 ;bis keine Events mehr da sind
WLocate 24,y*8+4 ;jetzt wird die Bearbeitung der 'aktuellen' Zeile vorbereitet
EditFrom x ;beginne bei Zeichenposition 'x'
lines$(y)=Edit$(lines$(y),37)
x=Editat ;Zeichenposition beim EditExit-Zeitpunkt
Select EditExit ;wie wurde beendet
Case 13 ;Zurückkehren?
x=0 ;zurück zum Zeilenanfang
If y<20 Then y+1 ;und vielleicht eine Zeile tiefer
Case 28 ;Cursor-Oben
If y>1 Then y-1 ;Zeile höher
Case 29 ;Cursor-Unten
If y<20 Then y+1 ;vielleicht Zeile tiefer
End Select
Until EditExit=27 ;bis 'Escape' gedrückt wird
siehe auch: EditAt, EditExit, Edit$, Edit
Befehl: EditExit
Syntax: EditExit
Modus: Amiga
EditExit gibt den ASCII-Wert des Zeichens aus, mit dem die
Edit-/Edit$-Funktionen beendet wurden. Sie können die Editunktionen nur
mit einer anderen Taste als "Return" beenden, wenn Sie zuvor EditFrom mit Parameter für den
Editaufruf ausgeführt haben.
Beispiel:
Screen 0,2 ;ein Intuition-Bildschirm
Window 0,0,0,320,200,$1000,"Press ESCAPE to quit",0,1
Repeat
FlushEvents ;um die noch offenen Window-Events zu beseitigen
WLocate 0,0 ;nach links oben
EditFrom Editat ;von der letzten Quit-Position aus editieren
a$=Edit$(a$,38)
Until EditExit=27
siehe auch: EditFrom, EditAt, Edit$, Edit
Befehl: LoadFont
Syntax: LoadFont IntuiFontnummer,Fontname.font$,Y-Größe
Modus: Amiga
Mit LoadFont können Sie einen Zeichensatz aus dem FONTS:-Verzeichnis laden.
Im Gegensatz zu BlitzFonts können Zeichensätze jeder Größe benutzt werden.
siehe auch: WindowFont
Befehl: WindowFont
Syntax: WindowFont IntuiFontnummer
Modus: Amiga
WindowFont setzt den Font für das aktuell benutzte Window. Alle Textausgaben in das Window erfolgen
mit dem gewählten Zeichensatz. Der Font muß zuvor mit LoadFont geladen worden sein.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm mit Windows
Window 0,0,0,320,200,$1000,"Besonderer Font!",0,1
LoadFont 0,"topaz.font",11 ;Topaz 11 laden
WindowFont 0 ;diesen Font als Window-Font wählen
Print "Dies ist in Topaz 11" ;Font anzeigen
MouseWait
End
siehe auch: LoadFont
Befehl: WColour
Syntax: WColour Vordergrundfarbe[,Hintergrundfarbe]
Modus: Amiga
WColour setzt die Zeichenfarbe und die Hinterzeichenfarbe für die Textausgabe im aktuellen Window. Jede
nachfolgende Textausgabe erfolgt mit diesen Farben.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,200,$1000,"Farben",0,1
For T=1 To 7 ;Vordergrund-Farbschleife
For G=1 To 7 ;Hintergrund-Farbschleife
WColour T,G ;Window-Farbe setzen
Print "Wow!" ;etwas schreiben...
Next
NPrint ""
Next
MouseWait
End
siehe auch: WJam
Befehl: WJam
Syntax: WJam Jammodus
Modus: Amiga
WJam ermöglicht eine Beeinflussung der Textdarstellung. Die Modi können mit ODER verknüpft
und so kombiniert werden.
Es folgen die unterschiedlichen Jammodi:
Modus |
Wert |
Erklärung |
JAM1 |
0 |
Zeichnet in der Vordergrundfarbe und läßt den Hintergrund transparent |
JAM2 |
1 |
Zeichnet in der Vordergrund- und Hintergrundfarbe |
Complement |
2 |
Verändert die Bits der Grafik gemäß Exklusiv-ODER (XOR). Zeichnen derselben Grafik an derselben Stelle bringt das Originaldisplay zurück. |
InversVid |
4 |
Erlaubt eine inverse Darstellung der Ausgabe. In Verbindung mit JAM2 wird die Ausgabe wie mit JAM2 erfolgen, allerdings werden Vorder- und Hintergrundfarbe vertauscht. |
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm mit einem Window
Window 0,0,0,320,200,0,"Mal-Modi",0,1
Print "Überlappende Zeichen" ;etwas in verschiedenen Modi schreiben
WJam 0
Print "Hallo"
WLocate 0,0
Print "Bye"
WJam 1
Print "Überschreibende Zeichen"
Print "Hallo"
WLocate 0,16
Print "Bye"
Print "Bye"
Print "Gleiche Grafik-Gleiche Stelle-Weg ist es..."
WJam 2
Print "Hallo"
WLocate 0,32
Print "Hallo"
WJam 4
Print "Dies ist in Inverse Video"
MouseWait
End
siehe auch: WColour
Befehl: Activate
Syntax: Activate Windownummer
Modus: Amiga
Aktiviert das Window Windownummer.
Beispiel:
Screen 0,2
Window 0,0,0,320,100,0,"Window 1",0,1
Window 1,0,100,320,100,0,"Window 2",0,1
Activate 0
Print "Hallo"
Activate 1
Print "Good Bye"
MouseWait
End
Befehl: Menus
Syntax: Menus On/Off
Modus: Amiga
Menus schaltet ALLE Menüs an oder aus. Dies ist sinnvoll, wenn Sie die rechte Maustaste anderweitig
abfragen wollen.
Befehl: WPointer
Syntax: WPointer Shapenummer
Modus: Amiga
WPointer erlaubt das Verändern des Mauszeigers im aktuell benutzten Window.
Shapenummer kennzeichnet ein initialisiertes Shape, das die Darstellung des Zeigers übernimmt. Das
benutzte Shape muß 2 Bitplanes (4 Farben) haben.
Beispiel:
Screen 0,2 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,200,$1000,"New Pointer",0,1
LoadShape 0,"TestPointer" ;lade ein Shape
WPointer 0 ;in den Mauszeiger umwandeln
MouseWait
Befehl: WMove
Syntax: WMove X,Y
Modus: Amiga
WMove bewegt das aktuell benutzte Window an die Screenkoordinaten X,>Y.
Beispiel:
Screen 0,2
Window 0,0,0,100,100,$1000,"Bewegte Fenster!",0,1
For K=1 To 50
WMove k,k
Next
MouseWait
siehe auch: WSize
Befehl: WSize
Syntax: WSize Breite,Höhe
Modus: Amiga
WSize verändert die Breite und Höhe des aktuell benutzten Windows nach den Werten der Parameter.
Beispiel:
Screen 0,2
Window 0,0,0,10,10,$1000,"",0,1
VWait 100
WSize 320,100
Print "Click Mouse to Quit"
MouseWait
siehe auch: WMove
Funktion: WMouseX
Syntax: WMouseX
Modus: Amiga
WMouseX gibt die horizontalen Mauskoordinaten in Pixel relativ zum linken Windowrand an. Bei gesetzten
Gimmezerozeroflag wird vom inneren Rand des Windows ausgegangen, andernfalls vom äußeren Rand der Windowumrandung.
Beispiel:
Screen 0,2
Window 0,0,0,320,200,0,"Window",0,1
While Joyb(0)=0
WLocate 0,0
Print WMouseX," ",WMouseY
Wend
siehe auch: WMouseY
Funktion: WMouseY
Syntax: WMouseY
Modus: Amiga
WMouseY gibt die vertikalen Mauskoordinaten in Pixel relativ zum oberen Windowrand an. Bei gesetzten
Gimmezerozeroflag wird vom inneren Rand des Windows ausgegangen, andernfalls vom äußeren Rand der Windowumrandung.
siehe auch: WMouseX
Funktion: EMouseX
Syntax: EMouseX
Modus: Amiga
EMouseX gibt die horizontale Mausposition an, an der sich der Mauszeiger befand, als ein Ereignis auftrat.
Windowevents können mit WaitEvent und Event festgestellt werden.
Beispiel:
Screen 0,3
ScreensBitMap 0,0
Repeat ;wiederhole
ev.l=WaitEvent ;warte auf ein Window-Event
If MButtons=1 ;falls linker Mausknopf gedrückt ist
x=EMouseX:y=EMouseY ;X- und Y-Koordinaten zum Eventzeitpunkt speichern
Repeat ;wiederhole...
ev2.l=WaitEvent ;warte auf ein Window-Event
If ev2=$10 ;Maus bewegt?
Wline x,y,EMouseX,EMouseY,1 ;eine Zeile höher
x=EMouseX:y=EMouseY ;neue X/Y-Koordinaten
EndIf
Until MButtons=5 ;bis linker Mausknopf oben ist
EndIf
Until ev=$200 ;bis Window geschlossen wurde.
siehe auch: EMouseY, WMouseX, WMouseY, WaitEvent, Event
Funktion: EMouseY
Syntax: EMouseY
Modus: Amiga
EMouseY gibt die vertikale Mausposition an, an der sich der Mauszeiger befand, als ein Ereignis auftrat.
Windowevents können mit WaitEvent und Event festgestellt werden.
siehe auch: EMouseX, WMouseX, WMouseY, WaitEvent, Event
Funktion: WCursX
Syntax: WCursX
Modus: Amiga
Die Funktion gibt die horizontale Textcursorposition im aktuell benutzten Window an. Die Textcursorposition kann mit
WLocate eingestellt werden.
Beispiel:
Screen 0,2
Window 0,0,0,320,200,0,"Window",0,1
For T=1 To 5
Print WCursX;" "
Next
MouseWait
End
siehe auch: WCursY, WLocate
Funktion: WCursY
Syntax: WCursY
Modus: Amiga
Die Funktion gibt die horizontale Textcursorposition im aktuell benutzten Window an. Die Textcursorposition kann mit
WLocate eingestellt werden.
Beispiel:
Screen 0,2
Window 0,0,0,320,200,0,"Window",0,1
For T=1 To 5
NPrint WCursY
Next
MouseWait
End
siehe auch: WCursX, WLocate
Befehl: WLocate
Syntax: WLocate X,Y
Modus: Amiga/Blitz
WLocate setzt den Textcursor an die Stelle X,Y im aktuell benutzten Window.
Ausgangspunkt ist die linke, obere Ecke des aktuellen Windows. Die Einstellung der Parameter erfolgt in Pixel. Textcursorpositionen in
anderen Windows werden hierdurch nicht beeinflußt.
siehe auch: WCursX, WCursY
Funktion: WindowX
Syntax: WindowX
Modus: Amiga
Die Funktion gibt die horizontale Pixelposition der linken, oberen Ecke des aktuellen Windows, relativ zum Screen, auf dem das Window
geöffnet wurde, zurück.
Beispiel:
Screen 0,2
Window 0,10,0,300,200,0,"Window",0,1
Print WindowX
MouseWait
End
siehe auch: WindowY, WindowWidth, WindowHeight
Funktion: WindowY
Syntax: WindowY
Modus: Amiga
Die Funktion gibt die vertikale Pixelposition der linken, oberen Ecke des aktuellen Windows, relativ zum Screen, auf dem das Window
geöffnet wurde, zurück.
Beispiel:
Screen 0,2
Window 0,0,0,320,200,0,"Window",0,1
For T=1 To 5
NPrint WCursY
Next
MouseWait
End
siehe auch: WCursX, WLocate
Funktion: WindowWidth
Syntax: WindowWidth
Modus: Amiga
Die Funktion gibt die Breite (in Pixel) des aktuellen Windows zurück.
Beispiel:
Screen 0,2
Window 0,0,0,320,200,0,"WindowWidth",0,1
Print WindowWidth
MouseWait
End
siehe auch: WindowX, WindowY, WindowHeight
Funktion: WindowHeight
Syntax: WindowHeight
Modus: Amiga
Die Funktion gibt die Höhe (in Pixel) des aktuellen Windows zurück.
siehe auch: WindowX, WindowY, WindowWidth
Funktion: InnerWidth
Syntax: InnerWidth
Modus: Amiga
Die Funktion gibt die Breite der Fläche innerhalb der Umrandung des aktuellen Windows in Pixel zurück.
siehe auch: InnerHeight
Funktion: InnerHeight
Syntax: InnerHeight
Modus: Amiga
Die Funktion gibt die Höhe der Fläche innerhalb der Umrandung des aktuellen Windows in Pixel zurück.
siehe auch: InnerWidth
Funktion: WTopOff
Syntax: WTopOff
Modus: Amiga
Die Funktion gibt die Anzahl Pixel zwischen dem oberen Randbereich und dem Innenbereich des aktuellen Windows zurück.
siehe auch: WLeftOff
Funktion: WLeftOff
Syntax: WLeftOff
Modus: Amiga
Die Funktion gibt die Anzahl Pixel zwischen dem linken Randbereich und dem Innenbereich des aktuellen Windows zurück.
siehe auch: WTopOff
Befehl: SizeLimits
Syntax: SizeLimits min. Breite,min. Höhe,max.Breite,max.Höhe
Modus: Amiga
SizeLimits setzt die Grenzen für die Größe neuer Windows bei Größenveränderung
durch den Anwender mit dem Größengadget. Nach der Ausführung gelten die Grenzen für jedes neue Window.
Beispiel:
Screen 0,2 ;ein Intuition-Bildschirm
SizeLimits 20,20,150,150 ;setze Grenzen für Windows
Window 0,0,0,100,100,15,"SizeLimits",0,1
Print "Click RMB"
Print "to quit"
While Joyb(0)<>2
Wend
Funktion: RastPort
Syntax: RastPortWindownummer
Modus: Amiga
RastPort gibt die Rastportadresse des Windows Windownummer zurück.
Viele Befehle der Graphics-Library (und andere) benötigen diese Adresse.
siehe auch: ViewPort
|