home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / LFC-SW2.LHA / StormWizard / Example-Source / Pascal-Source / Test.p < prev    next >
Encoding:
Text File  |  1996-06-08  |  2.8 KB  |  109 lines

  1. { Testprogramm für die Anbindung von "StormWizard" an "MaxonPascal" /
  2.   "KickPascal" (geschrieben unter KP2.12 (mit OS3-Includes))
  3.  
  4.   $VER:              1.2 (02.06.96)
  5.  
  6.   Autor:             Falk Zühlsdorff (ai036@rz.tu-ilmenau.de)
  7.                      P.U.R.I.T.Y.-Pascal-FD, Amiga Zentrum Thüringen e.V.
  8. }
  9.  
  10. Program WizardTest;
  11. USES Exec,Intuition;
  12. {$incl 'dos.lib','workbench/startup.h','icon.lib','wb.lib','wizard.lib'};
  13.  
  14. VAR MySurface      : Ptr;
  15.     WBScreen       : p_Screen;
  16.     MyWinHandle    : p_WizardWindowHandle;
  17.     Tags           : array[0..2] of tagitem;
  18.  
  19.     MyNewWindow    : p_NewWindow;
  20.     MyWindow       : p_Window;
  21.     MyGadgets      : array[0..2] of p_gadget;
  22.  
  23.     Msg            : p_IntuiMessage;
  24.     ex             : boolean;
  25.     WBMsg          : p_WBStartup;
  26.     hlp            : integer;
  27.     StartPath      : String[108];
  28.  
  29. PROCEDURE CleanUp;
  30. BEGIN
  31.  IF MyWindow<>NIL      THEN WZ_CloseWindow(MyWinHandle);
  32.  IF MyWinHandle<>NIL   THEN WZ_FreeWindowHandle(MyWinHandle);
  33.  IF MySurface<>NIL     THEN WZ_CloseSurface(MySurface);
  34.  IF WBScreen<>NIL      THEN UnlockPubScreen(NIL,WBScreen);
  35.  IF WizardBase<>NIL    THEN CloseLibrary(WizardBase);
  36.  IF IntuitionBase<>NIL THEN CloseLibrary(IntuitionBase);
  37. END;
  38.  
  39. BEGIN
  40.  IF NOT FROMWB THEN exit;
  41.  
  42.  {-- Folgende Routine dient dazu den Startpfad des Testprogrammes zu
  43.      sichern. "Test.wizard" muß sich im Verzeichnis des Testprogrammes
  44.      befinden --}
  45.  
  46.  StartPath:='';
  47.  WBMsg:=StartupMessage;
  48.  
  49.  IF WBMsg^.sm_NumArgs>=1
  50.   THEN
  51.    BEGIN
  52.     hlp:=NameFromLock(WBMsg^.sm_ArgList^[1].wa_lock,^StartPath,107);
  53.     IF (StartPath[Length(StartPath)])<>':'
  54.      THEN StartPath:=StartPath+'/'+"Test.wizard"
  55.      ELSE StartPath:=StartPath+"Test.wizard";
  56.    END
  57.   ELSE exit;
  58.  
  59.  {--- Die eigentliche Einbindung von StormWizard-Dateien... -----------------}
  60.  
  61.  MySurface:=NIL;MyWinHandle:=NIL;MyNewWindow:=NIL;MyWindow:=NIL;WBScreen:=NIL;
  62.  
  63.  WizardBase:=OpenLibrary('wizard.library',0);
  64.  IF WizardBase = NIL THEN exit;
  65.  WBScreen:=LockPubScreen('Workbench');
  66.  IF WBScreen<>NIL
  67.   THEN
  68.    BEGIN
  69.      MySurface:=WZ_OpenSurfaceA(StartPath,NIL,NIL);
  70.      IF MySurface=NIL THEN BEGIN CleanUp;exit;END;
  71.  
  72.      MyWinHandle:=WZ_AllocWindowHandleA(WBScreen,0,MySurface,NIL);
  73.      IF MySurface=NIL THEN BEGIN CleanUp;exit;exit;END;
  74.  
  75.      Tags[0]:=TagItem(WWH_GadgetArray,Long(^MyGadgets));
  76.      Tags[1].ti_tag:=tag_done;
  77.  
  78.      MyNewWindow:=WZ_CreateWindowObjA(MyWinHandle,1,^Tags);
  79.      IF MyNewWindow=NIL THEN BEGIN CleanUp;exit;END;
  80.  
  81.      MyWindow:=WZ_OpenWindowA(MyWinHandle,MyNewWindow,NIL);
  82.      IF MyWindow=NIL THEN BEGIN CleanUp;exit;END;
  83.  
  84.      ex:=false;
  85.      REPEAT
  86.       Msg:=Wait_Port(MyWindow^.UserPort);
  87.       Msg:=Get_Msg(MyWindow^.Userport);
  88.       IF Msg<>NIL
  89.          THEN
  90.           BEGIN
  91.            Reply_Msg(Msg);
  92.            IF  Msg^.Class=IDCMP_CLOSEWINDOW THEN ex:=true;
  93.           END;
  94.  
  95.      UNTIL ex;
  96.    END;
  97.  
  98.  CleanUp;
  99. END.
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.