home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / delite / int / api.int next >
Encoding:
Text File  |  1992-04-01  |  21.5 KB  |  534 lines

  1. UNIT API;
  2.  
  3. (*****************************************************************************
  4. Name:              API.PAS
  5. Version:           2.10
  6. Edit Datum:        1.4.1992
  7. Autor:             Andreas Schumm
  8. Kurzbeschreibung:  deLite-API
  9. *****************************************************************************)
  10.  
  11. INTERFACE
  12.  
  13.  USES   RSC, Kernel, CRT, DOS, VMEM;
  14.  
  15.  CONST  MaxClients      =    8;  { Anzahl der Klienten }
  16.  
  17.         API_ID          =    0;  { Timer wird mit API_ID beantragt   }
  18.         API_RPT         =    1;
  19.  
  20.         MenueBarMode    =    1;  { mode eines MenueBarEntry }
  21.         MenueItemMode   =    0;  { mode eines MenueItem     }
  22.         SeparatorMode   =    2;  { mode eines Separators    }
  23.  
  24.         MF_CHECKED      =  128;  { mit Überprüfungsmarke versehen }
  25.         MF_UNCHECKED    =    0;  { ohne ... }
  26.         MF_GRAYED       =   32;  { dashed gezeichnet und nicht aktiv }
  27.         MF_ENABLED      =    0;  { aktiv    }
  28.         MF_DISABLED     =   64;  { inaktiv, aber nicht unbedingt dashed }
  29.         MF_BYPOSITION   =    4;  { Die ID ist als Position zu interpretieren }
  30.         MF_BYCOMMAND    =    0;  { Die ID ist die ID }
  31.         MF_APPEND       =  256;  { Neues Item wird angehängt }
  32.         MF_REPLACE      =  512;  { ersetze altes durch neues Item }
  33.  
  34.         APP_FONT        =    0;  { Mit Vektorfont  }
  35.         APP_NOFONT      =    1;  { kein Vektorfont }
  36.         APP_NOMOVEEVENT =    2;  { Mausbewegungen nicht senden }
  37.         APP_NOFRAME     =    4;  { kein Rahmen um Subapplikationen }
  38.         APP_FRAME       =    0;  { mit Rahmen      }
  39.         APP_NOHELP      =    8;  { kein F1=Hilfe   }
  40.         APP_SCROLLER    =   16;  { Scrollbars für Hauptapplikation }
  41.  
  42.         WND_DEFCOLOR    =    1;  { Default-Farbe }
  43.         WND_SAVE        =    2;  { Hintergrund retten }
  44.         WND_DEFAULT     =    3;  { normal }
  45.  
  46.         evMouseMove =  $01;      { mouse moved }
  47.         evMouseLBDn =  $02;      { left button pressed   }
  48.         evMouseLBUp =  $04;      { left button released  }
  49.         evMouseRBDn =  $08;      { right button pressed  }
  50.         evMouseRBUp =  $10;      { right button released }
  51.         evMouseMBDn =  $20;      { mid button pressed    }
  52.         evMouseMBUp =  $40;      { mid button released   }
  53.  
  54.         evKeyPress  =  $80;      { key pressed }
  55.  
  56.         sfFocused   =  $01;    { Item ist fokussiert }
  57.         sfMarked    =  $02;    { Item ist markiert (Maustaste gedrückt) }
  58.  
  59.         sfNoFocus   =  $04;    { Item kann nicht fokussiert werden      }
  60.         sfDefault   =  $08;    { Item sendet DLG_OK bei Betätigung      }
  61.         sfCancel    =  $10;    { Item sendet DLG_CANCEL bei Betätigung  }
  62.         sfPhoenix   =  $20;    { Phoenix                                }
  63.         sfGroup     =  $40;    { ich bin eine Gruppe                    }
  64.         sfBlind     =  $80;    { mir keine Events zuschicken, bin blind }
  65.         sfChecked   = $100;    { bin gechecked                          }
  66.         sfRepeat    = $200;    { MouseKeyPressed wiederholen            }
  67.         sfDisabled  = $400;    { Item ist vorübergehend passiv          }
  68.         sfIdleAbort = $800;    { wurde von IDLEFUNC abgebrochen         }
  69.         sfGrpFocus  = $1000;   { Gruppe nur einmal fokussieren          }
  70.         sfInvisible = $2000;   { Item ist unsichtbar                    }
  71.  
  72.         TTY_SCROLLER     =  $01;   { TTYScreen mit Scroller           }
  73.         TTY_WORDWRAP     =  $02;   { automatischer Wordwrap           }
  74.  
  75.         DLG_CHECKED      =    1;   { Checkbox-Nachrichten             }
  76.         DLG_UNCHECKED    =    2;
  77.         DLG_BUTTON       =    3;   { Button gedrückt                  }
  78.         DLG_SLIDERMOVED  =    4;   { Slider losgelassen               }
  79.         DLG_SLIDERRLSD   =    5;   { Slider bewegt                    }
  80.         DLG_EDITCHGD     =    6;   { Textfeld verändert               }
  81.         DLG_RADIO        =    7;   { Radio-Button gewechselt          }
  82.         DLG_LISTSELECT   =    8;   { Auswahl aus ListBox getroffen    }
  83.         DLG_BOXSELECT    =    9;   { Auswahl aus SelectBox getroffen  }
  84.         DLG_BOXCHANGE    =   10;   { Selectbox verändert              }
  85.         DLG_FILEREQ      =   11;   { Filerequester hat ausgewählt     }
  86.         DLG_KEYPRESSED   =   12;   { Taste im Editierfeld betätigt    }
  87.         DLG_LISTMOVED    =   13;   { Markierung in ListBox verändert  }
  88.         DLG_COMBOSELECT  =   14;   { Auswahl aus Combobox getroffen   }
  89.         DLG_ELEVATORRLSD =   15;   { Elevator losgelassen             }
  90.         DLG_ELEVATORCHGD =   16;   { Elevator verschoben              }
  91.  
  92.         DLG_SYSMSGS      = 1000;
  93.         DLG_GIVEFOCUS    = 1000;   { DlgItem will Fokus               }
  94.         DLG_GOTFOCUS     = 1001;   { DlgItem ist fokussiert worden    }
  95.         DLG_LOSTFOCUS    = 1002;   { DlgItem hat Fokus verloren       }
  96.         DLG_NONEXCLUSIVE = 1003;   { DlgItem ist nicht mehr exclusiv  }
  97.  
  98.         DLG_DESTROYED    = 1003;   { Dialog ist zerstört worden       }
  99.         DLG_BYE          = 1004;   { Aufforderung zum Schließen       }
  100.  
  101.         LIST_DN          = 30000;  { Listbox-Knöpfe gedrückt          }
  102.         LIST_UP          = 30001;
  103.  
  104.         SELECT_DN        = 30002;  { Selectbox Items  }
  105.         SELECT_UP        = 30003;
  106.         SELECT_EDIT      = 30004;
  107.  
  108.         TTY_SCROLLUP     = 30005;  { TTY-Viewer Items }
  109.         TTY_SCROLLDN     = 30006;
  110.  
  111.         COMBO_EDIT       = 30008;  { ComboBox Items   }
  112.         COMBO_BUTTON     = 30009;
  113.         COMBO_LIST       = 30010;
  114.  
  115.         ELEVATOR_LIST    = 30011;  { Elevator für Listbox   }
  116.         ELEVATOR_TTY     = 30012;  { Elevator für TTYWindow }
  117.         MAIN_VSCROLLER   = 30013;  { vertikaler Elevator    }
  118.         MAIN_HSCROLLER   = 30014;  { horizontaler Elevator  }
  119.  
  120.         DLG_OK           =  998;   { Default-Button oder CR           }
  121.         DLG_CANCEL       =  999;   { Dialog mit ESC abgebrochen       }
  122.  
  123.         MF_CAPTION       =  $01;   { Mit Titelzeile zum Anfassen      }
  124.         MF_NOCAPTION     =  $00;   { ohne Titelzeile                  }
  125.         MF_MOVEABLE      =  $03;   { verschiebbar nur mit CAPTION     }
  126.         MF_CANCELLED     =  $10;   { Dialog wurde gecancelled         }
  127.         MF_POPPEDUP      =  $20;   { Dialog ist bereits gezeichnet    }
  128.         MF_NONMODAL      =  $40;   { nichtmodal, zerstört Screen      }
  129.  
  130.         MemLimit        = 4096;
  131.  
  132.  TYPE   MenueID         = INTEGER;
  133.         MenueFlags      = BYTE;
  134.  
  135.         allocmode       = (remaining, absolut);
  136.  
  137.         MenueItemString = STRING[23];
  138.         MenueBarString  = STRING[19];
  139.  
  140.         MenueItemPtr    = ^ MenueItem;
  141.         MenueBarPtr     = ^ MenueBarEntry;
  142.         hMenu           =   MenueBarPtr;      { Handle auf ein Menue  }
  143.  
  144.         MenueItem       = RECORD
  145.                             mode   : MenueFlags;
  146.                             hotkey : CHAR;
  147.                             ID     : MenueID;
  148.                             name   : MenueItemString;
  149.                             Next   : MenueItemPtr;
  150.                           END;
  151.  
  152.         MenueBarEntry   = RECORD
  153.                             mode   : MenueFlags;
  154.                             hotkey : CHAR;
  155.                             ID     : MenueID;
  156.                             name   : MenueBarString;
  157.                             Next   : MenueBarPtr;
  158.                             Menu   : MenueItemPtr;
  159.                           END;
  160.  
  161.  
  162.         EventReceiveProc = PROCEDURE(MyMessage: EventTyp);
  163.         IdleFuncType     = FUNCTION: BOOLEAN;
  164.  
  165.  { *********************************************************
  166.                    Objekte des Dialogmanagers
  167.    ********************************************************* }
  168.  
  169.  TYPE   DPoint   = object
  170.           X, Y      : Integer;
  171.           procedure   Move(dx,dy: Integer);
  172.         End;
  173.  
  174.         DRect    = object
  175.           P1, P2    : DPoint;
  176.           procedure   Assign(x1,y1,x2,y2: Integer);
  177.           procedure   Move(dx,dy : Integer);
  178.         End;
  179.  
  180.         LabelStr = String[64];
  181.         PGroup   = ^DlgGroup;
  182.         DirType  = (hor, ver);
  183.  
  184.         PDlg     = ^Dialog;
  185.         PDialog  = ^Dialog;
  186.         PDlgItem = ^DlgItem;
  187.  
  188.         DlgItem  = object
  189.           Origin    : DPoint;   { Ursprung }
  190.           Area      : DRect;    { Event-aktive Fläche }
  191.           Status    : Word;
  192.           ID        : Integer;
  193.           Next      : PDlgItem;
  194.           parent    : PDlgItem;  { ggf. die dazugehörige Gruppe }
  195.           master    : PDialog;
  196.           owner     : EventReceiveProc;
  197.           constructor Init(x1,y1, TheID: Integer);
  198.           destructor  Done; virtual;
  199.           function    GetSuccessor: PDlgItem; virtual;
  200.           function    GetNextFocus: PDlgItem; virtual;
  201.           procedure   SetFocus;
  202.           procedure   ClearFocus; virtual;
  203.           procedure   SetMark;
  204.           procedure   ClearMark;
  205.           procedure   EnableItem;
  206.           procedure   DisableItem;
  207.           procedure   ClearPhoenix;
  208.           procedure   SetPhoenix;
  209.           procedure   Check; virtual;
  210.           procedure   Uncheck; virtual;
  211.           procedure   SetRepeat;
  212.           function    IsChecked:boolean;
  213.           procedure   Draw; virtual;
  214.           procedure   HandleEvent(TheEvent: EventTyp); virtual;
  215.           procedure   SendMessage(TheMsg: Integer);
  216.           Function    IsInRect(TheEvent: EventTyp): boolean;
  217.           procedure   MakeDefaultItem;
  218.           procedure   MakeCancelItem;
  219.           procedure   GimmeFocus;
  220.           procedure   ShowItem; virtual; { macht unsichtbares Item sichtbar  }
  221.           procedure   HideItem; virtual; { macht sichtbares Item unsichtbar  }
  222.          private
  223.           OldStatus : word;        { temporärer Status für Hide & Show }
  224.         End;
  225.  
  226.         DlgGroup = Object(DlgItem)
  227.           ItemGroup : PDlgItem;      { Die Kette der Dialogelemente }
  228.           constructor Init(x1,y1,TheID: Integer);
  229.           destructor  Done; virtual;
  230.           procedure   AddItem(TheItem: PDlgItem);
  231.           function    GetSuccessor: PDlgItem; virtual;
  232.           function    GetNextFocus: PDlgItem; virtual;
  233.           procedure   Draw; virtual;
  234.           function    FindGroupItem(TheID: integer):Pointer;
  235.           procedure   GlueGroup;     { Items leimen }
  236.           procedure   ShowItem; virtual;
  237.           procedure   HideItem; virtual;
  238.         End;
  239.  
  240.         CheckBox = object(DlgItem)
  241.           TheLabel  : LabelStr;
  242.           constructor Init(x1,y1, TheID: Integer; TheText: LabelStr);
  243.           procedure   Draw; virtual;
  244.           procedure   HandleEvent(TheEvent: EventTyp); virtual;
  245.           procedure   Check;      virtual;
  246.           procedure   Uncheck;    virtual;
  247.         End;
  248.  
  249.         PCheckbox = ^Checkbox;
  250.  
  251.         UserCheckBox = object(CheckBox)
  252.           constructor Init(x1,y1,dx,dy,xb,yb,TheID: Integer; TheHK: char; TheIcon: Pointer);
  253.           procedure   Draw; virtual;
  254.         private
  255.           dxb, dyb  : Integer;
  256.           hk        : char;
  257.           IconPtr   : Pointer;
  258.         End;
  259.  
  260.         PUserCheckBox = ^UserCheckBox;
  261.  
  262.         Button    = object(DlgItem)
  263.           TheLabel   : LabelStr;
  264.           constructor  Init(x1,y1,dx,dy,TheID: Integer; TheText: LabelStr);
  265.           procedure    Draw; virtual;
  266.           procedure    HandleEvent(TheEvent: EventTyp);virtual;
  267.         end;
  268.  
  269.         PButton  = ^Button;
  270.  
  271.         UserButton = object(DlgItem)
  272.           dxb,dyb    : integer; { Ausdehnung der Ikone }
  273.           hk         : char;    { Der Hotkey           }
  274.           IconPtr    : Pointer;
  275.           constructor  Init(x1,y1,dx,dy,xb,yb, TheID: Integer; TheHK: char; TheIcon: Pointer);
  276.           procedure    Draw; virtual;
  277.           procedure    HandleEvent(TheEvent: EventTyp); virtual;
  278.         end;
  279.  
  280.         PUserButton = ^UserButton;
  281.  
  282.         PLabelFrame = ^LabelFrame;
  283.  
  284.         LabelFrame  = object(DlgItem)
  285.           TheLabel  : LabelStr;
  286.           constructor Init(x1,y1,dx,dy, TheID: integer; TheText: LabelStr);
  287.           procedure   Draw; virtual;
  288.         End;
  289.  
  290.  
  291.         PLabelText  = ^LabelText;
  292.  
  293.         LabelText   = object(DlgItem)
  294.           TheLabel  : LabelStr;
  295.           constructor Init(x1,y1, TheId: Integer; TheText: LabelStr);
  296.           procedure   Draw; virtual;
  297.           procedure   SetLabel(TheText: LabelStr);
  298.         End;
  299.  
  300.         VElevator  = object(DlgItem)
  301.           constructor Init(x,y, height, rows, max, TheID: integer);
  302.           procedure   SetLevel(TheLevel: integer);
  303.           function    GetLevel: integer;
  304.           procedure   SetMax(max : integer);
  305.           procedure   SetWindow(n: integer);
  306.           procedure   Draw; virtual;
  307.           procedure   HandleEvent(TheEvent: EventTyp); virtual;
  308.          private
  309.           level     : longint;    { aktuelle Position          }
  310.           size      : longint;    { Größe in Pixeln            }
  311.           entries   : longint;    { Anzahl Elemente insgesamt  }
  312.           scrlen    : longint;    { Länge des Knopfes          }
  313.           NRows     : longint;    { Anzahl sichtbare Elemente  }
  314.           prevlevel : longint;    { vorherige Position         }
  315.           locked    : integer;    { Zustand während Bewegung   }
  316.           tempix    : integer;    { Pixelposition während Bew. }
  317.         End;
  318.  
  319.         HElevator = object(VELevator)
  320.          constructor Init(x,y, length, cols, max, TheID: integer);
  321.          procedure Draw; virtual;
  322.          procedure   HandleEvent(TheEvent: EventTyp); virtual;
  323.         end;
  324.  
  325.         PVelevator = ^VElevator;
  326.         PHelevator = ^HElevator;
  327.  
  328.        
  329.         ListString = String[63];
  330.  
  331.         PTextListItem = ^TextListItem;
  332.  
  333.         TextListItem  = object       { Das Grundelement der Liste }
  334.           next      : PTextListItem;
  335.           prev      : PTextListItem;
  336.           contents  : ListString;
  337.         end;
  338.  
  339.         GetListProc  = procedure(var item: ListString; var eol: boolean);
  340.  
  341.         ListBox   = object(DlgGroup)
  342.           Itemwidth : Integer;  { sichtbare Breite  }
  343.           Listlength: Integer;  { Anzahl der Zeilen }
  344.           constructor Init(x,y,wid,len,TheID: Integer; GetFirst, GetNext: GetListProc);
  345.           destructor  Done; virtual;
  346.           procedure   Draw; virtual;
  347.           procedure   HandleEvent(TheEvent: EventTyp); virtual;
  348.           procedure   Update;
  349.           function    GetSelected: Liststring;
  350.           function    GetMarked  : ListString;
  351.           procedure   Select(TheString: ListString);
  352.           procedure   HideItem; virtual;
  353.          private
  354.           ListPtr   : Integer;         { markierte Zeile   }
  355.           ItemCount : Integer;         { Anzahl Elemente   }
  356.           CurrCount : Integer;         { aktuelles Element }
  357.           selected  : ListString;
  358.           GetFirstProc : GetListProc;
  359.           GetnextProc  : GetListProc;
  360.           TheElevator  : PVElevator;
  361.           TheList   : PTextListItem;   { Beginn der Liste   }
  362.           Current   : PTextListItem;   { markiertes Element }
  363.           Top       : PTextListItem;   { erstes sichtbares Element }
  364.           procedure   ReadList;        { Liste einlesen     }
  365.           procedure   RemoveList;      { Liste entfernen    }
  366.         End;
  367.  
  368.         PListBox = ^ListBox;
  369.  
  370.         Dialog   = object
  371.           Origin    : DPoint;
  372.           Size      : DPoint;
  373.           Caption   : LabelStr;
  374.           topic     : LabelStr;
  375.           Flags     : Word;
  376.           rdy       : boolean;
  377.           marked    : boolean;
  378.           Focus     : PDlgItem;
  379.           FirstItem : PDlgItem;
  380.           Exclusive : PDlgItem;
  381.           Port      : ViewPortType;
  382.           DlgOwner  : EventReceiveProc;
  383.           BackGnd   : Byte;
  384.           constructor Init(dx,dy : Integer; Flag: Word; TheProc: EventReceiveProc);
  385.           destructor  Done;
  386.           procedure   Move(x,y : Integer);     { Ursprung ändern      }
  387.           procedure   SetCaption(Capt: LabelStr);
  388.           procedure   SetTopic(top: LabelStr);
  389.           procedure   Show;
  390.           procedure   AddItem(TheItem: PDlgItem);
  391.           procedure   DestroyDialog;
  392.           procedure   DoDialog;
  393.           procedure   HandleEvent(MyEvent: EventTyp);
  394.           function    FindDlgItem(ID: integer):Pointer;
  395.           function    WasNotCancelled: boolean;
  396.           procedure   SetTheFocus(ID: integer);
  397.           procedure   GetEvent(Var MyEvent: EventTyp);
  398.           procedure   SetIdleFunc(Idle: IdleFuncType);
  399.           procedure   ReceiveExclusive(TheClient: integer);
  400.           procedure   ContinueToDispatch;
  401.           procedure   SetDlgColor(color: byte);
  402.          private
  403.           IdleFunc  : IdleFuncType;
  404.           OldMode   : byte;
  405.           PrevRoot  : PDlgItem;                 { altes FirstItem       }
  406.           PrevNext  : PDlgItem;                 { altes Exclusive^.next }
  407.           OldPort   : ViewPortType;
  408.         End;
  409.  
  410.         YesNoDialog = RECORD
  411.                        TEXT   : String;
  412.                        xorg   : INTEGER;       { Abs. linke obere Eckt }
  413.                        yorg   : INTEGER;
  414.                        topic  : namestring;    { Topic für Online-Hilfe }
  415.                       END;
  416.  
  417.  
  418.         Procedure DefEventProc(TheEvent: EventTyp);
  419.  
  420.         FUNCTION  DoYesNoDialog(rsc: YesNoDialog):BOOLEAN;
  421.         PROCEDURE ErrWindow(x,y: INTEGER; errtext: STRING);
  422.         FUNCTION  YNDialog(YesText: ListString;
  423.                            NoText : ListString;
  424.                            LabelT : ListString):boolean;
  425.  
  426.        function LBReleased(Event: EventTyp):boolean;
  427.        function LBPressed(Event: EventTyp):boolean;
  428.  
  429.  
  430.  { *********************************************************
  431.            allgemeine API-Funktionen, Menüsteuerung
  432.   ********************************************************* }
  433.  
  434.  
  435.  
  436.  FUNCTION  GetMenu:HMenu;                             { liefert Menüzeiger }
  437.  
  438.  PROCEDURE CheckMenuItem(Menu: hmenu;                 { setzt Häkchen      }
  439.                          ID: MenueID;
  440.                          wCheck : MenueFlags);
  441.  
  442.  PROCEDURE EnableMenuItem(Menu: hmenu;                { aktiviert Menü     }
  443.                           ID: MenueID;
  444.                           WEnable: MenueFlags);
  445.  
  446.  FUNCTION GetMenuFlags(Menu: hMenu;                   { liefert Modus      }
  447.                        ID  : MenueID):MenueFlags;
  448.  
  449.  PROCEDURE GetMenuString(Menu: hmenu;                 { liefert Eintrag    }
  450.                          ID: MenueID;
  451.                          VAR StrPtr: STRING);
  452.  
  453.  FUNCTION  GetSubMenu(Menu: hmenu;                    { ID des menüs       }
  454.                       nPos: MenueID):MenueID;
  455.  
  456.  PROCEDURE ChangeMenu(Menu     : hmenu;               { Menü verändern     }
  457.                       ID       : MenueID;
  458.                       ItemID   : MenueID;
  459.                       NewItem  : STRING;
  460.                       IDNewItem: MenueID;
  461.                       wChanged : MenueFlags);
  462.  
  463.  PROCEDURE ReplaceMenuItem(Menu     :hMenu;           { Eintrag ersetzen   }
  464.                            ID       :MenueID;
  465.                            NewItem  : STRING;
  466.                            IDNewItem:MenueID;
  467.                            NewHotKey:CHAR);
  468.  
  469.  { *********************************************************
  470.                  low-level Fensterverwaltung
  471.    ********************************************************* }
  472.  
  473.  PROCEDURE OpenWindow(x1,y1,x2,y2 : INTEGER);         { Fensterprozeduren  }
  474.  PROCEDURE CloseWindow;
  475.  PROCEDURE ClearWindow;
  476.  PROCEDURE WriteWin(Str: STRING; x,y: INTEGER; Color : BYTE);
  477.  
  478.  PROCEDURE SysWindow(x,y: INTEGER; errtext: STRING);  { Spezialfenster     }
  479.  
  480.  PROCEDURE DebugWindow(x,y: INTEGER; errtext: STRING);
  481.  
  482.  PROCEDURE OnLineHelp(topic: STRING);                 { interaktive Hilfe  }
  483.  
  484.  FUNCTION  InitHelp(FileName: NameString) : BOOLEAN;
  485.  FUNCTION  GetFirstHelp(Topic: STRING):BOOLEAN;
  486.  PROCEDURE GetNextHelp(VAR HelpText: HelpString; VAR eol: BOOLEAN);
  487.  
  488.  { *********************************************************
  489.                Klienten- und Applikationsverwaltung
  490.    ********************************************************* }
  491.  
  492.  
  493.  FUNCTION OpenMainApplication(EventHandler: EventReceiveProc;
  494.                               modus       : INTEGER;
  495.                               Name        : NameString):INTEGER;
  496.  
  497.  PROCEDURE CloseMainApplication;
  498.  
  499.  FUNCTION  GetMainID: INTEGER;    { liefert ID der Hauptapplikation }
  500.  PROCEDURE NormalizeEvent(ID: INTEGER; VAR TheEvent: EventTyp);
  501.  PROCEDURE ForceNormalizeEvent(ID: INTEGER; VAR TheEvent: EventTyp);
  502.  PROCEDURE DispatchMessage(TheMessage: EventTyp);
  503.  PROCEDURE PostMessage(TheMessage: EventTyp; TheID: INTEGER);
  504.  PROCEDURE GetTheViewPort(ID: INTEGER; VAR ViewPort: ViewPortType);
  505.  PROCEDURE SetTheViewPort(ID: INTEGER);
  506.  FUNCTION  OpenSubApplication( EventHandler: EventReceiveProc;
  507.                                Filter      : INTEGER;
  508.                                Name        : NameString;
  509.                                x1,y1,x2,y2 : INTEGER):INTEGER;
  510.  PROCEDURE CloseSubApplication(ID: INTEGER);
  511.  PROCEDURE FrameSubApplication(ID, color: INTEGER);
  512.  PROCEDURE SuspendApplication(ID: INTEGER);
  513.  PROCEDURE ActivateApplication(ID: INTEGER);
  514.  
  515.  PROCEDURE ContinueToDispatch;
  516.  PROCEDURE ReceiveExclusive(Receiver: INTEGER);
  517.  
  518.  PROCEDURE OutTextMenu(x,y : INTEGER; InString : STRING; Color : BYTE);
  519.  
  520.  PROCEDURE TheHelp;
  521.  
  522.  PROCEDURE NewOpenWindow(x1,y1,x2,y2: INTEGER;
  523.                         wFlags: word; col: byte);
  524.  
  525.  VAR  VScroller    : PVElevator;
  526.       HScroller    : PHElevator;   { Scroller der Hauptapplikation }
  527.       VScrollBar,
  528.       HScrollBar   : PDialog;
  529.       Scr1ID, Scr2ID  : INTEGER;            { die IDs der Scroller  }
  530.  
  531. IMPLEMENTATION
  532.  
  533. END.
  534.