

{                   | | | |\  +---  /\  |    /\  |\  +--- |
                    | | | | | |    |  | |   |  | | \ |    |
                    | | | | | +--  |  | |   +--+ |-< +--  |
                    \ / | | | |    |  | |   |  | | / |    |
                     V  | |/  |___  \/  |__ |  | |/  |___ |__

                        +------------------------------+
                        |       Ein Programm von       |
                        |       Wolfgang Staudt        |
                        |        Am Beckerwald         |
                        |   6683 Spiesen/Elversberg    |
                        | erstellt mit KickPascal V2.0 |
                        |      von MAXON Computer      |
                        |          13.10.1991          |
                        +------------------------------+
_________________________________________________________________________________
}

{
+---------------------------+
|        PROGRAMMKOPF       |
+---------------------------+
}


Program VideolabelV07; ;

Uses Intuition ;
Uses Printer ;

Type BorDat = Array [1..10] Of Integer ;

Var
    Fenster1,Fenster2                                      : ^Window ;
    NeuFenster2                                            : NewWindow ;
    Msg1,Msg2                                              : ^IntuiMessage ;
    Done1,Done2,OK                                         : Boolean ;
    StrGad1,StrGad2,StrGad3,StrGad4,StrGad5                : Gadget ;
    BoolGad1,BoolGad2,BoolGad3,BoolGad4,BoolGad5           : Gadget ;
    BoolGad6,BoolGad7,BoolGad8                             : Gadget ;
    StrInfo1,StrInfo2,StrInfo3,StrInfo4,StrInfo5           : StringInfo ;
    StrBuffer5                                             : String[7] ;
    StrBuffer1,StrBuffer2,StrBuffer3,StrBuffer4            : String[35] ;
    UndoBuffer5                                            : String[7] ;
    UndoBuffer1,UndoBuffer2,UndoBuffer3,UndoBuffer4        : String[35] ;
    Text1,Text2,Text3,Text4,Text5,Text6,Text7              : IntuiText ;
    Text8,Text9,Text10,Text11,Text12,Text13                : IntuiText ;
    Linie1,Linie2,Linie3,Linie4                            : Border ;
    Koord1,Koord2,Koord3,Koord4                            : BorDat ;
    AktGadget                                              : ^Gadget ;
    DrInit,LqAn,PropAn,UnterAn,UnterAus,BreitAn,BreitAus   : String[10] ;
    ZeilA8,PerfSAus                                        : String[10] ;
    Num                                                    : Longint ;

{
+--------------------------+
|        PROZEDUREN        |
+--------------------------+
}

Procedure AktivGad(G : Ptr);

Begin
  Repeat
    Ok := ActivateGadget(G,Fenster1,NIL)
  Until Ok
End ;


