{ Kleine Demonstration zum ASL-Screenrequester ab OS 2.1 } { © 1994 by Björn "BOMBER" Schotte } { Erstellt mit MaxonPascal 3 (© by MAXON) } { BS/25/07/94 } PROGRAM ASLScreenDemo; USES Intuition; {$incl "dos.lib","asl.lib","libraries/asl.h"} VAR t : ARRAY[1..11] OF TagItem; sm : p_ScreenModeRequester; dummy : BOOLEAN; c : CHAR; sp : p_Screen; BEGIN OpenLib(ASLBase, "asl.library", 38); { ASL-Library öffnen } OpenLib(DOSBase, "dos.library", 37); { 38 oder 37 } t[1].ti_Tag := ASLSM_TitleText; { Titel des SMReqs festlegen } t[1].ti_Data := "SMRequest-DEMO"; t[2].ti_Tag := TAG_DONE; { ScreenModeRequester anfordern: } sm := AllocASLRequest(ASL_ScreenModeRequester,^t); IF sm <> NIL THEN BEGIN { ScreenModeRequester anzeigen } dummy := ASLRequest(sm,NIL); IF dummy THEN BEGIN { Kleine Info über den Screen } Writeln("AUSGEWÄHLTER SCREEN"); Writeln; Writeln("Breite : ",sm^.sm_DisplayWidth); Writeln("Höhe : ",sm^.sm_DisplayHeight); Writeln("Tiefe : ",sm^.sm_DisplayDepth); Write("Autoscroll : "); IF sm^.sm_AutoScroll THEN Writeln("JA") ELSE Writeln("NEIN"); Writeln; { Wollen wir den Bildschirm mal anzeigen ?? } Write("Screen öffnen (j/n) ??"); Readln(c); IF UpCase(c) = "J" THEN BEGIN { ScreenTags ausfüllen: } t[1] := TagItem(SA_DisplayID,sm^.sm_DisplayID); t[2] := TagItem(SA_Width, sm^.sm_DisplayWidth); t[3] := TagItem(SA_Height, sm^.sm_DisplayHeight); t[4] := TagItem(SA_AutoScroll, LONG(sm^.sm_AutoScroll)); t[5].ti_Tag := SA_Title; t[5].ti_Data := "ASLScreenModeRequest-DEMO"; t[6].ti_Tag := TAG_DONE; { Screen öffnen: } sp := OpenScreenTagList(NIL, ^t); IF sp <> NIL THEN BEGIN Delay(5*50); { 5 Sekunden warten } dummy := CloseScreen(sp); { Screen schliessen } END ELSE Writeln("Kann den Bildschirm nicht öffnen !!"); END; END ELSE BEGIN { Entweder abgebrochen oder Fehler !! } IF IOErr = 0 THEN Writeln("Abgebrochen !!") ELSE Writeln("Fehler aufgetreten !! (Nr. ",IOErr,")"); END; { Struktur wieder freigeben } FreeASLRequest(sm); END; CloseLib(DOSBase); { asl.library wieder schliessen } CloseLib(ASLBase); END.