'************************************************************************** ' ' Eine sehr kleine Fenster/Window-Routine fr PowerBASIC 3.0 ' ' entwickelt von Th.Gohel FidoNet : 2:2410/330.1 ' InterNet: support@pbsound.snafu.de ' Homepage: http://www.snafu.de/~pbsound/ ' '************************************************************************** PUBLIC Bildsound%,Bildindex%, Bild$() DIM Bild$(50) Bildsound% = 1: Bildindex% = 0 CLS SCREEN 0 COLOR 15, 0 FOR i% = 1 TO 25 PRINT STRING$(80,176); LOCATE i%, 25 : PRINT " -= This is a window demonstration! =-"; NEXT i% DELAY 0.5 Fenstermenue 14,11,3,3,20,50, 1 DELAY 0.5 Fenstermenue 15,11,6,12,10,70, 0 DELAY 0.5 Fenstermenue 15,12,8,30,13,60, 1 DELAY 0.5 BildLoad DELAY 0.5 BildLoad DELAY 0.5 Bildload DELAY 0.5 COLOR 7, 0 CLS SUB FensterMenue(VColor%, HColor%, Zol%, Sol%, Zur%, Sur%, Menuart%) public COLOR VColor%, HColor% BildSave LOCATE Zol%, Sol%, 0 PRINT "[]" + STRING$(Sur%-Sol%-5, "") + "" FOR i% = Zol%+1 TO Zur%-1 COLOR VColor%, HColor% LOCATE i%, Sol% PRINT "" + STRING$(Sur%-Sol%-1, " "); IF Menuart% = 1 AND Zol% + 1 = I% THEN COLOR 15, 0 PRINT CHR$(24); END IF IF Menuart% = 1 AND Zur% - 1 = I% THEN COLOR 15, 0 PRINT CHR$(25); END IF IF Menuart% = 1 AND Zol% + 1<> I% AND Zur% -1 <> i% THEN PRINT ""; END IF IF Menuart% <> 1 THEN PRINT ""; END IF COLOR 7, 0 LOCATE i%, Sur%+1 PRINT MID$(Bild$(Bildindex%-1), (160 * (i% - 1)) + ((Sur%*2)+1), 1); MID$(Bild$(Bildindex%-1), (160 * (i% - 1)) + ((Sur%*2)+3), 1); NEXT i% COLOR VColor%, HColor% LOCATE i%, Sol% PRINT "" + STRING$(Sur%-Sol%-1, "") + ""; COLOR 7, 0 LOCATE i%,Sur%+1 PRINT MID$(Bild$(Bildindex%-1), (160 * (i% - 1)) + ((Sur%*2)+1), 1); MID$(Bild$(Bildindex%-1), (160 * (i% - 1)) + ((Sur%*2)+3), 1); LOCATE i% + 1, Sol%+2 FOR i% = (Sol%*2) TO (Sur%*2) STEP 2 PRINT MID$(Bild$(Bildindex%-1), (Zur%*160) + i% + 3, 1); NEXT i% COLOR VColor%, HColor% END SUB SUB BildLoad public IF BildSound% = 1 THEN FOR s% = 480 TO 500 STEP 5 SOUND s%, s% / 8000 NEXT s% END IF Bildindex% = Bildindex%-1 ! mov ax, pbvScrnBuff[02] ! mov pbvDefSeg, ax POKE$ &h0, Bild$(Bildindex%) DEF SEG END SUB SUB BildSave public IF BildSound% = 1 THEN FOR s% = 480 TO 500 STEP 5 SOUND s%, s% / 8000 NEXT s% END IF ! mov ax, pbvScrnBuff[02] ! mov pbvDefSeg, ax Bild$(Bildindex%) = PEEK$(&H0, 25*160) DEF SEG Bildindex%=Bildindex%+1 END SUB