Procedure Init ;

 Begin

   StrBuffer1 := "" ; StrBuffer2 := "" ; StrBuffer3 := "" ; StrBuffer4 := "" ;
   StrBuffer5 := "" ;
   UndoBuffer1 := "" ; UndoBuffer2 := "" ; UndoBuffer3 := "" ; UndoBuffer4 := "" ;
   UndoBuffer5 := "" ;



   StrGad1  := Gadget(NIL,260,20,260,12,0,$0001,$0004,^Linie1,NIL,NIL,0,^StrInfo1,1,0) ;
   StrInfo1 := StringInfo(^StrBuffer1,UndoBuffer1,0,35,0,0,0,0,0,0,NIL,0,Nil);
   Text1    := IntuiText(1,3,Jam1,0,0,NIL,"Filmtitel Nr.1             :",NIL) ;
   Koord1   := BorDat(-3,-3,263,-3,263,10,-3,10,-3,-3) ;
   Linie1   := Border(0,0,3,0,Jam1,5,^Koord1,NIL) ;

   StrGad2  := Gadget(NIL,260,40,260,12,0,$0001,$0004,^Linie1,NIL,NIL,0,^StrInfo2,2,0) ;
   StrInfo2 := StringInfo(^StrBuffer2,UndoBuffer2,0,35,0,0,0,0,0,0,NIL,0,Nil);
   Text2    := IntuiText(1,3,Jam1,0,0,NIL,"Zählwerkstand/Filmlänge    :",NIL) ;
   Koord1   := BorDat(-3,-3,263,-3,263,10,-3,10,-3,-3) ;
   Linie1   := Border(0,0,3,0,Jam1,5,^Koord1,NIL) ;

   StrGad3  := Gadget(NIL,260,60,260,12,0,$0001,$0004,^Linie1,NIL,NIL,0,^StrInfo3,3,0) ;
   StrInfo3 := StringInfo(^StrBuffer3,UndoBuffer3,0,35,0,0,0,0,0,0,NIL,0,Nil);
   Text3    := IntuiText(1,3,Jam1,0,0,NIL,"Filmtitel Nr.2             :",NIL) ;
   Koord1   := BorDat(-3,-3,263,-3,263,10,-3,10,-3,-3) ;
   Linie1   := Border(0,0,3,0,Jam1,5,^Koord1,NIL) ;

   StrGad4  := Gadget(NIL,260,80,260,12,0,$0001,$0004,^Linie1,NIL,NIL,0,^StrInfo4,4,0) ;
   StrInfo4 := StringInfo(^StrBuffer4,UndoBuffer4,0,35,0,0,0,0,0,0,NIL,0,Nil);
   Text4    := IntuiText(1,3,Jam1,0,0,NIL,"Zählwerkstand/Filmlänge    :",NIL) ;
   Koord1   := BorDat(-3,-3,263,-3,263,10,-3,10,-3,-3) ;
   Linie1   := Border(0,0,3,0,Jam1,5,^Koord1,NIL) ;

   StrGad5  := Gadget(NIL,470,100,50,12,0,$0801,$0004,^Linie2,NIL,NIL,0,^StrInfo5,5,0) ;
   StrInfo5 := StringInfo(^StrBuffer5,UndoBuffer5,0,7,0,0,0,0,0,0,NIL,Num,Nil);
   Text5    := IntuiText(1,3,Jam1,0,0,NIL,"Kassette Nr.               :",NIL) ;
   Koord2   := BorDat(-3,-3,53,-3,53,10,-3,10,-3,-3) ;
   Linie2   := Border(0,0,3,0,Jam1,5,^Koord2,NIL) ;

   BoolGad1 := Gadget(NIL,20,128,80,12,0,$0001,$0001,^Linie3,NIL,^Text6,0,NIL,6,0) ;
   Text6    := IntuiText(1,3,Jam1,2,2,NIL,"DRUCKEN 1",NIL) ;
   Koord3   := BorDat(-3,-3,83,-3,83,13,-3,13,-3,-3) ;
   Linie3   := Border(0,0,3,0,Jam1,5,^Koord3,NIL) ;

   BoolGad2 := Gadget(NIL,220,128,80,12,0,$0001,$0001,^Linie3,NIL,^Text7,0,NIL,7,0) ;
   Text7    := IntuiText(1,3,Jam1,2,2,NIL,"  ENDE   ",NIL) ;
   Koord3   := BorDat(-3,-3,83,-3,83,13,-3,13,-3,-3) ;
   Linie3   := Border(0,0,3,0,Jam1,5,^Koord3,NIL) ;

   BoolGad5 := Gadget(NIL,120,128,80,12,0,$0001,$0001,^Linie3,NIL,^Text10,0,NIL,10,0) ;
   Text10   := IntuiText(1,3,Jam1,2,2,NIL,"   NEU   ",NIL) ;
   Koord3   := BorDat(-3,-3,83,-3,83,13,-3,13,-3,-3) ;
   Linie3   := Border(0,0,3,0,Jam1,5,^Koord3,NIL) ;

   BoolGad6 := Gadget(NIL,20,153,80,12,$0100,$0001,$0001,^Linie3,NIL,^Text11,0,NIL,11,0) ;
   Text11   := IntuiText(1,3,Jam1,2,2,NIL,"DRUCKEN 2",NIL) ;
   Koord3   := BorDat(-3,-3,83,-3,83,13,-3,13,-3,-3) ;
   Linie3   := Border(0,0,3,0,Jam1,5,^Koord3,NIL) ;

   BoolGad7 := Gadget(NIL,120,153,80,12,$0100,$0001,$0001,^Linie3,NIL,^Text12,0,NIL,10,0) ;
   Text12   := IntuiText(1,3,Jam1,2,2,NIL,"  LADEN  ",NIL) ;
   Koord3   := BorDat(-3,-3,83,-3,83,13,-3,13,-3,-3) ;
   Linie3   := Border(0,0,3,0,Jam1,5,^Koord3,NIL) ;

   BoolGad8 := Gadget(NIL,220,153,80,12,$0100,$0001,$0001,^Linie3,NIL,^Text13,0,NIL,10,0) ;
   Text13   := IntuiText(1,3,Jam1,2,2,NIL,"SPEICHERN",NIL) ;
   Koord3   := BorDat(-3,-3,83,-3,83,13,-3,13,-3,-3) ;
   Linie3   := Border(0,0,3,0,Jam1,5,^Koord3,NIL) ;


   Done1 := False ;
   Fenster1 := Open_Window(50,50,540,175,$0001,GadgetUp,WindowDepth+Activate,
                          "VideoLabelV0.7 von Wolfgang Staudt",NIL,0,0,0,0) ;
   If Fenster1 = NIL Then Error(" Konnte kein Fenster öffnen. ") ;

   PrintIText(Fenster1^.RPort,^Text1,20,22) ;
   PrintIText(Fenster1^.RPort,^Text2,20,42) ;
   PrintItext(Fenster1^.RPort,^Text3,20,62) ;
   PrintIText(Fenster1^.RPort,^Text4,20,82) ;
   PrintIText(Fenster1^.RPort,^Text5,20,102) ;

   AddGadget(Fenster1,^StrGad1,NIL) ;
   AddGadget(Fenster1,^StrGad2,NIL) ;
   AddGadget(Fenster1,^StrGad3,NIL) ;
   AddGadget(Fenster1,^StrGad4,NIL) ;
   AddGadget(Fenster1,^StrGad5,NIL) ;
   AddGadget(Fenster1,^BoolGad1,NIL) ;
   AddGadget(Fenster1,^BoolGad2,NIL) ;
   AddGadget(Fenster1,^BoolGad5,NIL) ;
   AddGadget(Fenster1,^BoolGad6,NIL) ;
   AddGadget(Fenster1,^BoolGad7,NIL) ;
   AddGadget(Fenster1,^BoolGad8,NIL) ;
   RefreshGadgets(Fenster1^.FirstGadget,Fenster1,NIL) ;

 End ;


