home *** CD-ROM | disk | FTP | other *** search
/ TopWare 18: Liquid / Image.iso / liquid / top1143 / gepackt.exe / BSPQTSW.EXE / DEMO.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-07-09  |  18.1 KB  |  659 lines

  1. (***************************************
  2. * WG-VISION 1.0      DEMONSTRATION     *
  3. ****************************************
  4. *                                      *
  5. * Demonstrationsprogramm WG-VISION 1.0 *
  6. *                                      *
  7. *--------------------------------------*
  8. * Achtung: Nur VGA !                   *
  9. ****************************************
  10. * (c) 1993 Dipl.Phys. Mathias Scholz   *
  11. ***************************************)
  12.  
  13. {$I COMPILER.INC}
  14.  
  15. program Demo;
  16.  
  17. uses Overlay,
  18.      WApp,
  19.      WDecl,
  20.      WViews,
  21.      WDlg,
  22.      WDriver,
  23.      WUtils,
  24.      WFileDlg,
  25.      WEvent,
  26.      WUhr,
  27.      WIcnEdit,
  28.      WPCX,
  29.      WCalc,
  30.      DemoGr,
  31.      DemoLst,
  32.      DemPaint,
  33.      Arty,
  34.      graph,
  35.      dos,
  36.      crt;
  37.  
  38. {$O WCalc}
  39. {$O WIcnEdit}
  40. {$O DemoGr}
  41. {$O DemoLst}
  42. {$O DemPaint}
  43. {$O Arty}
  44.  
  45. const cmOwn         = 101;
  46.       cmOpen        = 102;
  47.       cmAlpha       = 103;
  48.       cmMemory      = 104;
  49.       cmSetDate     = 105;
  50.       cmIcon        = 201;
  51.       cmCalculator  = 202;
  52.       cmUhr         = 203;
  53.       cmMaus        = 301;
  54.       cmPaint       = 302;
  55.       cmKuchen      = 401;
  56.       cmFarn        = 402;
  57.  
  58. type TApplication=object(TApp)
  59.       ZeroTime,StopTime:LongInt;
  60.       Wait:word;
  61.       constructor Init(Titel:string);
  62.       procedure SetDesktopFrame(Titel:string); virtual;
  63.       procedure SetDesktopBackground; virtual;
  64.       procedure InitMenuBar; virtual;
  65.       procedure HandleEvent; virtual;
  66.       procedure IconBar;
  67.       procedure StatusBar; virtual;
  68.       procedure ShowTitel;
  69.       procedure Lister;
  70.       procedure ShowText;
  71.       procedure GetMemoryStatus;
  72.       procedure SetDate;
  73.       procedure DigitalUhr;
  74.       procedure Taschenrechner;
  75.       procedure MausDemo;
  76.       procedure Malprogramm;
  77.       procedure IconEdit;
  78.       procedure Diagramm;
  79.       procedure Farnblatt;
  80.       procedure Eingabe;
  81.      private
  82.       SetTitel:boolean;
  83.      end;
  84.  
  85.      PNewDTBgrd=^TNewDTBgrd;
  86.      TNewDTBgrd=object(TDsktpBgrd)
  87.        BgImage:TPCXImage;
  88.        procedure Draw;virtual;
  89.      end;
  90.  
  91.      PTitelWindow=^TTitelWindow;
  92.      TTitelWindow=object(TWindow)
  93.       constructor Init;
  94.       procedure InitBackground; virtual;
  95.      end;
  96.  
  97.      PTitelBgrd=^TTitelBgrd;
  98.      TTitelBgrd=object(TBackground)
  99.       procedure Draw; virtual;
  100.      end;
  101.  
  102.      PIconBar=^TIconBar;
  103.      TIconBar=object(TDlgWindow)
  104.       constructor Init;
  105.       procedure InitBackground; virtual;
  106.      end;
  107.  
  108.      PIconBarBgrd=^TIconBarBgrd;
  109.      TIconBarBgrd=object(TBackground)
  110.       procedure Draw; virtual;
  111.      end;
  112.  
  113.  
  114. var MyApp:TApplication;
  115.  
  116.  
  117. {Implementation TApplication}
  118.  
  119. constructor TApplication.Init(Titel:string);
  120. begin
  121.   TApp.Init(Titel);
  122.   WorkArea.A.y:=WorkArea.A.y+26;
  123.   WorkArea.B.y:=WorkArea.B.y-23;
  124.   IconBar;
  125.   ZeroTime:=0; Wait:=25;
  126.   SetTitel:=true;
  127. end;
  128.  
  129. procedure TApplication.SetDesktopFrame(Titel:string);
  130. var R:TRect;
  131. begin
  132.   with Desktop^ do
  133.    begin
  134.      GetBounds(R);
  135.      Frame:=new(PFrame, Init(R,R,Titel,winDouble+winPanel+winMenu));
  136.      Frame^.Palette:=Palette1;
  137.      List^.InsertItem(Frame);
  138.    end;
  139. end;
  140.  
  141. procedure TApplication.SetDesktopBackground;
  142. var R:TRect;
  143.     NBgrd:PNewDTBgrd;
  144. begin
  145.   with Desktop^ do
  146.    begin
  147.      R:=Frame^.Area;
  148.      NBgrd:=new(PNewDTBgrd, Init(R));
  149.      NBgrd^.Palette[7]:=#14;
  150.      NBgrd^.Palette[8]:=#11;
  151.      List^.InsertItem(NBgrd);
  152.    end;
  153. end;
  154.  
  155. procedure TApplication.InitMenuBar;
  156. begin
  157.   MainMenu('~D~atei',0);
  158.    SubMenu('~I~n eigener Sache',cmOwn,0,0,false,false);
  159.    SubMenu('~Q~uelltext laden',cmOpen,0,0,false,false);
  160.    SubMenu('~A~lphamodus',cmAlpha,0,0,false,false);
  161.    SubMenu('~S~peicherstatus',cmMemory,0,0,false,false);
  162.    SubMenu('~D~atum und Uhrzeit',cmSetDate,0,0,false,false);
  163.    NewLine;
  164.    SubMenu('E~x~it  Alt-X',cmCloseApplication,0,altX,false,false);
  165.   MainMenu('~A~nwendungen',0);
  166.    SubMenu('~I~coneditor 16x16',cmIcon,0,0,false,false);
  167.    SubMenu('~T~aschenrechner',cmCalculator,0,0,false,false);
  168.    SubMenu('~D~igitaluhr',cmUhr,0,0,false,false);
  169.   MainMenu('~D~emos',0);
  170.    SubMenu('~M~ausdemo',cmMaus,0,0,false,false);
  171.    SubMenu('M~a~lprogramm',cmPaint,0,0,false,false);
  172.   MainMenu('~G~rafik',0);
  173.    SubMenu('~K~uchendiagramm F8',cmKuchen,0,kbF8,false,false);
  174.    SubMenu('~F~arnblatt      F9',cmFarn,0,kbF9,false,false);
  175. end;
  176.  
  177. procedure TApplication.HandleEvent;
  178. var i:integer;
  179.     z:string;
  180.     kb:char;
  181.     LfdPtr:PGroup;
  182.     Screen:TMemory;
  183.     R:TRect;
  184.  
  185. procedure HandleStatusBar;
  186. begin
  187.    if Keyb.CapsLock and (GetPixel(254,GetMaxY-16)=LightGray) then
  188.     begin
  189.       Mouse.HideMouse;
  190.       FBar(250,GetMaxY-18,258,GetMaxY-12,LightCyan);
  191.       Mouse.ShowMouse;
  192.     end;
  193.    if not (Keyb.CapsLock) and (GetPixel(254,GetMaxY-16)=LightCyan) then
  194.     begin
  195.       Mouse.HideMouse;
  196.       FBar(250,GetMaxY-18,258,GetMaxY-12,LightGray);
  197.       Mouse.ShowMouse;
  198.     end;
  199.    if Keyb.NumLock and (GetPixel(350,GetMaxY-16)=LightGray) then
  200.     begin
  201.       Mouse.HideMouse;
  202.       FBar(346,GetMaxY-18,354,GetMaxY-12,LightCyan);
  203.       Mouse.ShowMouse;
  204.     end;
  205.    if not (Keyb.NumLock) and (GetPixel(350,GetMaxY-16)=LightCyan) then
  206.     begin
  207.       Mouse.HideMouse;
  208.       FBar(346,GetMaxY-18,354,GetMaxY-12,LightGray);
  209.       Mouse.ShowMouse;
  210.     end;
  211.    if Keyb.ScrollLock and (GetPixel(470,GetMaxY-16)=LightGray) then
  212.     begin
  213.       Mouse.HideMouse;
  214.       FBar(466,GetMaxY-18,474,GetMaxY-12,LightCyan);
  215.       Mouse.ShowMouse;
  216.     end;
  217.    if not (Keyb.ScrollLock) and (GetPixel(470,GetMaxY-16)=LightCyan) then
  218.     begin
  219.       Mouse.HideMouse;
  220.       FBar(466,GetMaxY-18,474,GetMaxY-12,LightGray);
  221.       Mouse.ShowMouse;
  222.     end;
  223.    if Keyb.LShiftKey and (GetPixel(547,GetMaxY-16)=LightGray) then
  224.     begin
  225.       Mouse.HideMouse;
  226.       FBar(544,GetMaxY-18,551,GetMaxY-12,LightCyan);
  227.       Mouse.ShowMouse;
  228.     end;
  229.    if not (Keyb.LShiftKey) and (GetPixel(547,GetMaxY-16)=LightCyan) then
  230.     begin
  231.       Mouse.HideMouse;
  232.       FBar(544,GetMaxY-18,551,GetMaxY-12,LightGray);
  233.       Mouse.ShowMouse;
  234.     end;
  235.    if Keyb.RShiftKey and (GetPixel(561,GetMaxY-16)=LightGray) then
  236.     begin
  237.       Mouse.HideMouse;
  238.       FBar(559,GetMaxY-18,566,GetMaxY-12,LightCyan);
  239.       Mouse.ShowMouse;
  240.     end;
  241.    if not (Keyb.RShiftKey) and (GetPixel(561,GetMaxY-16)=LightCyan) then
  242.     begin
  243.       Mouse.HideMouse;
  244.       FBar(559,GetMaxY-18,566,GetMaxY-12,LightGray);
  245.       Mouse.ShowMouse;
  246.     end;
  247. end;
  248.  
  249. procedure ScreenSaver;
  250. var Stunde,Minute,Sekunde,HSec:word;
  251. begin
  252.   {$Q-}
  253.   GetTime(Stunde,Minute,Sekunde,HSec);
  254.   if Event.What<>evNothing then ZeroTime:=Stunde*3600+Minute*60+Sekunde
  255.    else StopTime:=Stunde*3600+Minute*60+Sekunde;
  256.   if (StopTime-ZeroTime)>Wait then
  257.    begin
  258.      Mouse.HideMouse;
  259.      R.Assign(0,0,GetMaxX,GetMaxY);
  260.      Screen.Init(R);
  261.      Screen.Draw;
  262.      DoArt;
  263.      Screen.Hide;
  264.      Screen.Done;
  265.      Mouse.ShowMouse;
  266.      GetTime(Stunde,Minute,Sekunde,HSec);
  267.      ZeroTime:=Stunde*3600+Minute*60+Sekunde;
  268.    end;
  269. end;
  270.  
  271. procedure AlphaBildschirm;
  272. begin
  273.   TextColor(White);
  274.   writeln('Leistungsmerkmale von WG-VISION');
  275.   writeln('═══════════════════════════════');
  276.   TextColor(LightGray);
  277.   writeln;
  278.   writeln('WG-VISION ist eine Klassenbibliothek für Turbo-Pascal 6/7 und Borland');
  279.   writeln('Pascal 7.0 (Realmode) zur Programmierung einer an Windows angelehnten');
  280.   writeln('Nutzeroberfläche unter DOS. WG-VISION wird als Shareware vertrieben.');
  281.   writeln('In der Profiversion sind alle Quelltexte erhältlich. Ein Programmier-');
  282.   writeln('handbuch mit ca. 400 Seiten führt Sie in die Nutzungsmöglichkeiten der');
  283.   writeln('Toolbox ein.');
  284.   writeln;
  285.   TextColor(LightRed);
  286.   writeln('Allgemeine Angaben');
  287.   TextColor(Yellow);
  288.   writeln;
  289.   writeln('- 65 Objekte in 21 Units');
  290.   writeln('- 12000 Zeilen Quelltext in der Profiversion');
  291.   writeln;
  292.   TextColor(LightRed);
  293.   writeln('Hardware');
  294.   TextColor(Yellow);
  295.   writeln;
  296.   writeln('WG-VISION unterstützt');
  297.   writeln;
  298.   TextColor(LightCyan);
  299.   writeln('- Maus');
  300.   writeln('- Tastatur');
  301.   writeln('- Joystick');
  302.   writeln('- Digitizer (Summagraphic MM-Serie)');
  303.   writeln;
  304.   GotoXY(80,26);
  305.   kb:=ReadKey;
  306.   if kb=kbESC then Exit;
  307.   ClrScr;
  308.   TextColor(LightRed);
  309.   writeln('Grafik');
  310.   TextColor(LightCyan);
  311.   writeln;
  312.   writeln('- Standard-VGA und EGA (VGA wird empfohlen)');
  313.   writeln('- Super-VGA`s mit VESA-Unterstützung (VESA-Treiber für die meisten');
  314.   writeln('  Grafikcontroller sind verfügbar). 256 Farben in allen unterstützten');
  315.   writeln('  Auflösungen (nur Voll- und Profiversion)');
  316.   writeln;
  317.   writeln;
  318.   TextColor(LightGray);
  319.   writeln('Beachten Sie bitte das Demonstrationsprogramm SBGDEMO.EXE. Es arbeitet');
  320.   writeln('in den VESA-Modi 640x480x256 bzw. 800x600x256 (Kommandozeilenparameter -R)');
  321.   writeln('und zeigt am Beispiel einer Bildbearbeitung die Möglichkeiten der');
  322.   writeln('Palettenmanipulation. Der integrierte Paletteneditor ist in der Profi-');
  323.   writeln('version genauso wie die Routinen zur Palettenmanipulation als Quelltext');
  324.   writeln('erhältlich.');
  325.   GotoXY(80,26);
  326.   kb:=ReadKey;
  327.   if kb=kbESC then Exit;
  328.   ClrScr;
  329.   TextColor(LightRed);
  330.   writeln('Oberfläche');
  331.   TextColor(LightCyan);
  332.   writeln;
  333.   writeln('- WG-VISION erlaubt die Erstellung von Programmen mit einer stark an');
  334.   writeln('  Microsoft Windows angelegten Nutzeroberfläche (GUI)');
  335.   writeln('- SAA-konformes Menüsystem. Unterstützung von Menü-Ressourcendateien');
  336.   writeln('- Programmierung von Statuszeile und Iconleisten problemlos möglich');
  337.   writeln('- Kontextsensitives Hilfesystem');
  338.   writeln('- Voll fensterorientiert');
  339.   writeln;
  340.   TextColor(LightGreen);
  341.   writeln('    *  Verschiebbare und in ihrer Größe veränderbare Fenster');
  342.   writeln('    *  Dialogboxen mit - Druckschalter (mit und ohne Icons)');
  343.   writeln('                       - Radio- und Checkbuttons');
  344.   writeln('                       - Eingabefelder mit Editierfunktionen und Rollen');
  345.   writeln('                       - Eingabemasken');
  346.   writeln('                       - Zählschalter');
  347.   writeln('                       - Listboxen mit horizontalen und vertikalen Rollbalken');
  348.   writeln('                       - Statische Texte, Unterstützung von 10 Vektor-');
  349.   writeln('                         zeichensätzen');
  350.   writeln('                       - Gruppenrahmen und Icons');
  351.   writeln;
  352.   TextColor(LightCyan);
  353.   writeln('    *  Mitteilungsfenster (Messageboxen)');
  354.   writeln('    *  Fehlerbehandlung mit Fehlerboxen');
  355.   writeln('    *  Fenster mit Rollbalken');
  356.   writeln('    *  Childfenster');
  357.   writeln;
  358.   GotoXY(80,26);
  359.   kb:=ReadKey;
  360.   if kb=kbESC then Exit;
  361.   ClrScr;
  362.   TextColor(LightRed);
  363.   writeln('Speicher');
  364.   TextColor(LightCyan);
  365.   writeln;
  366.   writeln('- Verwendung von EMS zur Auslagerung von Fenster-Untergrundbereichen und');
  367.   writeln('  Daten. Wenn kein EMS vorhanden ist, werden Bildschirmbereiche in temporäre');
  368.   writeln('  Swapdateien gerettet');
  369.   writeln('- Speicherobjekte für Heap, Festplatte und EMS zum Speichern von Aus-');
  370.   writeln('  schnitten des Grafikbildschirms');
  371.   writeln;
  372.   TextColor(LightRed);
  373.   writeln('Zusätzlich zu den Kernroutinen enthält WG-VISION Objekte für');
  374.   TextColor(LightCyan);
  375.   writeln;
  376.   writeln('- Datei Ein- und Ausgabedialoge');
  377.   writeln('- Paletteneditor für die 256-farbigen VESA-Modi (nur Voll- und');
  378.   writeln('  Profiversion');
  379.   writeln('- Iconeditor');
  380.   writeln('- Digitaluhr');
  381.   writeln('- Erweiterte Funktionen des Coprozessors (ab INTEL 80387) (nur Voll-');
  382.   writeln('  Profiversion)');
  383.   writeln('- VGA-Fonts im Grafikmodus, 6 Sonderzeichensätze für Standard-VGA');
  384.   writeln('- Laden- und Speichern von PCX-Bildern mit 16 und 256 Farben (256 Farben');
  385.   writeln('  nur in der Voll- und Profiversion');
  386.   writeln;
  387.   writeln;
  388.   TextColor(LightMagenta+Blink);
  389.   writeln('Zurück zum Desktop mit <ESC>');
  390.   TextColor(White);
  391.   GotoXY(80,26);
  392.   kb:=ReadKey;
  393.   ClrScr;
  394. end;
  395.  
  396.  
  397. {-------}
  398.  
  399. begin
  400.   Heap^.ShowHeapStatus(523,8,White);
  401.   TProgram.HandleEvent;
  402.   if SetTitel then              {Titelfenster aufblenden}
  403.    begin
  404.      ShowTitel;
  405.      SetTitel:=false;
  406.    end;
  407.   ScreenSaver;
  408.   HandleStatusBar;
  409.   case Event.Command of
  410.    cmOwn         : ShowText;
  411.    cmOpen        : Eingabe;
  412.    cmAlpha       : begin
  413.                      Mouse.HideMouse;
  414.                      R.Assign(0,0,GetMaxX,GetMaxY);
  415.                      Screen.Init(R);
  416.                      Screen.Draw;
  417.                      Video.SetTextMode;
  418.                      repeat
  419.                        AlphaBildschirm;
  420.                      until kb=#27;
  421.                      Video.ChangeGraficMode(M640x480);
  422.                      Screen.Hide;
  423.                      Screen.Done;
  424.                      Mouse.ShowMouse;
  425.                    end;
  426.    cmMemory      : GetMemoryStatus;
  427.    cmSetDate     : SetDate;
  428.    cmIcon        : IconEdit;
  429.    cmCalculator  : Taschenrechner;
  430.    cmUhr         : DigitalUhr;
  431.    cmMaus        : Mausdemo;
  432.    cmPaint       : Malprogramm;
  433.    cmKuchen      : Diagramm;
  434.    cmFarn        : Farnblatt;
  435.   end; {case}
  436.   if Event.Message=msgLoadFile then
  437.    begin
  438.      Lister;
  439.      ClearMessage;
  440.    end;
  441. end;
  442.  
  443. procedure TApplication.StatusBar;
  444. var i:integer;
  445. begin
  446.   FBar(4,GetMaxY-26,GetMaxX-4,GetMaxY-4,LightGray);
  447.   D3Frame(6,GetMaxY-24,GetMaxX-6,GetMaxY-6,Black,White);
  448.   SetColor(Red);
  449.   OutTextXY(15,GetMaxY-18,'Tataturstatus');
  450.   SetColor(Black);
  451.   OutTextXY(15,GetMaxY-18,'                   Caps Lock    Num Lock    Scroll Lock     Shift');
  452.   D3Frame(249,GetMaxY-19,259,GetMaxY-11,Black,White);
  453.   D3Frame(345,GetMaxY-19,355,GetMaxY-11,Black,White);
  454.   D3Frame(465,GetMaxY-19,475,GetMaxY-11,Black,White);
  455.   D3Frame(543,GetMaxY-19,552,GetMaxY-11,Black,White);
  456.   D3Frame(558,GetMaxY-19,567,GetMaxY-11,Black,White);
  457. end;
  458.  
  459. procedure TApplication.IconBar;
  460. var Window:PIconBar;
  461. begin
  462.   Window:=new(PIconBar, Init);
  463.   InsertDesktop(Window);
  464. end;
  465.  
  466. procedure TApplication.ShowTitel;
  467. var Image:PTitelWindow;
  468. begin
  469.   Image:=new(PTitelWindow, Init);
  470.   InsertDesktop(Image);
  471. end;
  472.  
  473. procedure TApplication.Lister;
  474. var Window:PScrollWindow;
  475. begin
  476.   Window:=new(PScrollWindow, Init(1));
  477.   InsertDesktop(Window);
  478. end;
  479.  
  480. procedure TApplication.ShowText;
  481. var Window:PScrollWindow;
  482. begin
  483.   Window:=new(PScrollWindow, Init(2));
  484.   InsertDesktop(Window);
  485. end;
  486.  
  487. procedure TApplication.GetMemoryStatus;
  488. var Window:PMemoryInfo;
  489. begin
  490.   Window:=new(PMemoryInfo, Init);
  491.   InsertDesktop(Window);
  492. end;
  493.  
  494. procedure TApplication.SetDate;
  495. var Window:PDateWindow;
  496. begin
  497.   Window:=new(PDateWindow, Init);
  498.   InsertDesktop(Window);
  499. end;
  500.  
  501. procedure TApplication.DigitalUhr;
  502. var Window:PDigitalUhr;
  503. begin
  504.   Window:=new(PDigitalUhr, Init(380,120));
  505.   InsertDesktop(Window);
  506. end;
  507.  
  508. procedure TApplication.Taschenrechner;
  509. var Window:PCalculator;
  510. begin
  511.   Window:=new(PCalculator, Init);
  512.   InsertDesktop(Window);
  513. end;
  514.  
  515. procedure TApplication.MausDemo;
  516. var Window:PMausDemo;
  517. begin
  518.   Window:=new(PMausDemo, Init(60,100));
  519.   InsertDesktop(Window);
  520. end;
  521.  
  522. procedure TApplication.Malprogramm;
  523. var Window:PPaint;
  524. begin
  525.   Window:=new(PPaint, Init);
  526.   InsertDesktop(Window);
  527. end;
  528.  
  529. procedure TApplication.IconEdit;
  530. var Window:PIconEdit;
  531. begin
  532.   Window:=new(PIconEdit, Init(80,100,'TEST.ICN',2));
  533.   InsertDesktop(Window);
  534. end;
  535.  
  536. procedure TApplication.Diagramm;
  537. var Window:PDiagramm;
  538. begin
  539.   Window:=new(PDiagramm, Init(210,120));
  540.   InsertDesktop(Window);
  541. end;
  542.  
  543. procedure TApplication.FarnBlatt;
  544. var Window:PFarn;
  545. begin
  546.   Window:=new(PFarn, Init(210,120));
  547.   InsertDesktop(Window);
  548. end;
  549.  
  550. procedure TApplication.Eingabe;
  551. var Window:PInputDialog;
  552. begin
  553.   Window:=new(PInputDialog, Init('Eingabe','*.PAS'));
  554.   InsertDesktop(Window);
  555. end;
  556.  
  557. {Implementation TTitelWindow}
  558.  
  559. constructor TTitelWindow.Init;
  560. var RR:TRect;
  561. begin
  562.   RR.Assign((GetMaxX div 2)-200,100,(GetMaxX div 2)+200,358);
  563.   TWindow.Init(RR,'TP/BP-Klassenbibliothek WG-VISION',winDouble+winPanel+winMenu);
  564.   WinModal:=false;
  565. end;
  566.  
  567. procedure TTitelWindow.InitBackground;
  568. var RR:TRect;
  569. begin
  570.   RR:=Frame^.Area;
  571.   Bgrd:=new(PTitelBgrd, Init(RR));
  572.   List^.InsertItem(Bgrd);
  573. end;
  574.  
  575. {Implementation TTitelBgrd}
  576.  
  577. procedure TTitelBgrd.Draw;
  578. var OK:integer;
  579. begin
  580.   with Border do
  581.    begin
  582.      FBar(A.x,A.y,B.x,B.y,Black);
  583.      DrawImage(A.x,A.y,'DEMO.BIN');
  584.    end;
  585. end;
  586.  
  587. {Implementation TIconBar}
  588.  
  589. constructor TIconBar.Init;
  590. var RR:TRect;
  591. begin
  592.   with MyApp.Desktop^.Frame^.Area do RR.Assign(A.x-1,A.y+21,B.x+1,A.y+48);
  593.   TDlgWindow.Init(RR,'',winSingle);
  594.   SetPushButton(3,3,0,0,'#DEMO.I16/13',cmCalculator);
  595.    ChangePalColor(8,LightGray);
  596.   SetPushButton(28,3,0,0,'#DEMO.I16/14',cmUhr);
  597.    ChangePalColor(8,LightGray);
  598.   SetPushButton(65,3,0,0,'#DEMO.I16/15',cmIcon);
  599.    ChangePalColor(8,LightGray);
  600.   SetPushButton(90,3,0,0,'#DEMO.I16/16',cmMaus);
  601.    ChangePalColor(8,LightGray);
  602.   SetPushButton(115,3,0,0,'#DEMO.I16/19',cmAlpha);
  603.    ChangePalColor(8,LightGray);
  604.   SetPushButton(150,3,0,0,'#ICON.I16/6',185);
  605.    ChangePalColor(8,LightGray);
  606.   SetPushButton(175,3,0,0,'#ICON.I16/7',186);
  607.    ChangePalColor(8,LightGray);
  608.   SetPushButton(200,3,0,0,'#ICON.I16/8',187);
  609.    ChangePalColor(8,LightGray);
  610.   SetPushButton(225,3,0,0,'#ICON.I16/9',188);
  611.    ChangePalColor(8,LightGray);
  612.   SetPushButton(250,3,0,0,'#ICON.I16/10',189);
  613.    ChangePalColor(8,LightGray);
  614.   SetPushButton(325,3,0,0,'#DEMO.I16/17',cmKuchen);
  615.    ChangePalColor(8,LightGray);
  616.   SetPushButton(350,3,0,0,'#DEMO.I16/18',cmFarn);
  617.    ChangePalColor(8,LightGray);
  618.   SetPushButton(375,3,0,0,'#ICON.I16/13',192);
  619.    ChangePalColor(8,LightGray);
  620.   SetPushButton(400,3,0,0,'#ICON.I16/14',193);
  621.    ChangePalColor(8,LightGray);
  622.   WinModal:=true; IconBarPresent:=true;
  623. end;
  624.  
  625. procedure TIconBar.InitBackground;
  626. var RR:TRect;
  627. begin
  628.   RR:=Frame^.Area;
  629.   Bgrd:=new(PIconBarBgrd, Init(RR));
  630.   List^.InsertItem(Bgrd);
  631. end;
  632.  
  633. {Implementation TNewDTBgrd}
  634.  
  635. procedure TNewDTBgrd.Draw;
  636. var R:TRect;
  637. begin
  638.   TDsktpBgrd.Draw;
  639.   R.Copy(Border);
  640.   R.A.y:=R.A.y+47;
  641.   BgImage.Init(R,'WETT.PCX');
  642.   BgImage.LoadPCXImage(0);
  643. end;
  644.  
  645. {Implementation TIconBarBgrd}
  646.  
  647. procedure TIconBarBgrd.Draw;
  648. begin
  649.   with Border do FBar(A.x,A.y,B.x,B.y,LightGray);
  650. end;
  651.  
  652. {Hauptprogramm}
  653.  
  654. begin
  655.   OvrInit('DEMO.OVR');
  656.   MyApp.Init('Demonstrationsprogramm WG-Vision');
  657.   MyApp.Run;
  658.   MyApp.Done;
  659. END.