home *** CD-ROM | disk | FTP | other *** search
- (***************************************
- * WG-VISION 1.0 DEMONSTRATION *
- ****************************************
- * *
- * Demonstrationsprogramm WG-VISION 1.0 *
- * *
- *--------------------------------------*
- * Achtung: Nur VGA ! *
- ****************************************
- * (c) 1993 Dipl.Phys. Mathias Scholz *
- ***************************************)
-
- {$I COMPILER.INC}
-
- program Demo;
-
- uses Overlay,
- WApp,
- WDecl,
- WViews,
- WDlg,
- WDriver,
- WUtils,
- WFileDlg,
- WEvent,
- WUhr,
- WIcnEdit,
- WPCX,
- WCalc,
- DemoGr,
- DemoLst,
- DemPaint,
- Arty,
- graph,
- dos,
- crt;
-
- {$O WCalc}
- {$O WIcnEdit}
- {$O DemoGr}
- {$O DemoLst}
- {$O DemPaint}
- {$O Arty}
-
- const cmOwn = 101;
- cmOpen = 102;
- cmAlpha = 103;
- cmMemory = 104;
- cmSetDate = 105;
- cmIcon = 201;
- cmCalculator = 202;
- cmUhr = 203;
- cmMaus = 301;
- cmPaint = 302;
- cmKuchen = 401;
- cmFarn = 402;
-
- type TApplication=object(TApp)
- ZeroTime,StopTime:LongInt;
- Wait:word;
- constructor Init(Titel:string);
- procedure SetDesktopFrame(Titel:string); virtual;
- procedure SetDesktopBackground; virtual;
- procedure InitMenuBar; virtual;
- procedure HandleEvent; virtual;
- procedure IconBar;
- procedure StatusBar; virtual;
- procedure ShowTitel;
- procedure Lister;
- procedure ShowText;
- procedure GetMemoryStatus;
- procedure SetDate;
- procedure DigitalUhr;
- procedure Taschenrechner;
- procedure MausDemo;
- procedure Malprogramm;
- procedure IconEdit;
- procedure Diagramm;
- procedure Farnblatt;
- procedure Eingabe;
- private
- SetTitel:boolean;
- end;
-
- PNewDTBgrd=^TNewDTBgrd;
- TNewDTBgrd=object(TDsktpBgrd)
- BgImage:TPCXImage;
- procedure Draw;virtual;
- end;
-
- PTitelWindow=^TTitelWindow;
- TTitelWindow=object(TWindow)
- constructor Init;
- procedure InitBackground; virtual;
- end;
-
- PTitelBgrd=^TTitelBgrd;
- TTitelBgrd=object(TBackground)
- procedure Draw; virtual;
- end;
-
- PIconBar=^TIconBar;
- TIconBar=object(TDlgWindow)
- constructor Init;
- procedure InitBackground; virtual;
- end;
-
- PIconBarBgrd=^TIconBarBgrd;
- TIconBarBgrd=object(TBackground)
- procedure Draw; virtual;
- end;
-
-
- var MyApp:TApplication;
-
-
- {Implementation TApplication}
-
- constructor TApplication.Init(Titel:string);
- begin
- TApp.Init(Titel);
- WorkArea.A.y:=WorkArea.A.y+26;
- WorkArea.B.y:=WorkArea.B.y-23;
- IconBar;
- ZeroTime:=0; Wait:=25;
- SetTitel:=true;
- end;
-
- procedure TApplication.SetDesktopFrame(Titel:string);
- var R:TRect;
- begin
- with Desktop^ do
- begin
- GetBounds(R);
- Frame:=new(PFrame, Init(R,R,Titel,winDouble+winPanel+winMenu));
- Frame^.Palette:=Palette1;
- List^.InsertItem(Frame);
- end;
- end;
-
- procedure TApplication.SetDesktopBackground;
- var R:TRect;
- NBgrd:PNewDTBgrd;
- begin
- with Desktop^ do
- begin
- R:=Frame^.Area;
- NBgrd:=new(PNewDTBgrd, Init(R));
- NBgrd^.Palette[7]:=#14;
- NBgrd^.Palette[8]:=#11;
- List^.InsertItem(NBgrd);
- end;
- end;
-
- procedure TApplication.InitMenuBar;
- begin
- MainMenu('~D~atei',0);
- SubMenu('~I~n eigener Sache',cmOwn,0,0,false,false);
- SubMenu('~Q~uelltext laden',cmOpen,0,0,false,false);
- SubMenu('~A~lphamodus',cmAlpha,0,0,false,false);
- SubMenu('~S~peicherstatus',cmMemory,0,0,false,false);
- SubMenu('~D~atum und Uhrzeit',cmSetDate,0,0,false,false);
- NewLine;
- SubMenu('E~x~it Alt-X',cmCloseApplication,0,altX,false,false);
- MainMenu('~A~nwendungen',0);
- SubMenu('~I~coneditor 16x16',cmIcon,0,0,false,false);
- SubMenu('~T~aschenrechner',cmCalculator,0,0,false,false);
- SubMenu('~D~igitaluhr',cmUhr,0,0,false,false);
- MainMenu('~D~emos',0);
- SubMenu('~M~ausdemo',cmMaus,0,0,false,false);
- SubMenu('M~a~lprogramm',cmPaint,0,0,false,false);
- MainMenu('~G~rafik',0);
- SubMenu('~K~uchendiagramm F8',cmKuchen,0,kbF8,false,false);
- SubMenu('~F~arnblatt F9',cmFarn,0,kbF9,false,false);
- end;
-
- procedure TApplication.HandleEvent;
- var i:integer;
- z:string;
- kb:char;
- LfdPtr:PGroup;
- Screen:TMemory;
- R:TRect;
-
- procedure HandleStatusBar;
- begin
- if Keyb.CapsLock and (GetPixel(254,GetMaxY-16)=LightGray) then
- begin
- Mouse.HideMouse;
- FBar(250,GetMaxY-18,258,GetMaxY-12,LightCyan);
- Mouse.ShowMouse;
- end;
- if not (Keyb.CapsLock) and (GetPixel(254,GetMaxY-16)=LightCyan) then
- begin
- Mouse.HideMouse;
- FBar(250,GetMaxY-18,258,GetMaxY-12,LightGray);
- Mouse.ShowMouse;
- end;
- if Keyb.NumLock and (GetPixel(350,GetMaxY-16)=LightGray) then
- begin
- Mouse.HideMouse;
- FBar(346,GetMaxY-18,354,GetMaxY-12,LightCyan);
- Mouse.ShowMouse;
- end;
- if not (Keyb.NumLock) and (GetPixel(350,GetMaxY-16)=LightCyan) then
- begin
- Mouse.HideMouse;
- FBar(346,GetMaxY-18,354,GetMaxY-12,LightGray);
- Mouse.ShowMouse;
- end;
- if Keyb.ScrollLock and (GetPixel(470,GetMaxY-16)=LightGray) then
- begin
- Mouse.HideMouse;
- FBar(466,GetMaxY-18,474,GetMaxY-12,LightCyan);
- Mouse.ShowMouse;
- end;
- if not (Keyb.ScrollLock) and (GetPixel(470,GetMaxY-16)=LightCyan) then
- begin
- Mouse.HideMouse;
- FBar(466,GetMaxY-18,474,GetMaxY-12,LightGray);
- Mouse.ShowMouse;
- end;
- if Keyb.LShiftKey and (GetPixel(547,GetMaxY-16)=LightGray) then
- begin
- Mouse.HideMouse;
- FBar(544,GetMaxY-18,551,GetMaxY-12,LightCyan);
- Mouse.ShowMouse;
- end;
- if not (Keyb.LShiftKey) and (GetPixel(547,GetMaxY-16)=LightCyan) then
- begin
- Mouse.HideMouse;
- FBar(544,GetMaxY-18,551,GetMaxY-12,LightGray);
- Mouse.ShowMouse;
- end;
- if Keyb.RShiftKey and (GetPixel(561,GetMaxY-16)=LightGray) then
- begin
- Mouse.HideMouse;
- FBar(559,GetMaxY-18,566,GetMaxY-12,LightCyan);
- Mouse.ShowMouse;
- end;
- if not (Keyb.RShiftKey) and (GetPixel(561,GetMaxY-16)=LightCyan) then
- begin
- Mouse.HideMouse;
- FBar(559,GetMaxY-18,566,GetMaxY-12,LightGray);
- Mouse.ShowMouse;
- end;
- end;
-
- procedure ScreenSaver;
- var Stunde,Minute,Sekunde,HSec:word;
- begin
- {$Q-}
- GetTime(Stunde,Minute,Sekunde,HSec);
- if Event.What<>evNothing then ZeroTime:=Stunde*3600+Minute*60+Sekunde
- else StopTime:=Stunde*3600+Minute*60+Sekunde;
- if (StopTime-ZeroTime)>Wait then
- begin
- Mouse.HideMouse;
- R.Assign(0,0,GetMaxX,GetMaxY);
- Screen.Init(R);
- Screen.Draw;
- DoArt;
- Screen.Hide;
- Screen.Done;
- Mouse.ShowMouse;
- GetTime(Stunde,Minute,Sekunde,HSec);
- ZeroTime:=Stunde*3600+Minute*60+Sekunde;
- end;
- end;
-
- procedure AlphaBildschirm;
- begin
- TextColor(White);
- writeln('Leistungsmerkmale von WG-VISION');
- writeln('═══════════════════════════════');
- TextColor(LightGray);
- writeln;
- writeln('WG-VISION ist eine Klassenbibliothek für Turbo-Pascal 6/7 und Borland');
- writeln('Pascal 7.0 (Realmode) zur Programmierung einer an Windows angelehnten');
- writeln('Nutzeroberfläche unter DOS. WG-VISION wird als Shareware vertrieben.');
- writeln('In der Profiversion sind alle Quelltexte erhältlich. Ein Programmier-');
- writeln('handbuch mit ca. 400 Seiten führt Sie in die Nutzungsmöglichkeiten der');
- writeln('Toolbox ein.');
- writeln;
- TextColor(LightRed);
- writeln('Allgemeine Angaben');
- TextColor(Yellow);
- writeln;
- writeln('- 65 Objekte in 21 Units');
- writeln('- 12000 Zeilen Quelltext in der Profiversion');
- writeln;
- TextColor(LightRed);
- writeln('Hardware');
- TextColor(Yellow);
- writeln;
- writeln('WG-VISION unterstützt');
- writeln;
- TextColor(LightCyan);
- writeln('- Maus');
- writeln('- Tastatur');
- writeln('- Joystick');
- writeln('- Digitizer (Summagraphic MM-Serie)');
- writeln;
- GotoXY(80,26);
- kb:=ReadKey;
- if kb=kbESC then Exit;
- ClrScr;
- TextColor(LightRed);
- writeln('Grafik');
- TextColor(LightCyan);
- writeln;
- writeln('- Standard-VGA und EGA (VGA wird empfohlen)');
- writeln('- Super-VGA`s mit VESA-Unterstützung (VESA-Treiber für die meisten');
- writeln(' Grafikcontroller sind verfügbar). 256 Farben in allen unterstützten');
- writeln(' Auflösungen (nur Voll- und Profiversion)');
- writeln;
- writeln;
- TextColor(LightGray);
- writeln('Beachten Sie bitte das Demonstrationsprogramm SBGDEMO.EXE. Es arbeitet');
- writeln('in den VESA-Modi 640x480x256 bzw. 800x600x256 (Kommandozeilenparameter -R)');
- writeln('und zeigt am Beispiel einer Bildbearbeitung die Möglichkeiten der');
- writeln('Palettenmanipulation. Der integrierte Paletteneditor ist in der Profi-');
- writeln('version genauso wie die Routinen zur Palettenmanipulation als Quelltext');
- writeln('erhältlich.');
- GotoXY(80,26);
- kb:=ReadKey;
- if kb=kbESC then Exit;
- ClrScr;
- TextColor(LightRed);
- writeln('Oberfläche');
- TextColor(LightCyan);
- writeln;
- writeln('- WG-VISION erlaubt die Erstellung von Programmen mit einer stark an');
- writeln(' Microsoft Windows angelegten Nutzeroberfläche (GUI)');
- writeln('- SAA-konformes Menüsystem. Unterstützung von Menü-Ressourcendateien');
- writeln('- Programmierung von Statuszeile und Iconleisten problemlos möglich');
- writeln('- Kontextsensitives Hilfesystem');
- writeln('- Voll fensterorientiert');
- writeln;
- TextColor(LightGreen);
- writeln(' * Verschiebbare und in ihrer Größe veränderbare Fenster');
- writeln(' * Dialogboxen mit - Druckschalter (mit und ohne Icons)');
- writeln(' - Radio- und Checkbuttons');
- writeln(' - Eingabefelder mit Editierfunktionen und Rollen');
- writeln(' - Eingabemasken');
- writeln(' - Zählschalter');
- writeln(' - Listboxen mit horizontalen und vertikalen Rollbalken');
- writeln(' - Statische Texte, Unterstützung von 10 Vektor-');
- writeln(' zeichensätzen');
- writeln(' - Gruppenrahmen und Icons');
- writeln;
- TextColor(LightCyan);
- writeln(' * Mitteilungsfenster (Messageboxen)');
- writeln(' * Fehlerbehandlung mit Fehlerboxen');
- writeln(' * Fenster mit Rollbalken');
- writeln(' * Childfenster');
- writeln;
- GotoXY(80,26);
- kb:=ReadKey;
- if kb=kbESC then Exit;
- ClrScr;
- TextColor(LightRed);
- writeln('Speicher');
- TextColor(LightCyan);
- writeln;
- writeln('- Verwendung von EMS zur Auslagerung von Fenster-Untergrundbereichen und');
- writeln(' Daten. Wenn kein EMS vorhanden ist, werden Bildschirmbereiche in temporäre');
- writeln(' Swapdateien gerettet');
- writeln('- Speicherobjekte für Heap, Festplatte und EMS zum Speichern von Aus-');
- writeln(' schnitten des Grafikbildschirms');
- writeln;
- TextColor(LightRed);
- writeln('Zusätzlich zu den Kernroutinen enthält WG-VISION Objekte für');
- TextColor(LightCyan);
- writeln;
- writeln('- Datei Ein- und Ausgabedialoge');
- writeln('- Paletteneditor für die 256-farbigen VESA-Modi (nur Voll- und');
- writeln(' Profiversion');
- writeln('- Iconeditor');
- writeln('- Digitaluhr');
- writeln('- Erweiterte Funktionen des Coprozessors (ab INTEL 80387) (nur Voll-');
- writeln(' Profiversion)');
- writeln('- VGA-Fonts im Grafikmodus, 6 Sonderzeichensätze für Standard-VGA');
- writeln('- Laden- und Speichern von PCX-Bildern mit 16 und 256 Farben (256 Farben');
- writeln(' nur in der Voll- und Profiversion');
- writeln;
- writeln;
- TextColor(LightMagenta+Blink);
- writeln('Zurück zum Desktop mit <ESC>');
- TextColor(White);
- GotoXY(80,26);
- kb:=ReadKey;
- ClrScr;
- end;
-
-
- {-------}
-
- begin
- Heap^.ShowHeapStatus(523,8,White);
- TProgram.HandleEvent;
- if SetTitel then {Titelfenster aufblenden}
- begin
- ShowTitel;
- SetTitel:=false;
- end;
- ScreenSaver;
- HandleStatusBar;
- case Event.Command of
- cmOwn : ShowText;
- cmOpen : Eingabe;
- cmAlpha : begin
- Mouse.HideMouse;
- R.Assign(0,0,GetMaxX,GetMaxY);
- Screen.Init(R);
- Screen.Draw;
- Video.SetTextMode;
- repeat
- AlphaBildschirm;
- until kb=#27;
- Video.ChangeGraficMode(M640x480);
- Screen.Hide;
- Screen.Done;
- Mouse.ShowMouse;
- end;
- cmMemory : GetMemoryStatus;
- cmSetDate : SetDate;
- cmIcon : IconEdit;
- cmCalculator : Taschenrechner;
- cmUhr : DigitalUhr;
- cmMaus : Mausdemo;
- cmPaint : Malprogramm;
- cmKuchen : Diagramm;
- cmFarn : Farnblatt;
- end; {case}
- if Event.Message=msgLoadFile then
- begin
- Lister;
- ClearMessage;
- end;
- end;
-
- procedure TApplication.StatusBar;
- var i:integer;
- begin
- FBar(4,GetMaxY-26,GetMaxX-4,GetMaxY-4,LightGray);
- D3Frame(6,GetMaxY-24,GetMaxX-6,GetMaxY-6,Black,White);
- SetColor(Red);
- OutTextXY(15,GetMaxY-18,'Tataturstatus');
- SetColor(Black);
- OutTextXY(15,GetMaxY-18,' Caps Lock Num Lock Scroll Lock Shift');
- D3Frame(249,GetMaxY-19,259,GetMaxY-11,Black,White);
- D3Frame(345,GetMaxY-19,355,GetMaxY-11,Black,White);
- D3Frame(465,GetMaxY-19,475,GetMaxY-11,Black,White);
- D3Frame(543,GetMaxY-19,552,GetMaxY-11,Black,White);
- D3Frame(558,GetMaxY-19,567,GetMaxY-11,Black,White);
- end;
-
- procedure TApplication.IconBar;
- var Window:PIconBar;
- begin
- Window:=new(PIconBar, Init);
- InsertDesktop(Window);
- end;
-
- procedure TApplication.ShowTitel;
- var Image:PTitelWindow;
- begin
- Image:=new(PTitelWindow, Init);
- InsertDesktop(Image);
- end;
-
- procedure TApplication.Lister;
- var Window:PScrollWindow;
- begin
- Window:=new(PScrollWindow, Init(1));
- InsertDesktop(Window);
- end;
-
- procedure TApplication.ShowText;
- var Window:PScrollWindow;
- begin
- Window:=new(PScrollWindow, Init(2));
- InsertDesktop(Window);
- end;
-
- procedure TApplication.GetMemoryStatus;
- var Window:PMemoryInfo;
- begin
- Window:=new(PMemoryInfo, Init);
- InsertDesktop(Window);
- end;
-
- procedure TApplication.SetDate;
- var Window:PDateWindow;
- begin
- Window:=new(PDateWindow, Init);
- InsertDesktop(Window);
- end;
-
- procedure TApplication.DigitalUhr;
- var Window:PDigitalUhr;
- begin
- Window:=new(PDigitalUhr, Init(380,120));
- InsertDesktop(Window);
- end;
-
- procedure TApplication.Taschenrechner;
- var Window:PCalculator;
- begin
- Window:=new(PCalculator, Init);
- InsertDesktop(Window);
- end;
-
- procedure TApplication.MausDemo;
- var Window:PMausDemo;
- begin
- Window:=new(PMausDemo, Init(60,100));
- InsertDesktop(Window);
- end;
-
- procedure TApplication.Malprogramm;
- var Window:PPaint;
- begin
- Window:=new(PPaint, Init);
- InsertDesktop(Window);
- end;
-
- procedure TApplication.IconEdit;
- var Window:PIconEdit;
- begin
- Window:=new(PIconEdit, Init(80,100,'TEST.ICN',2));
- InsertDesktop(Window);
- end;
-
- procedure TApplication.Diagramm;
- var Window:PDiagramm;
- begin
- Window:=new(PDiagramm, Init(210,120));
- InsertDesktop(Window);
- end;
-
- procedure TApplication.FarnBlatt;
- var Window:PFarn;
- begin
- Window:=new(PFarn, Init(210,120));
- InsertDesktop(Window);
- end;
-
- procedure TApplication.Eingabe;
- var Window:PInputDialog;
- begin
- Window:=new(PInputDialog, Init('Eingabe','*.PAS'));
- InsertDesktop(Window);
- end;
-
- {Implementation TTitelWindow}
-
- constructor TTitelWindow.Init;
- var RR:TRect;
- begin
- RR.Assign((GetMaxX div 2)-200,100,(GetMaxX div 2)+200,358);
- TWindow.Init(RR,'TP/BP-Klassenbibliothek WG-VISION',winDouble+winPanel+winMenu);
- WinModal:=false;
- end;
-
- procedure TTitelWindow.InitBackground;
- var RR:TRect;
- begin
- RR:=Frame^.Area;
- Bgrd:=new(PTitelBgrd, Init(RR));
- List^.InsertItem(Bgrd);
- end;
-
- {Implementation TTitelBgrd}
-
- procedure TTitelBgrd.Draw;
- var OK:integer;
- begin
- with Border do
- begin
- FBar(A.x,A.y,B.x,B.y,Black);
- DrawImage(A.x,A.y,'DEMO.BIN');
- end;
- end;
-
- {Implementation TIconBar}
-
- constructor TIconBar.Init;
- var RR:TRect;
- begin
- with MyApp.Desktop^.Frame^.Area do RR.Assign(A.x-1,A.y+21,B.x+1,A.y+48);
- TDlgWindow.Init(RR,'',winSingle);
- SetPushButton(3,3,0,0,'#DEMO.I16/13',cmCalculator);
- ChangePalColor(8,LightGray);
- SetPushButton(28,3,0,0,'#DEMO.I16/14',cmUhr);
- ChangePalColor(8,LightGray);
- SetPushButton(65,3,0,0,'#DEMO.I16/15',cmIcon);
- ChangePalColor(8,LightGray);
- SetPushButton(90,3,0,0,'#DEMO.I16/16',cmMaus);
- ChangePalColor(8,LightGray);
- SetPushButton(115,3,0,0,'#DEMO.I16/19',cmAlpha);
- ChangePalColor(8,LightGray);
- SetPushButton(150,3,0,0,'#ICON.I16/6',185);
- ChangePalColor(8,LightGray);
- SetPushButton(175,3,0,0,'#ICON.I16/7',186);
- ChangePalColor(8,LightGray);
- SetPushButton(200,3,0,0,'#ICON.I16/8',187);
- ChangePalColor(8,LightGray);
- SetPushButton(225,3,0,0,'#ICON.I16/9',188);
- ChangePalColor(8,LightGray);
- SetPushButton(250,3,0,0,'#ICON.I16/10',189);
- ChangePalColor(8,LightGray);
- SetPushButton(325,3,0,0,'#DEMO.I16/17',cmKuchen);
- ChangePalColor(8,LightGray);
- SetPushButton(350,3,0,0,'#DEMO.I16/18',cmFarn);
- ChangePalColor(8,LightGray);
- SetPushButton(375,3,0,0,'#ICON.I16/13',192);
- ChangePalColor(8,LightGray);
- SetPushButton(400,3,0,0,'#ICON.I16/14',193);
- ChangePalColor(8,LightGray);
- WinModal:=true; IconBarPresent:=true;
- end;
-
- procedure TIconBar.InitBackground;
- var RR:TRect;
- begin
- RR:=Frame^.Area;
- Bgrd:=new(PIconBarBgrd, Init(RR));
- List^.InsertItem(Bgrd);
- end;
-
- {Implementation TNewDTBgrd}
-
- procedure TNewDTBgrd.Draw;
- var R:TRect;
- begin
- TDsktpBgrd.Draw;
- R.Copy(Border);
- R.A.y:=R.A.y+47;
- BgImage.Init(R,'WETT.PCX');
- BgImage.LoadPCXImage(0);
- end;
-
- {Implementation TIconBarBgrd}
-
- procedure TIconBarBgrd.Draw;
- begin
- with Border do FBar(A.x,A.y,B.x,B.y,LightGray);
- end;
-
- {Hauptprogramm}
-
- begin
- OvrInit('DEMO.OVR');
- MyApp.Init('Demonstrationsprogramm WG-Vision');
- MyApp.Run;
- MyApp.Done;
- END.