Procedure Drucken ;

 Begin
   Reply_Msg(Msg2) ;
   CloseWindow(Fenster2) ;
   Done2 := True ;


   DrInit          := Chr(27) + "#1" ;       {Druckerinitialisierung}
   LqAn            := Chr(27) + "[2" + Chr(34) + "z" ; {Letter Quality An}
   PropAn          := Chr(27) + "[2p" ;      {Proportionaldruck An}
   UnterAn         := Chr(27) + "[4m" ;      {Unterstreichen An}
   BreitAn         := Chr(27) + "[6w" ;      {Breitschrift An}
   UnterAus        := Chr(27) + "[24m" ;     {Unterstreichen Aus}
   BreitAus        := Chr(27) + "[5w" ;      {Breitschrift Aus}
   ZeilA8          := Chr(27) + "[0z" ;      {Zeilenabstand 1/8 Zoll}
   PerfSAus        := Chr(27) + "[0q" ;      {Perforationssprung Aus}

   Writeln(Lst,DrInit,LqAn,PropAn,ZeilA8,PerfSAus," ") ;
   Writeln(Lst," ") ;
   Writeln(Lst," ") ;
   Writeln(Lst," ") ;
   Writeln(Lst,UnterAn,BreitAn,"Kass.Nr.: ",StrBuffer5) ;
   Writeln(Lst,UnterAus,BreitAus," ") ;
   Writeln(Lst," ") ;
   Writeln(Lst,StrBuffer1) ;
   Writeln(Lst,StrBuffer2) ;
   Writeln(Lst," ") ;
   Writeln(Lst,StrBuffer3) ;
   Writeln(Lst,StrBuffer4) ;
   Writeln(Lst," ") ;
   Writeln(Lst," ") ;
   Writeln(Lst," ") ;
   Writeln(Lst," ") ;
 End ;

