Program IntMsgDemo2; { zweite Version }

{$path 'pascal:include/'; incl 'intuition.lib' }

Var
 Win: ^Window;
 Msg: ^IntuiMessage;
 Ende: Boolean;

Procedure Star(x, y: integer);
  Var IText: IntuiText;
  Begin
    IText:=IntuiText(3, 0, 0, -4, -4, Nil, '*', Nil);
    PrintIText(Win^.RPort, ^Itext, x, y)
  End;

Begin
  Win:=Open_Window(20,10, 200,80, 1, _CLOSEWINDOW or MOUSEBUTTONS,
             ACTIVATE or WINDOWCLOSE or WINDOWDEPTH or WINDOWDRAG,
             'Schließ mich! Version 2.0', Nil, 100, 20, 640, 256);
  Ende:= false;
  OpenLib(IntBase, 'intuition.library', 0);   { ist nötig, weil die
                      Intuition-Funktion "PrintIText" benutzt wird. }
  Repeat
    { auf Nachricht warten: }
    Msg:= Wait_Port(Win^.UserPort);
    Msg:= Get_Msg(Win^.UserPort);

    Case Msg^.Class Of
     _CLOSEWINDOW: Ende:=true;
     MOUSEBUTTONS: Star(Msg^.MouseX, Msg^.MouseY)
    Otherwise
      { unbekannte Message empfangen }
    End;

    Reply_Msg(Msg);   { Nachricht als ausgewertet kennzeichnen }

  Until Ende;
  Close_Window(Win);
  CloseLib(IntBase);  { eigentlich überflüssig }
End.
