home *** CD-ROM | disk | FTP | other *** search
/ Best of German Only 1 / romside_best_of_german_only_1.iso / wissen / dos / wgraph / entpack.exe / WGDEMO!.EXE / WGDEMO.PAS < prev    next >
Pascal/Delphi Source File  |  1992-12-26  |  17KB  |  553 lines

  1. {$F+}
  2. (************************************************************
  3. *                                                           *
  4. *  DEMONSTRATIONSPROGRAMM für die Klassenbibliothek WGRAPH  *
  5. *                                                           *
  6. *        Folgende Units liegen als Quelltexte in der        *
  7. *        selbstextrahierenden Datei WGDEMOQT.EXE            *
  8. *                           bei                             *
  9. *                                                           *
  10. *   GCLOCK/GINFO/GQUELL/GMINIDB/GDIAG/GPAINT/GFILEDLG       *
  11. *                                                           *
  12. ************************************************************)
  13.  
  14. program WGDEMO;
  15.  
  16. uses Overlay,
  17.      GDecl,
  18.      GEvent,
  19.      GViews,
  20.      GDlg,
  21.      GApp,
  22.      GPCX,
  23.      GClock,
  24.      GInfo,
  25.      GQuell,
  26.      GMiniDB,
  27.      GDiag,
  28.      GPaint,
  29.      GFileDlg,
  30.      Graph;
  31.  
  32. {$O GPCX}
  33. {$O GClock}
  34. {$O GInfo}
  35. {$O GQuell}
  36. {$O GMiniDB}
  37. {$O GDiag}
  38. {$O GPaint}
  39. {$O GFileDlg}
  40.  
  41. const cmOwn    = 101;
  42.       cmList   = 102;
  43.       cmMemory = 103;
  44.       cmUhr    = 104;
  45.  
  46.       cmDPrinter = 201;
  47.       cmVektor   = 202;
  48.       cmListBox  = 203;
  49.       cmTools    = 204;
  50.       cmMaus     = 205;
  51.       cmJoyStick = 206;
  52.  
  53.       cmErfassen = 301;
  54.       cmAnzeigen = 302;
  55.  
  56.       cmDia1     = 401;
  57.       cmFarn     = 402;
  58.       cmPaint    = 403;
  59.  
  60.       cmNoFunction = 99;
  61.  
  62.       msgSetClock = 1;  {Digitaluhr neu setzen}
  63.  
  64. type TApplication=object(TApp)
  65.        procedure SetDesktopFrame(Titel:string); virtual;
  66.        procedure SetDesktopBackground; virtual;
  67.        procedure InitMenuBar; virtual;
  68.        procedure HandleEvent; virtual;
  69.        procedure SetDialogData; virtual;
  70.        procedure SpeicherStatus;
  71.        procedure DigitalUhr;
  72.        procedure Lister(Nummer:byte);
  73.        procedure DruckerDialog;
  74.        procedure VektorZeichensaetze;
  75.        procedure AdressDB(DInput:boolean);
  76.        procedure KuchenDiagramm;
  77.        procedure FarnBlatt;
  78.        procedure Paint;
  79.        procedure InputDialog(FType:str12);
  80.        procedure BildSpeichern;
  81.        procedure ToolBar;
  82.        procedure MausDemo;
  83.        procedure JoystickDemo;
  84.      end;
  85.  
  86.      PNewDTBgrd=^TNewDTBgrd;
  87.      TNewDTBgrd=object(TDsktpBgrd)
  88.        BgImage:TPCXImage;
  89.        procedure Draw;virtual;
  90.      end;
  91.  
  92.      tPDlgData=record
  93.                  Schalter:string[19];   {DruckerDialog}
  94.                end;
  95.  
  96.  
  97. var MyProg:TApplication;
  98.     PrintDialogData:tPDlgData;
  99.  
  100. {Implementation TApplication}
  101.  
  102. procedure TApplication.SetDesktopFrame(Titel:string);
  103. var R:TRect;
  104. begin
  105.   with Desktop^ do
  106.    begin
  107.      GetBounds(R);
  108.      Frame:=new(PFrame, Init(R,R,Titel,winDouble+winPanel+winMenu));
  109.      Frame^.Palette:=Palette1;
  110.      List^.InsertItem(Frame);
  111.    end;
  112. end;
  113.  
  114. procedure TApplication.SetDesktopBackground;
  115. var R:TRect;
  116.     NBgrd:PNewDTBgrd;
  117. begin
  118.   with Desktop^ do
  119.    begin
  120.      R:=Frame^.Area;
  121.      NBgrd:=new(PNewDTBgrd, Init(R));
  122.      NBgrd^.Palette[7]:=#14;
  123.      NBgrd^.Palette[8]:=#11;
  124.      List^.InsertItem(NBgrd);
  125.    end;
  126. end;
  127.  
  128. procedure TApplication.InitMenuBar;
  129. begin
  130.   Palette[1]:=#14;
  131.   Palette[5]:=#14;
  132.   Palette[4]:=#4;
  133.   Palette[12]:=#4;
  134.   MainMenu('~F~enster',0);
  135.    SubMenu('~I~n eigener Sache ...',cmOwn,0,0,false,false);
  136.    SubMenu('~Q~uelltext-Lister',cmList,0,0,false,false);
  137.    SubMenu('~S~peicher-Ressourcen',cmMemory,0,0,false,false);
  138.    SubMenu('~D~igitaluhr',cmUhr,0,0,false,false);
  139.    NewLine;
  140.    SubMenu('E~x~it  Alt-X',cmCloseApplication,0,altX,false,false);
  141.   MainMenu('~D~ialogfenster',0);
  142.    SubMenu('~D~ruckerdialog',cmDPrinter,0,0,false,false);
  143.    SubMenu('~V~ektorzeichensätze',cmVektor,0,0,false,false);
  144.    SubMenu('~L~istbox',cmListBox,0,0,false,false);
  145.    SubMenu('~T~oolbar',cmTools,0,0,false,false);
  146.    NewLine;
  147.    SubMenu('~M~ausdemo',cmMaus,0,0,false,false);
  148.    SubMenu('~J~oystickdemo',cmJoyStick,0,0,false,false);
  149.   MainMenu('~A~dressen',0);
  150.    SubMenu('~E~rfassen  F2',cmErfassen,0,kbF2,false,false);
  151.    SubMenu('~A~nzeigen  F3',cmAnzeigen,0,kbF3,false,false);
  152.   MainMenu('~G~rafik',0);
  153.    SubMenu('~K~uchendiagramm',cmDia1,0,0,false,false);
  154.    SubMenu('~F~arnblatt',cmFarn,0,0,false,false);
  155.    SubMenu('~M~alen',cmPaint,0,0,false,false);
  156. end;
  157.  
  158. procedure TApplication.HandleEvent;
  159. begin
  160.   Heap^.ShowHeapStatus(523,8,White);
  161.   TProgram.HandleEvent;
  162.   case Event.Command of
  163.    cmOwn        : Lister(1);
  164.    cmList       : Lister(2);
  165.    cmMemory     : SpeicherStatus;
  166.    cmUhr        : DigitalUhr;
  167.    cmDPrinter   : DruckerDialog;
  168.    cmVektor     : VektorZeichensaetze;
  169.    cmTools      : ToolBar;
  170.    cmListBox    : InputDialog('*.*');
  171.    cmMaus       : MausDemo;
  172.    cmJoyStick   : JoystickDemo;
  173.    cmErfassen   : AdressDB(true);
  174.    cmAnzeigen   : AdressDB(false);
  175.    cmDia1       : Kuchendiagramm;
  176.    cmFarn       : FarnBlatt;
  177.    cmPaint      : Paint;
  178.    cmPLoad      : InputDialog('*.pcx');
  179.    cmPSave      : BildSpeichern;
  180.    cmNoFunction : MessageBox(1,'Bsp.: Messagebox','Keine Funktion#implementiert');
  181.   end; {case}
  182. end;
  183.  
  184. procedure TApplication.SetDialogData;
  185. begin
  186.   with PrintDialogData do Schalter:='TTGRrrrrGrRrCGcccS';
  187.   with Adresse do
  188.    begin
  189.      Schalter:='TTTTLLLLS';
  190.      FillChar(Firma,SizeOf(Firma),' ');
  191.      FillChar(Ort,SizeOf(Ort),' ');
  192.      FillChar(Strasse,SizeOf(Strasse),' ');
  193.      FillChar(Telefon,SizeOf(Telefon),' ');
  194.    end;
  195.   with DlgData do
  196.    begin
  197.      Schalter:='LBTTS';
  198.      FillChar(DateiName,SizeOf(DateiName),' ');
  199.      DateiName[0]:=#32;
  200.      FillChar(Datei,SizeOf(Datei),' ');
  201.      Datei[0]:=#12;
  202.    end;
  203.   with ImgData do
  204.    begin
  205.      Schalter:='LTTS';
  206.      FillChar(DateiName,SizeOf(DateiName),' ');
  207.      DateiName[0]:=#32;
  208.    end;
  209.   with MausData do Schalter:='TGRrrrrrrrrrTTTTTTT';
  210. end;
  211.  
  212. procedure TApplication.SpeicherStatus;
  213. var R:TRect;
  214.     Window:PMemoryInfo;
  215. begin
  216.   R.Assign(60,80,450,320);
  217.   Window:=new(PMemoryInfo, Init(R,'Speicher-Ressourcen',winDouble+winPanel+winMenu));
  218.   Window^.SetWindowAttrib(false);
  219.   InsertDesktop(Window);
  220. end;
  221.  
  222. procedure TApplication.DigitalUhr;
  223. var R:TRect;
  224.     Window:PDigitalUhr;
  225. begin
  226.   R.Assign(360,80,550,185);
  227.   Window:=new(PDigitalUhr, Init(R,'Uhr',winDouble+winPanel+winMenu));
  228.   Window^.SetWindowAttrib(false);
  229.   InsertDesktop(Window);
  230. end;
  231.  
  232. procedure TApplication.Lister(Nummer:byte);
  233. var R:TRect;
  234.     Window:PScrollWindow;
  235.     x,y:integer;
  236. begin
  237.   R.Assign(60,80,440,280);
  238.   Window:=new(PScrollWindow, Init(R,Nummer,'ScrollWindow / Lister für TextDateien',winDouble+winPanel+winMenu+winKey));
  239.   Window^.SetWindowAttrib(false);
  240.   InsertDesktop(Window);
  241. end;
  242.  
  243.  
  244. procedure TApplication.DruckerDialog;
  245. var R:TRect;
  246.     Window:PDlgWindow;
  247. begin
  248.   R.Assign(60,80,440,390);
  249.   Window:=new(PDlgWindow, Init(R,'Beispiel für einen Drucker-Dialog',winDouble+winPanel));
  250.   with Window^ do
  251.    begin
  252.      SetPushButton(190,270,80,22,'OK',cmCloseWindow);
  253.      SetPushButton(285,270,80,22,'Abbrechen',cmCloseWindow);
  254.      SetGroupFrame(20,40,180,140,'Druckertyp',NormWidth);
  255.       SetRadioButton(40,70,'~M~atrixdrucker',1);
  256.       SetRadioButton(40,90,'~L~aserdrucker',1);
  257.       SetRadioButton(40,110,'~T~ypenraddrucker',1);
  258.       SetRadioButton(40,130,'~B~ubble-Jet',1);
  259.       SetRadioButton(40,150,'T~h~ermodrucker',1);
  260.      SetGroupFrame(220,40,135,90,'Auflösung',NormWidth);
  261.       SetRadioButton(240,70,'~3~00 dpi',2);
  262.       SetRadioButton(240,90,'~1~60 dpi',2);
  263.       SetRadioButton(240,110,' ~7~5 dpi',2);
  264.      SetCheckButton(225,165,'~E~inzelblatt');
  265.      SetGroupFrame(20,200,155,88,'',ThickWidth);
  266.       SetCheckButton(40,225,'~F~ett');
  267.       SetCheckButton(40,245,'~K~ursiv');
  268.       SetCheckButton(40,265,'~U~nterstrichen');
  269.      SetStaticText(195,210,'Drucker-Dialog',LeftText);
  270.       SetTextParameters(TSCRFont,HorizDir,1);
  271.       ChangePalColor(10,Red);
  272.      SetData(PrintDialogData);
  273.    end;
  274.   InsertDesktop(Window);
  275. end;
  276.  
  277. procedure TApplication.VektorZeichensaetze;
  278. var R:TRect;
  279.     Window:PDlgWindow;
  280. begin
  281.   R.Assign(60,80,440,360);
  282.   Window:=new(PDlgWindow, Init(R,'Unterstützte Vektor-Zeichensätze',winDou