Procedure Abfrage ;

 Begin

   BoolGad3 := Gadget(NIL,20,28,40,12,0,$0001,$0001,^Linie4,NIL,^Text8,0,NIL,8,0) ;
   Text8    := IntuiText(1,3,Jam1,2,2,NIL," JA ",NIL) ;
   Koord4   := BorDat(-3,-3,43,-3,43,13,-3,13,-3,-3) ;
   Linie4   := Border(0,0,3,0,Jam1,5,^Koord4,NIL) ;

   BoolGad4 := Gadget(NIL,140,28,40,12,0,$0001,$0001,^Linie4,NIL,^Text9,0,NIL,9,0) ;
   Text9    := IntuiText(1,3,Jam1,2,2,NIL,"NEIN",NIL) ;
   Koord4   := BorDat(-3,-3,43,-3,43,13,-3,13,-3,-3) ;
   Linie4   := Border(0,0,3,0,Jam1,5,^Koord4,NIL) ;

   Done2 := False ;
   NeuFenster2 := NewWindow(390,175,200,50,00,01,GadgetUP,Activate,NIL,NIL,
                            "      Drucker OK ?",NIL,NIL,0,0,0,0,WBenchScreen) ;
   Fenster2 := OpenWindow(^NeuFenster2) ;
   If Fenster2 = NIL Then Error(" Konnte kein Fenster öffnen. ") ;

   AddGadget(Fenster2,^BoolGad3,NIL) ;
   AddGadget(Fenster2,^BoolGad4,NIL) ;
   RefreshGadgets(Fenster2^.FirstGadget,Fenster2,NIL) ;

   Repeat
      Msg2 := Wait_Port(Fenster2^.UserPort) ;
      Msg2 := Get_Msg(Fenster2^.UserPort) ;
      Case Msg2^.Class Of
         GadgetUp     : Begin
                          AktGadget := Msg2^.IAddress ;
                          Case AktGadget^.GadgetID Of
                            8 : Drucken ;
                            9 : Begin
                                  Done2 := True ;
                                  Reply_Msg(Msg2) ;
                                  CloseWindow(Fenster2) ;
                                End ;
                            Otherwise ;
                          End ;
                        End;
         Otherwise ;
      End ;
   Until done2 ;
 End ;



Procedure Neu ;
  Begin
    StrBuffer1 := "" ; StrBuffer2 := "" ; StrBuffer3 := "" ; StrBuffer4 := "" ;
    StrBuffer5 := "" ;
    UndoBuffer1 := "" ; UndoBuffer2 := "" ; UndoBuffer3 := "" ; UndoBuffer4 := "" ;
    UndoBuffer5 := "" ;
    RefreshGadgets(Fenster1^.FirstGadget,Fenster1,NIL) ;
    AktivGad(^StrGad1) ;
  End;


{
+---------------------------+
|       HAUPTPROGRAMM       |
+---------------------------+
}


Begin
  Init;
  AktivGad(^StrGad1) ;
  Repeat
    Msg1 := Wait_Port(Fenster1^.UserPort) ;
    Msg1 := Get_Msg(Fenster1^.UserPort) ;
    Case Msg1^.Class Of
      GadgetUp     : Begin
                       AktGadget := Msg1^.IAddress ;
                       Case AktGadget^.GadgetID Of
                         1  : AktivGad(^StrGad2) ;
                         2  : AktivGad(^StrGad3) ;
                         3  : AktivGad(^StrGad4) ;
                         4  : AktivGad(^StrGad5) ;
                         6  : Abfrage ;
                         7  : Done1 := True ;
                         10 : Neu ;
                         Otherwise ;
                       End ;
                     End ;
      Otherwise ;
    End ;
    Reply_Msg(Msg1) ;
  Until Done1
End.







