;Maus-Demo by Marcus Roming. Siehe readme.txt.
.MODEL TINY
.CODE
.486
INCLUDE Window.inc
ButtonPos EQU (16*160)+(11*2) ;2582 ;Def.:2582 [(Line*160)+(Col*2)]
Button2Pos EQU (16*160)+(55*2)
InBoxPos EQU (10*160)+(30*2)
ORG 100h
Start:
jmp weiter
Text DB "Beenden mit OK...$"
Text2 DB "OK$"
Text3 DB "Pingen!$"
InText DB "Input:$"
Puffer STRUC ;Stuktur definieren
Max DB 20 ;Maximale Anzahl Zeichen
Anz DB ? ;Fkt gibt hier die Anz. der eingegebenen Zeichen rein Txt DB 53 DUP ($) ;Hier der eigentliche Text
Puffer ENDS
BufStrc Puffer <> ;Speicherplatz fuer Puffer!
Weiter:
InitGraph
DrawBackground
DrawMainWindow
PrintText 3,2,Text
SetCursor 0,0
StartMouse
Nichts: DrawButtonShdw 3,10,ButtonPos,Text2,14 ;Breite,Höhe,Position,Text,TextXPos.
;DrawButtonShdw 4,11,Button2Pos ;Ohne Text
DrawButtonShdw 3,11,Button2Pos,Text3,56
MouseLoop: mov ax,03h
int 33h
cmp bx,00h ;wenn nicht gedrückt: 0!
je LoeschenLoop ;Buttonpos: X: 11,
cmp cx,10*8 ;X Mausclick auf Button? (11-1) |
jl LoeschenLoop ;Nein! |
cmp dx,15*8 ;Y (16-1) |
jl LoeschenLoop ;Nein! | Button Ok
cmp cx,((10+10)*8)-1 ;X ((11-1 + 10)*8)-1 |
jg LoeschenLoop ;Nein! |
cmp dx,17*8 ;Y (16-1 + 3)*8 |
jg LoeschenLoop ;Nein! |
jmp OkPressed
LoeschenLoop: mov ax,03h ;Nächsten Knopf Testen!
int 33h
cmp bx,00h ;wenn nicht gedrückt: 0!
je MouseLoop ;Buttonpos: X: 11,
cmp cx,54*8 ;X Mausclick auf Button? (11-1) |
jl MouseLoop ;Nein! |
cmp dx,15*8 ;Y (16-1) |
jl MouseLoop ;Nein! | Button Pingen
cmp cx,((54+11)*8)-1 ;X ((11-1 + 10)*8)-1 |
jg MouseLoop ;Nein! |
cmp dx,17*8 ;Y (16-1 + 3)*8 |
jg MouseLoop ;Nein! |
;Ja: Taste wird gedrückt --> Effekt
;DrawButtonPress 4,11,Window2Pos
DelPressed: DrawButtonPress 3,11,Button2Pos,Text3,56
DelLoop: mov ax,03h
int 33h
cmp bx,00h
jne DelLoop ;Warten bis taste losgelassen wird...
mov ax,03h ;Ist Maus noch über dem Button ?
int 33h
cmp cx,54*8 ;X |
jl Nichts ;Nein! |
cmp dx,15*8 ;Y |
jl Nichts ;Nein! | Button Pingen
cmp cx,((54+11)*8)-1 ;X |
jg Nichts ;Nein! |
cmp dx,17*8 ;Y |
jg Nichts ;Nein! |
mov ax,0E07h ;Funktion 0E Zeichen "bel" | CODE
int 10h ;Einmal piepen bitte... | CODE
InputBox BufStrc,InBoxPos,30,InText,31 ;EXPERIMENTAL
SetCursor 3,3
mov bx,OFFSET BufStrc
add bx,02h
add bl,BufStrc.Anz ;Ans Ende des Textes!
mov byte ptr cs:[bx],"$" ;$ fuer Fkt. 09h anhaengen
lea dx,BufStrc.Txt ;dx auf den Text
mov ah,09h
int 21h ;Text ausgeben
;;TEXT AUSGEBEN!!
jmp Weiter2
OkPressed: DrawButtonPress 3,10,ButtonPos,Text2,14
Weiter2:
;Ende: Effekt
MouseLoop2: mov ax,03h
int 33h
cmp bx,00h
jne MouseLoop2 ;Warten bis taste losgelassen wird...
mov ax,03h ;Ist Maus noch über dem Button ?
int 33h
cmp cx,10*8 ;X |
jl Nichts ;Nein! |
cmp dx,15*8 ;Y |
jl Nichts ;Nein! | Button Ok
cmp cx,((10+10)*8)-1 ;X |
jg Nichts ;Nein! |
cmp dx,17*8 ;Y |
jg Nichts ;Nein! |
;Ja!
StopMouse
ExitAll
END Start
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|