|
|
| 04.12.2025 | Archiv # Recherche # Links # Kontakt # Gästebuch # Impressum |
|
Index Login Die Anzeige des Archivs erfolgt grafisch. Ändern |
Kurs: Programmieren (Teil 3)In den folgenden Kursabschnitten werden wir ein Programm schreiben. Am Ende soll eine einfache Datei entstehen, die es ermöglicht, CD's oder Schallplatten etc. zu verwalten. Dabei steht jedoch weniger das eigentliche Projekt im Vordergrund als vielmehr das Handhaben von GEOS-Routinen und -Eigenarten. Bevor man mit einem Projekt beginnt, sollte man sich überlegen, über welche Fähigkeiten das Programm verfügen sollte. Daraus ergeben sich dann fast zwangsläufig die Menüs, die das Programm besitzen sollte. An Hauptprogramme (Applikationen) sollte im allgemeinen immer die Forderung gestellt werden, daß sich das Menü links oben am Bildschirmrand befindet. Ferner sollte der erste Menüpunkt immer "geos" lauten; von dem daraufhin erscheinenden Untermenü sollten sich Hilfsprogramme (DeskAccessories) starten lassen. Ab dem dritten Hauptmenüpunkt beginnen die programmspezifischen Aktionspunkte (bei GEOWRITE z. B. "Edit", "Optionen" usw.). Als nächstes sollte man sich schon zu Beginn eines Projektes im wesentlichen darüber klar sein, welche Fähigkeiten das Programm am Ende besitzen sollte. Für eine einfache CD-Verwaltung wären folgende Funktionen wichtig: 1. Sortieren nach Interpret Mit Ausnahme der Sortierung sollten die anderen Funktionen in einem Obermenüpunkt "Bearbeiten" zusammengefaßt werden. Die Sortierung sollte automatisch erfolgen! Im nebenstehenden Listing haben wir dieses Funktionen als Menüpunkte eingebaut. Zum besseren Verständnis des später gesagten sollten Sie das Programm mit dem Namen "Quell3.obj" mehrfach aufrufen und die einzelnen Menüpunkte anwählen. Die Menüpunkte sind zwar (noch) ohne spezielle Funktion, jedoch haben wir hier die verschiedenen GEOS-Menüroutinen eingebaut. Folgendes sollten Sie feststellen:
Im folgenden finden Sie nun das komplette Listing. Das GeoWrite Dokument dazu und die bereits fertig assemblierte Datei sind auf der GeoThek Diskette zur GUP 17 enthalten.
H. J. Ciprina/ R. Bonse
; Quell3.obj
;
; Menütechniken
; Autor: H.J. Ciprina
; erstellt am: 02.07.1991
if .p
t "TopSym"
t "TopMac"
endif
n "Quell3.obj"
:Start
LoadB
dispBufferOn,ST_WR_FORE!ST_WR_BACK
lda #$00
jsr SetPattern
jsr i_Rectangle
b 0
b 199
w 0
w 319
LoadWr0,MenüTab
lda #0
jsr DoMenu
;Lab01
LoadWr0,IconTab
jsr DoIcons
;Lab02
rts
:IconTab
b 1
w $0000
b 0
w $0000
b 0
b 0
b 1
b 1
w $0000
:HMLinks = 0
:HMRechts = HMLinks+108
:HMOben = 0
:HMUnten = HMOben+14
:MenüTab
b HMOben
b HMUnten
w HMLinks
w HMRechts
b 3!HORIZONTAL
w geosText
b SUB_MENU
w geosSub
w DateiText
b DYN_SUB_MENU
w DateiDyn
w BearbText
b SUB_MENU
w BearbSub
:geosText
b "geos",0
:DateiText
b "Datei",0
:BearbText
b "Bearbeiten",0
:gMLinks = 0
:gMRechts = gMLinks+40
:gMOben = 15
:gMUnten = gMOben+15
:geosSub
b gMOben
b gMUnten
w gMLinks
w gMRechts
b 1!VERTICAL
w InfoText
b MENU_ACTION
w DoInfo
:InfoText
b "Info",0
:DoInfo
jsr GotoFirstMenu
rts
:DateiDyn
LoadW r3,10 ;links
LoadW r4,309 ;rechts
LoadB r2L,100 ;oben
loadB r2H,180 ;unten
jsr InvertRectangle
LoadWr0,DateiTab
rts
:DMPKT = 3
:DMLinks = 28
:DMRechts = DMLinks+80
:DMOben = 15
:DMUnten = DMOben+DMPKT*14+1
:DM_OFFSET= 60
:DateiTab
b DMOben
b DMUnten
w DMLinks
w DMRechts
b DMPKT!VERTICAL
w SchließenText
b MENU_ACTION
w DoClose
w DruckenText
b MENU_ACTION
w DoPrint
w EndeText
b MENU_ACTION
w DoQuit
:SchließenText
b "schließen"
b GOTOX
w DMLinks+DM_OFFSET
b SHORTCUT,BOLDON
b "s",PLAINTEXT,0
:DruckenText
b "drucken"
b GOTOX
w DMLinks+DM_OFFSET
b SHORTCUT,BOLDON
b "d",PLAINTEXT,0
:EndeText
b "Ende",0
:DoClose
:DoPrint
jsr GotoFirstMenu
rts
:DoQuit
jsr GotoFirstMenu
jmp EnterDeskTop
:BMPKT = 5
:BMLinks = 56
:BMRechts = BMLinks+86
:BMOben = 15
:BMUnten = BMOben+BMPKT*14+1
:BM_OFFSET= 64
:BearbSub
b BMOben
b BMUnten
w BMLinks
w BMRechts
b BMPKT!VERTICAL!CONSTRAINED
w EinfügenText
b MENU_ACTION
w DoInsert
w ÄndernText
b MENU_ACTION
w DoChange
w LöschenText
b MENU_ACTION
w DoDelete
w SuchenText
b SUB_MENU
w SearchSub
w WeiterText
b MENU_ACTION
w DoNext
:EinfügenText
b " " ;2*Space
b GOTOX
w BMLinks+12
b "einfügen"
b GOTOX
w BMLinks+BM_OFFSET
b SHORTCUT,BOLDON
b "e",PLAINTEXT,0
:ÄndernText
b "ändern"
b GOTOX
w BMLinks+BM_OFFSET
b SHORTCUT,BOLDON
b "ä",PLAINTEXT,0
:LöschenText
b "löschen"
b GOTOX
w BMLinks+BM_OFFSET
b SHORTCUT,BOLDON
b "x",PLAINTEXT,0
:SuchenText
b "suchen",0
:WeiterText
b "weitersuchen"
b GOTOX
w BMLinks+BM_OFFSET
b SHORTCUT,BOLDON
b "w",PLAINTEXT,0
:DoInsert
bit InsertFlag
bmi :10
lda #"*"
sta EinfügenText
LoadB InsertFlag,$ff
bne :20
::10 lda #" "
sta EinfügenText
LoadB InsertFlag,$00
::20 jsr ReDoMenu
rts
:InsertFlag
b 0
:DoChange
:DoDelete
:DoNext
jsr GotoFirstMenu
rts
:SMPKT = 3
:SMLinks = BMRechts+1
:SMOben = 15+3*14+1
:SMUnten = SMOben+SMPKT*14+1
:SM_OFFSET = 60
:SearchSub
b SMOben
b SMUnten
w SMLinks
w SMRechts
b SMPKT!VERTICAL
w InterpretText
b MENU_ACTION
w DoInterpret
w CDTitelText
b MENU_ACTION
w DoCDTitel
w TitelText
b MENU_ACTION
w DoTitel
:InterpretText
b "Interpret"
b GOTOX
w SMLinks+SM_OFFSET
b SHORTCUT,BOLDON
b "i",PLAINTEXT,0
:CDTiteltext
b "CD-Titel"
b GOTOX
w SMLinks+SM_OFFSET
b SHORTCUT,BOLDON
b "c",PLAINTEXT,0
:TitelText
b "Titel"
b GOTOX
w SMLinks+SM_OFFSET
b SHORTCUT,BOLDON
b "t",PLAINTEXT,0
:DoInterpret
jsr GotoFirstMenu
rts
:DoCDTitel
jsr DoPreviousMenu
rts
:DoTitel
jsr ReDoMenu
rts
;Ende.
;Dia Besprechung Folgt in der nächsten
;Ausgabe der GUP.
Kurzlink hierhin: http://geos-printarchiv.de/1190 |
|
Letzte Änderung am 01.11.2019 |
|