|
|
|
20.04.2024 | Archiv # Recherche # Links # Kontakt # Gästebuch # Impressum | |
Index Login Die Anzeige des Archivs erfolgt grafisch. Ändern |
GeoBasic Workshop - Teil 2: Programmieren mit GeoBasicIn dieser Ausgabe beginnen wir mit unserem GeoBasic-Programm, das zur Erstellung von Stundenplänen vorgesehen ist. Ich werde in diesem Teil zeigen, wie der Bildschirm aufgebaut wird und auf die Struktur von Menü- und Iconroutinen eingehen. Im nächsten und letzten Teil geht es dann um den Einbau einer Mausabfrage und die Verwaltung von Hilfsmitteln. Zunächst setzen wir in unserem Programm das Hintergrundmuster: 210 @Beginn 220 PATTERN 2 230 RECT 0,0,319,199 Nun brauchen wir zwei Unterroutinen; eine initialisiert die Darstellungsfläche, die andere zeichnet den Stundenplan: 1070 @Hintergrund 1080 PATTERN 0 1090 RECT 3,50,316,190 1100 SETCOL 255 1110 FRECT 3,50,316,190 1120 RETURN 1130 1140 @ZeichnePlan 1150 SETCOL 1 1160 LINE 5,84 TO 314,84 1170 FORy=85 TO 185 STEP 15 1180 LINE 5,y T0 3l4,y 1190 NEXT 1200 LINE 22,71 TO 22,175 1210 FOR x=23 TO 316 STEP 49 1220 LINE x,71 TO x,175 1230 NEXT 1240 PRINT CHR$(26)CHR$(24); 1250 SETPOS 33,81:PRINT"Mo" 1260 SETPOS 83,81:PRINT"Di" 1270 SETPOS 132,81:PRINT"Mi" 1280 SETPOS 181,81:PRINT"Do" 1290 SETPOS 230,81:PRINT"Fr" 1300 SETPOS 279,81:PRINT"Sa" 1310 SETPOS 6,97:PRINT"1." 1320 SETPOS 6,112:PRINT"2." 1330 SETPOS 6,127:PRINT"3." 1340 SETPOS 6,142:PRINT"4." 1350 SETPOS 6,157:PRINT"5." 1360 SETPOS 6,172:PRINT"6." 1370 PRINT CHR$(27); 1380 RETURN Ich denke, eine genauere Erläuterung erübrigt sich, die vielen Koordinatenangaben verwirren vielleicht zunächst, aber experimentieren bringt im Zweifelsfall sicher Klarheit. Beide Routinen werden nun vom Initialisierungsteil aufgerufen: 330 GOSUB @Hintergrund 340 GOSUB @ZeichnePlan Vielleicht werdet Ihr euch jetzt fragen, wieso die beiden Routinen Unterroutinen sind, eine Antwort wird sich später zeigen. Als nächsten brauchen wir noch ein Menü: Danach muß im Bitmapeditor ein Bild (nicht "Disk loadable") mit dem Namen "bild" erstellt werden, daß später als Icon zum Zurückkehren zum DeskTop/TopDesk genutzt wird. Ich empfehle, mittels Icon-Editor das Icon des DeskTop (TopDesk) als FotoScrap zu speichern und im Bitmapeditor einzulesen. Nun geht es in den Piktogrammlisteneditor: Dort erstellt Ihr eine Iconliste "Pikto" mit einem Icon und den Koordinaten 280/10, der Bitmapname lautet "bild", das Ansprunglabel ist @Ende. Menü und Icons sind nun im Init-Teil aufzurufen: 240 MENÜ "Menue" 250 ICON "Pikto" Es folgen nun die Reaktionsroutinen auf die Menüpunkte und das Icon: 430 @Info 440 DIALOG "INFO" 450 RETURN Beim Menüpunkt Neustart (Label @Neu) ist auch wieder eine Dialogbox nötig. Erstellt eine Box mit dem Namen "Ende?" und dem Text "Ein Neustart löscht alle Daten. Wirklich ausführen?" (oder ähnlich) sowie je einem JA und NEIN-Icon. Der Wert des angeklickten Icons soll in die Variable "auswahl" übergeben und dann ausgewertet werden: 600 @Neu 610 DIALOG "Ende?",auswahl 620 IF auswahl=3 THEN GOTO @Beginn 630 IF auswahl=4 THEN RETURN Bei Klick auf JA wird eine 3 übergeben, sonst eine 4 (siehe Handbuch). 650 @Ende 660 END Bleibt nur noch der Druck. Es bietet sich an, eine Bildschirmhardcopy zu machen. Dazu muß allerdings erst das Menü und der Hintergrund (Füllmuster 2) verdeckt werden, damit ein weißer Bildschirm vorhanden ist: 470 @Druck 480 PATTERN 0 490 RECT 0,0,319,50 500 RECT 0,50,3,199 510 RECT 316,50,319,199 520 RECT 0,190,319,199 Anschließend zeichnen wir noch einen Rahmen um den Stundenplan und lassen drucken: 530 SETCOL 255 540 FRECT 0,50,319,199 550 PRSCREEN 0 Um den Bildschirm wiederherzustellen, benutzen wir eine Unterroutine (warum, dazu mehr im dritten Teil), die eine Umkehrung des Verdeckens ist und rufen Menü und Icon wieder auf: 1520 @NeuZeichnen 1530 PATTERN 2 1540 RECT 0,0,319,50 1550 RECT 0,50,3,199 1560 RECT 316,50,319,199 1570 RECT 0,190,319,199 1580 MENU "Menue" 1590 ICON "Pikto" 1600 RETURN Das ganze wird aufgerufen durch: 560 GOSUB @NeuZeichnen Schließlich folgt noch der Abschluß der Druckroutine: 570 FRECT 3,50,316,190 580 RETURN Wenn jetzt die Mainloop aktiviert wird, ist der erste Programmteil abgeschlossen: 360 @Hauptschleife 390 MAINLOOP Bis zum letzten Teil in der nächsten GUP noch zwei kleine Aufgaben für besonders Experimentierfreudige:
Für den folgenden, letzten Teil braucht Ihr dann aber eine unveränderte Version.
Olaf Dzwiza
Kurzlink hierhin: http://geos-printarchiv.de/1579 |
|
Letzte Änderung am 01.11.2019 |