From dd5f2dfdb57e4cc5fc74699b69c0e5084af16c3f Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 1 Nov 2011 06:55:35 +0000 Subject: add plausible test skeleton --- binfilter/qa/cppunit/data/sdw/fail/.gitignore | 0 .../qa/cppunit/data/sdw/indeterminate/.gitignore | 0 binfilter/qa/cppunit/data/sdw/pass/.gitignore | 0 binfilter/qa/cppunit/data/sdw/pass/rsc.sdw | 4096 +++++++++++++++++++ binfilter/qa/cppunit/data/sdw/pass/rscerror.sdw | 2119 ++++++++++ binfilter/qa/cppunit/data/sdw/pass/rscinst.sdw | 4138 ++++++++++++++++++++ binfilter/qa/cppunit/makefile.mk | 115 + binfilter/qa/cppunit/test_binfilter.cxx | 98 + 8 files changed, 10566 insertions(+) create mode 100644 binfilter/qa/cppunit/data/sdw/fail/.gitignore create mode 100644 binfilter/qa/cppunit/data/sdw/indeterminate/.gitignore create mode 100644 binfilter/qa/cppunit/data/sdw/pass/.gitignore create mode 100644 binfilter/qa/cppunit/data/sdw/pass/rsc.sdw create mode 100644 binfilter/qa/cppunit/data/sdw/pass/rscerror.sdw create mode 100644 binfilter/qa/cppunit/data/sdw/pass/rscinst.sdw create mode 100644 binfilter/qa/cppunit/makefile.mk create mode 100644 binfilter/qa/cppunit/test_binfilter.cxx diff --git a/binfilter/qa/cppunit/data/sdw/fail/.gitignore b/binfilter/qa/cppunit/data/sdw/fail/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/binfilter/qa/cppunit/data/sdw/indeterminate/.gitignore b/binfilter/qa/cppunit/data/sdw/indeterminate/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/binfilter/qa/cppunit/data/sdw/pass/.gitignore b/binfilter/qa/cppunit/data/sdw/pass/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/binfilter/qa/cppunit/data/sdw/pass/rsc.sdw b/binfilter/qa/cppunit/data/sdw/pass/rsc.sdw new file mode 100644 index 000000000..5727feb5b --- /dev/null +++ b/binfilter/qa/cppunit/data/sdw/pass/rsc.sdw @@ -0,0 +1,4096 @@ +.\\\ WRITER 6 \\\ +C:\ALMUT\SV\SVREF5.LAY +R:\SW55N\TREIBER\PS.GPM +12 +00000 +00010 +01463 +00001 +00001 +00001 +00002 +00002 +00000 +00000 +00000 +00000 +MM +User Doku +RSC +RSC-Beschreibung + + + + + + +0 +11905 +8390 +0 +0 +JA +3 +75 +0 +20 +0 +0 +0 +0 +0 +0 +0 +JA + + + +6 +16 +29 +courier 9.5 +C1 +33 +19 +0 + +Helvetica 14 Pt Fett +F1 +65 +28 +2 + +Helvetica 12 Pt Fett +F2 +65 +24 +2 + +Helvetia 10 Pt Fett +F3 +65 +20 +2 + +Times 10 +T1 +97 +20 +0 + +Courier 7 +C2 +33 +14 +0 + +Grund - Absatzlayout +GA +0 +0 +0 +0 +5 +97 +20 +0 +0 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Listing +LI +0 +0 +0 +0 +1 +33 +19 +0 +1 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +432 +0 +0 +1008 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +7632 +0 +0 +8352 +0 +0 +Funktionsparameter +FP +0 +2449 +0 +0 +5 +97 +20 +0 +0 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +8 +2448 +0 +0 +3024 +0 +0 +3600 +0 +0 +4176 +0 +0 +4752 +0 +0 +5328 +0 +0 +5904 +0 +0 +6480 +0 +0 +Unterberschrift +F1 +0 +0 +0 +0 +4 +65 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Punktliste +PL +0 +289 +0 +0 +5 +97 +20 +0 +0 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +288 +0 +0 +šberschrift Klasse +U1 +0 +0 +0 +0 +2 +65 +28 +0 +1 +0 +1 +NEIN +NEIN +NEIN +238 +1 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift Methode +U0 +0 +0 +0 +0 +2 +65 +24 +0 +1 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Kopfzeile rechts +KR +0 +0 +0 +0 +4 +65 +20 +0 +2 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7920 +1 +0 +Kopfzeile links +KL +0 +0 +0 +0 +4 +65 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +6916 +1 +0 +Fuázeile linksbndig +FL +0 +0 +0 +0 +4 +65 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +5952 +1 +0 +Fuázeile rechtsbndig +FR +0 +0 +0 +0 +4 +65 +20 +0 +2 +0 +1 +NEIN +NEIN +NEIN +0 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +6768 +1 +0 +Linie linksbndig +LL +0 +0 +0 +0 +4 +65 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +0 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7920 +1 +0 +Linie rechtsbndig +LR +0 +0 +0 +0 +4 +65 +20 +0 +2 +0 +1 +NEIN +NEIN +NEIN +0 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7920 +1 +0 +Tabelle +TB +0 +0 +0 +0 +6 +33 +14 +0 +1 +0 +1 +NEIN +NEIN +NEIN +120 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +rechtsbndiger Fuástrich +RS +0 +0 +0 +0 +4 +65 +20 +0 +2 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +5952 +1 +0 +linksbndiger Fuástrich +LS +0 +0 +0 +0 +4 +65 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +238 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +5952 +1 +0 +Starlab-Layout +GS +566 +440 +850 +566 +1133 +680 +0 +0 +1 +NEIN +0 +0 + +Akl#_PFAD##_TEXTNAME# ,-#_S#- +All______________________________________________________________ + +Als______________________________________________________________ +Afl$Date: 23 Jan 1992 14:42:12 $ +Afr4$Revision: 1.25 $ + +Resource linke Seite +L2 +566 +440 +850 +566 +1133 +680 +0 +2 +1 +NEIN +0 +0 + +AklResource +All______________________________________________________________ + +Ars______________________________________________________________ +Afl-#_S#- +Afr3StarView - Referenz + +Resource rechte Seite +L3 +566 +440 +850 +566 +1133 +680 +0 +1 +1 +NEIN +0 +0 + +Akr=Resource +Alr______________________________________________________________ + +Als______________________________________________________________ +Afl(c) 1990/1991 StarDivision +Afr@-#_S#- + +Resourcecompiler linke Seite +L4 +566 +440 +850 +566 +1133 +680 +0 +2 +1 +NEIN +0 +0 + +AklResourcecompiler +All______________________________________________________________ + +Ars______________________________________________________________ +Afl-#_S#- +Afr3StarView - Referenz + +Resourcecompiler rechte Seite +L5 +566 +440 +850 +566 +1133 +680 +0 +1 +1 +NEIN +0 +0 + +Akr4Resourcecompiler +Alr______________________________________________________________ + +Als______________________________________________________________ +Afl(c) 1990/1991 StarDivision +Afr@-#_S#- + +ResOwner linke Seite +L6 +566 +440 +850 +566 +1133 +680 +0 +2 +1 +NEIN +0 +0 + +AklResOwner +All______________________________________________________________ + +Ars______________________________________________________________ +Afl-#_S#- +Afr3StarView - Referenz + +ResOwner rechte Seite +L7 +566 +440 +850 +566 +1133 +680 +0 +1 +1 +NEIN +0 +0 + +AkrWinBits +Alr______________________________________________________________ + +Als______________________________________________________________ +Afl(c) 1990/1991 StarDivision +Afr@-#_S#- + + + + +0 + +0 + +SkfAga + + + + + + + + + +Au0 #_KATEGORIE# +Aga + +Au0 #_THEMA2# +Aga + +Au0 +Aga + + + + + + + + + + + + +Au0 #_AUTOR# +Aga + +Au0 STAR DIVISION / STAR LAB Hamburg +Aga + +Au0 Stand: $Date: 23 Jan 1992 14:42:12 $ +Aga + +Sgs + SkfAgaPA + + +Au0#_KATEGORIE# +Aga + + +AfpDokumentenname #_THEMA2# +Aga +AfpProjektname #_THEMA1# +Aga +AfpVersionsnummer $Revision: 1.25 $ +Aga + +Afperstellt 31. Juli 1990 +Aga +Afpge„ndert $Date: 23 Jan 1992 14:42:12 $ +Aga + +AfpDateiname #_PFAD##_TEXTNAME# +Aga + +AfpAutor #_AUTOR# +Aga +AfpBearbeiter $Author: MM $ +Aga +AfpQualit„tskontrolle +Aga + +AfpStatus XX in Arbeit +Afp __ fertiggestellt +Afp __ abgenommen +Afp __ freigegeben +Aga + +AfpVertraulich __ Ja XX Nein +Aga + +AfpCopyright (C) Star Division 1990 +Aga +Sgs + SivAu0PA + +Au0Inhaltsverzeichnis +Aga +StarView Resourcecompiler 4 +Einleitung 4 +Bekannte Fehler 4 +Systemabh„ngigkeiten 4 +Installationshinweise 5 +rsc-Kommandozeile 5 +rsc-Preprocessor 7 +Default Preprozessor 8 +Einfaches Beispiel 9 +Syntax 16 +Klassen-Erkl„rung: Resource -> StarView 18 +Spezielle Syntax-Konstrukte 59 +Stichwortverzeichnis 63 + +SgsAiv +Aga + Au1paStarView Resourcecompiler +Aga + +Au1Einleitung +Aga +Diese Beschreibung gilt fr den Resourcecompiler in der Version 1.21. + +Der StarView Resourcecompiler ( rsc ) dient dazu, die systemunabh„ngigen Resourcen +in den Beschreibungsdateien in systemabh„ngige Beschreibungsdateien zu berfhren, +die dann mit den systemabh„ngigen Resourcecompilern effizient (Laufzeit) in bin„re +Resourcen bersetzt werden. + + +Au1Bekannte Fehler +Aga +Apl- Unter Unix (Motif) werden noch keine Icons, Bitmaps und Pointer untersttzt. +- Die TMP-Environmentvariable darf keinen "\" am Ende haben (MS-DOS). +- Unter MS-DOS wird die ".rc"-Datei nicht gel”scht. +- Der rscpp gibt die Zeilennummern nicht richtig aus. +- Unter Unix und MAC darf die src-Datei am Ende kein ^Z haben. +Aga + +Au1Systemabh„ngigkeiten +Aga +Die Resource-Scriptdatei (".src") ist bis auf die Typen Icon, Bitmap und Pointer unab +h„ngig. Jede Resource dieser drei Typen steht in einer eigenen Datei. Ob das Format +oder die Version korrekt sind, wird durch den systemabh„ngigen Resourcecompiler +(rc, uid, rez) entschieden. + +Die Pfadnamen in den Include-Anweisungen sind systemabh„ngig. Unter MS-DOS ist +der Pfadname z.B. "..\..\..", unter Unix ist er z.B. "../../.." und unter dem Betriebssystem +des Macintosh z.B. ":: ". + +Die erstellten Resourcedateien sind nicht nur betriebssystemabh„ngig, sondern auch +processor- bzw. compilerabh„ngig. Dies betrifft die L„nge des int und die Darstellung +(Drehungen) von ganzzahligen Datentypen. + +Die Default-Resourcedatei ist unter MS-Windows die ausfhrbare Datei, unter Unix +(Motif) die ausfhrbare Datei mit der Extension ".res" und unter Macintosh noch nicht +festgelegt. + + Au1paLieferumfang +Aga +Dateien fuer den Macintosh: + rsc, rsc2, rscpp. +Dateien fuer Motif: + rsc, rsc2, rscpp. +Dateien fuer MS-DOS: + rsc.exe, rsc2.exe, rsc2r.exe, rsc2z.exe, rscpp, zpm.exe. + +Au1Installationshinweise +Aga +Beim Aufruf des rsc mssen der Preprocessor rscpp, der Parser rsc2 sowie der +systemabh„ngige Resourcecompiler rc.exe fr MSC-Windows unter MS-DOS, uid fr +Motif unter Unix und rez auf dem Macintosh im Zugriffspfad liegen. Der Preprozessor +kann durch einen eigenen ersetzt werden, wenn er den Schnittstellenanforderungen +gengt (siehe rsc-Preprocessor). +Aga + +Au1rsc-Kommandozeile +Aga +Af1Syntax der Kommandozeile +Aga +Alirsc [...] +rsc @ +Aga +Af1Schalter +Aga +Der rsc akzeptiert folgende Schalter: +Aga +-h   Zeigt eine Hilfe fr die Kommandozeile an. +Aga-p   Es wird kein Preprozessor aufgerufen. Weiteres siehe "Default +   Preprozessor". +-s   Es wird eine Syntaxanalyse durchgefhrt und eine ".srs"-Datei +   geschrieben. +-l   Es wird eine Syntaxanalyse durchgefhrt, der Preprocessor wird +   nicht aufgerufen. Es wird eine ".rc"-Datei geschrieben. Dann +   wird der systemabh„ngige Resourcecompiler aufgerufen und +   eine ".res"-Datei erzeugt. +-r   Der systemabh„ngige Resourcecompiler wird nicht aufgerufen. +-d  Es wird ein Symbol definiert. +-i  Der Include-Pfad fr den Preprocessor wird erweitert. +-fl Mit diesem Schalter wird eine Listing-Datei angegeben. In diese +   Datei werden Fehlermeldungen ausgegeben. +-fo Žndert den Namen der ".res"-Datei. Der Defaultname ist der +   erste Name in der Quelldateiliste. Dieser Name bekommt die +   Extension ".res". Die ".res"-Datei ist die vom Resourcecompiler +   erzeugte bin„re Datei. +-fs Žndert den Namen der ".rc"-Datei. Der Defaultname ist der erste +   Name in der Quelldateiliste. Dieser Name bekommt die +   Extension ".rc". Die ".rc"-Datei ist die vom Resourcecompiler +   erzeugte systemabh„ngige Beschreibungsdatei. +-fp Žndert den Namen der ".srs"-Datei. Der Defaultname ist der erste +   Name in der Quelldateiliste. Dieser Name bekommt die +   Extension ".srs". Die ".srs"-Datei ist eine symbolfreie +   Beschreibungsdatei. +-fc In diese Datei werden die Resource-Konstruktoren der in der +   Beschreibungsdatei spezifizierten Klassen geschrieben. Die +   Sprache ist C++. +-fh In diese Datei werden die Deklarationen der in der +   Beschreibungsdatei spezifizierten Klassen geschrieben. Die +   Sprache ist C++. +-WIN   Es wird eine MS-Windows-Resourcedatei erstellt. +-MTF   Es wird eine Motif-Resourcedatei erstellt. +-MAC   Es wird eine Mac-Resourcedatei erstellt. +-REFDEEP Die Zahl gibt an wie Tief der rsc-Compiler beim aufl”sen von +   Referenzen gehen soll. Der Default ist 10, das heiát der Compiler +   l”st verschachtelungen von Referenzen bis 10 auf. +Aga +Af1Kommandodatei +Aga +Die Kommandodatei hat folgende Syntax: +Aga +Ali[...] +Aga +Af1Beispiele +Aga +AliKommando: rsc test +Aga +Wirkung: Quelldatei heiát "test.src". +Ae2Die vom Preprocessor erzeugte Datei heiát "test.srs". +Die vom rsc-Compiler erzeugte Datei heiát "test.rc". +Die vom systemabh„ngigen Compiler erzeugte Datei heiát "test.res". + +AliKommando: rsc -s -fpTest.srs Test1 Test2 Test3 +Aga +Wirkung: Es wird nur eine Syntaxanalyse durchgefhrt. +Ae2Die Quelldateien heiáen "Test1.src", "Test2.src" und "Test3.src". +AgaDie vom Preprocessor erzeugte Datei heiát "Test.srs". + AgaWeitere Dateien werden nicht erzeugt. + +AliKommando: rsc -l test +Aga +Wirkung: Quelldatei heiát "test.srs". +Ae2Der Preprocessor wird nicht benutzt. +Die vom rsc-Compiler erzeugte Datei heiát "test.rc". +Die vom systemabh„ngigen Compiler erzeugte Datei heiát "test.res". +Aga + Au1parsc-Preprocessor +Aga +Af1Kommandozeile +Aga +AgaDie Kommandozeile hat folgende Syntax: + +Alirscpp [...] Quelldatei Zieldatei +Aga +Af1Schalter +Aga +-C   Entfernt die Kommentare nicht( //, /* ... */ ). +-D Hat die gleiche Wirkung wie #define Symbolname in der Datei +   selbst. +-I Gibt an, in welchen Verzeichnissen nach Include-Dateien gesucht +   werden soll. + +Af1Preprocessor-Anweisungen +Aga +Der Preprocessor muá folgende Anweisungen verarbeiten k”nnen: + +#define  Definiert ein Symbol. +#undef  Nimmt die Definition eines Symbols zurck. +#if, #ifdef, +#ifndef, #elif, +#else und #endif Bedingte šbersetzung. +#include  Eine Datei einschieben. + + Au1paDefault Preprozessor +Aga +Der "Default Preprozessor" erkennt nur die Schlsselw”rter #define und #include. +Groá- und Kleinschreibung wird ignoriert. +Hinter dem Schlsselwort #define muá eine Zahl definiert werden. Hierzu drfen +vorher mit dem Schlsselwort #define definierte Namen verwendet werden. Defines +drfen nicht an beliebiger Stelle in der Datei stehen. +Hinter dem Schlsselwort #include muá ein Dateiname angegeben werden. Der Name +steht in spitzen Klammern oder in Anfhrungszeichen. Beide Formate werden gleich +interpretiert. Includedateien innerhalb von Includedatei werden ignoriert. Die +Includedateien werden in der Reihenfolge in der sie auftreten abgearbeitet. Sie werden +immer vor der Datei abgearbeitet, in der sie definiert sind. +Eine Datei die nur mit dem "Default Preprozessor" bersetzt wird, kann mit dem +Designeditor bearbeitet werden. + Au1paEinfaches Beispiel +Aga +Szenario: Es soll ein kurzes Programm geschrieben werden, um zu sehen, wie das +StarView-Resourcesystem arbeitet. Das Programm heiát "ownrc". + +Af1Sourcedatei "ownrc.cxx". +Aga +Ali/********************************************************** +/# Programm zum Anzeigen einer Dialogbox aus der Resource +/# Dateiname: ownrc.cxx +/# Autor: MM +/# Datum: 31.07.90 +**********************************************************/ +/******************* I N C L U D E S *********************/ +#include +#include +#include +#include // Identifier der Dialogbox + +/******************* C L A S S E S **********************/ +class MyApplication : public Application +{ // Meine Applikationsklasse +public: + void Main( int argc, char* argv[] ); +}; + +class MyDialog : public ModelessDialog +{ // Dialogbox mit einem Flash- und Cancel-Button. + PushButton aPB_Flash; + PushButton aPB_Cancel; +public: + // Der Konstruktor mit ResId zeigt an, daá MyDialog aus + // der Resource geladen wird. + MyDialog( Window* pParent, ResId & rResId ); + void FlashBtnHdl ( Button* ); + void CancelBtnHdl( Button* ); +}; + + paclass MyWindow : public WorkWin +{ +public: + MyWindow( Window* pParent, WinBits aWinStyle ) : +  (pParent, aWinStyle) + { +  // Es wird eine Dialogbox aus der Resource geladen. +  new MyDialog( this, ResId( DLG_CANCEL )); + }; +}; +/*************** G L O B A L V A R I A B L E S ******/ +MyApplication MyApp; // Applikationsinstanz + +/******************* C O D E *****************************/ +/******************* M y Ap p l i c a t i o n **********/ +/*********************************************************/ +|* +|* MyApplication::Main() +|* +|* Beschreibung: Virtuelle Methode, die vom System +|*   gerufen wird, um das Programm zu +|*   starten. +|* Ersterstellung: MM 01.08.90 +|* Letzte Aenderung: MM 03.06.91 +|* +**********************************************************/ +void MyApplication::Main( int, char* argv[] ) +{ + // Applikationsfenster erzeugen. + MyWindow aCancel( NULL, WinBits( WB_APP | WB_MOVEABLE | +        WB_SIZEABLE | +        WB_MINMAX | +        WB_CLOSEABLE )); + // Applikationsfenster anzeigen. + aCancel.Show(); + // Event-Schleife des Fenstersystems starten. + Execute(); +} + + pa/********************************************************** +|* +|* MyDialog::MyDialog() +|* +|* Beschreibung: Konstruktor der Klasse MyDialog. +|*   Dies ist ein typischer Konstruktor, +|*   um Objekte aus der Resource zu +|*   laden. +|*   1. rResId.Lock(), die Resource wird +|*   gelockt. +|*   2. aPB_Flash( this, ResId( PB_FLASH )); +|*   Es wird der Flash-Button geladen. +|*   3. aPB_Cancel( this, ResId( PB_Cancel )); +|*   Es wird der Cancel-Button geladen. +|*   4. rResId.Unlock(), ein Unlock auf +|*   die Resource. +|*   Wurde von keiner abgeleiteten Klasse +|*   ein Lock ausgefhrt, dann wird die +|*   Resource an dieser Stelle freigegeben. +|* Ersterstellung: MM 01.08.90 +|* Letzte Aenderung: MM 03.06.91 +|* +**********************************************************/ +MyDialog::MyDialog( Window* pParent, ResId & rResId ) : +    ( pParent, rResId.Lock()), +     aPB_Flash( this, ResId( PB_FLASH )), +     aPB_Cancel( this, ResId( PB_CANCEL )) +{ + // Handler setzen. + aPB_Flash.ChangeClickHdl +  ( LINK( this, MyDialog::FlashBtnHdl )); + aPB_Cancel.ChangeClickHdl +  ( LINK( this, MyDialog::CancelBtnHdl )); + + rResId.Unlock(); // Resource freigeben. +} + pa/********************************************************* +|* MyDialog::CancelBtnHdl() +|* +|* Beschreibung:  Die Dialogbox wird zerst”rt. +|* Ersterstellung: MM 01.08.90 +|* Letzte Aenderung: MM 14.08.90 +*********************************************************/ +void MyDialog::CancelBtnHdl( Button* ) +{ + // Das L”schen der Dialogbox ist schneller, wenn sie + // vorher nicht mehr sichtbar ist. + Hide(); + // Zerst”ren der DialogBox-Instanz. + delete this; +} + +/********************************************************** +|* MyDialog::FlashBtnHdl() +|* +|* Beschreibung: Die Titlebar der Dialogbox flackert +|*   einmal. +|* Ersterstellung: MM 01.08.90 +|* Letzte Aenderung: MM 14.08.90 +**********************************************************/ +void MyDialog::FlashBtnHdl( Button* ) +{ + FlashWindow(); +} +Aga +Af1Resource-Headerdatei +Aga +Ali/********************************************************** +|* Headerdatei fuer ownrc.src +|* Dateiname: ownrc.hxx +|* Autor: MM +|* Datum: 31.07.90 +*********************************************************/ +#define DLG_CANCEL 300 +#define PB_FLASH  1 +#define PB_CANCEL  2 +#define DLG_PROTOTYPE 301 +Aga + Af1paResource-Beschreibungsdatei +Aga +Ali/********************************************************** +|* Resourcedatei fuer ownrc.cxx +|* Dateiname: ownrc.src +|* Autor: MM +|* Datum: 31.07.90 +**********************************************************/ +#include + +MODELESSDIALOG DLG_PROTOTYPE +{ + Pos  = Map_Pixel( 50, 60 ); + Size = Map_SysFont( 100, 100 ); + TEXT = "Markus zweite Dialogbox"; + MOVEABLE = TRUE; + SIZEABLE = TRUE; + CLOSEABLE = TRUE; + + // Diese Objekte werden automatisch angezeigt. + WinChilds = + { +  PUSHBUTTON +  { +   PosSize = ( 10, 50, 100, 30 ); +   TEXT = "Ok"; +   TABSTOP = TRUE; +  }; +  PUSHBUTTON +  { +   Pos  = ( 130, 50 ); +   Size = ( 100, 30 ); +   TEXT = "Cancel"; +   TABSTOP = TRUE; +  }; + }; +}; + paMODELESSDIALOG DLG_CANCEL +{ + PosSize = ( 50, 60, 100, 100 ); + TEXT = "Markus erste Dialogbox"; + MOVEABLE = TRUE; + SIZEABLE = TRUE; + + PUSHBUTTON PB_FLASH + { +  PosSize = ( 10, 50, 100, 30 ); +  TEXT  = "Flash"; +  TABSTOP = TRUE; + }; + + PUSHBUTTON PB_CANCEL + { +  PosSize = ( 130, 50, 100, 30 ); +  TEXT  = "Abbrechen"; +  TABSTOP = TRUE; + }; + + // Ueber solche Konstruktionen koennen Objekte in der + // Resource automatisch angezeigt werden. + WinChilds = + { +  MODELESSDIALOG , DLG_PROTOTYPE; + }; +}; +Aga + Af1paMakefile +Aga +Wie die Dateien gebildet werden, ist dem StarView-Handbuch und den dazugeh”rigen +Beispielen zu entnehmen. Der Aufruf des Resourcecompilers lautet in diesem Fall: +Aga +Aliownrc.res: ownrc.src ownrc.hrc + rsc -fsownrc.rc -fpownrc.srs +  -foownrc.res -flownrc.lst ownrc.src +Aga +Agaownrc.src ist die Eingabedatei des rsc-Compilers. +ownrc.srs ist ein Zwischenformat des rsc-Compilers. +ownrc.lst ist die Listingdatei des rsc-Compilers. +ownrc.rc ist die Textdatei, die als Eingabe des systemspezifischen Compilers dient. +ownrc.res ist die bin„re Resourcedatei. + +Speziell fr MS-Windows gilt, daá die Resourcedatei an die ".exe"-Datei angebunden +werden kann. +Aga +Ali rc -k ownrc.res ownrc.exe +Aga +AgaMit dieser Zeile wird die Resource an die ".exe"-Datei angebunden. +Aga + Au1paSyntax +Aga +Af1Compiler Anweisungen +Aga#pragma CHARSET IBMPC +#pragma CHARSET ANSI +#pragma CHARSET MAC +Mit diesen Optionen kann angegeben werden, in welchem Zeichensatz die Strings +vorliegen. Der Compiler nimmt dann eine Konvertierung in das Zielsystem vor. Als +Default wird vorausgesetzt, daá die Datei im Zeichensatz des Zielsystems vorliegt. + +Af1Default Preprozessor-Syntax +AliPrepDefinition: +  { IncludeDefinition } +  [{ DefineDefinition }] + +IncludeDefinition: +  '#' include '<' Dateiname '>' | +  '#' include String +Ali +DefineDefinition: +  '#' define SYMBOL NumberExpression + +Af1Klass-Syntax +AliResourceDefinition: +Ali  [ PrepDefinition ] +  { ClassDefinition } + +ClassDefinition: +  ClassHeader ClassBody ';' +  ClassHeader ';' | +  NumberExpression ';' | +  TupelExpression ';' | +  CONSTNAME ';' | +  Boolean ';' | +  String ';' + +ClassHeader: +  CLASSNAME [ Identifier ] [ ',' | '<' Identifier ] + pa +ClassBody: + '{' +  { +   ClassDefinition | +   VariableDefiniton +  } + '}' + +VariableDefinition: +  VARIABLENAME '=' ClassDefinition | +  VARIABLENAME '=' '{' { ClassDefinition } '}' ';' + +TupelExpression: + [ ClassDefinition ] '(' { ClassDefinition } ')' + +NumberExpression: +  [ '-' | '+' ] Number | +  NumberExpression '+' | '-' | '*' | '/' +  NumberExpression | +  [ '-' | '+' ] '(' NumberExpression ')' + +Identifier: +  NumberExpression | +  Symbol + +Number: +  { DEZIMALZIFFER } | +  '0' 'x' { HEXADEZIMALZIFFER } + +Boolean: +  TRUE | FALSE + +AgaString: +Aga  Mit "\57" k”nnen bestimmte Zeichenwerte angegeben werden. +  Der Backslash wird durch "\\" und das Anfhrungszeichen durch "\"" +  angegeben. Die Zahl hinter dem Backslash wird Oktal interpretiert. +Aga + Au1paKlassen-Erkl„rung: Resource -> StarView +Aga +In diesem Abschnitt wird anhand von vollst„ndigen Beispielen erkl„rt, was fr Daten +in welchen StarView-Klassen in der Resource definiert werden k”nnen. + +Die Resource ist wie StarView hierarchisch aufgebaut. Das heiát, alles in einer h”heren +Hierarchiestufe Enthaltene wird in eine tiefere bertragen. Die Namen im nach +folgenden Diagramm sind die Namen der Schlsselw”rter in der Resource, mit Aus +nahme von SystemWindow und Edit. + +Af1Hierarchie: +Aga +AgaResource + String + Icon + Bitmap + Pointer + Brush + Color + Font + Pen + MapMode + Accelerator + AcceleratorKey + Menu + MenuItem + MessBox +  SysMessBox +  InfoBox +  WarningBox +  ErrorBox +  QueryBox + OutputDevice +  Window +   [SystemWindow] +    WorkWindow +     MDIWindow +    [Dialog] +     ModelessDialog +     ModalDialog +   Control +    Button +     CheckBox +      AutoCheckBox +     PushButton +      DefPushButton +     RadioButton +      AutoRadioButton +     TriStateBox +      AutoTriStateBox +    [Edit] +     SingleLineEdit +     MultiLineEdit +    ScrollBar +     AutoScrollBar +    ListBox +     DropDownListBox +     ComboBox +      DropDownComboBox +    FixedText +    FixedIcon +    FixedBitmap +    GroupBox + +Alle Daten, die in Button angegeben werden, k”nnen auch in PushButton oder +CheckBox angegeben werden. Entsprechendes gilt z.B. fr Daten in ListBox, die auch +in ComboBox angegeben werden k”nnen. Eine genauere Erkl„rung folgt nach den +Erl„uterungen der einzelnen Resourcetypen. +Aga + Af1paResource Resource +Aga +Diese Resource definiert Daten fr die StarView-Klasse Resource. + +AgaBeispiel: +Aga +Ali Resource + { +  Comment = "Dies ist ein Kommentar."; +  SingleLineEdit 1 +  { +   Text = "Editfeld"; +  }; +  PushButton 1 +  { +   Check = TRUE; +  }; +  String 1 "Vorname"; +  String 2 "Nachname"; +  String 3 "Adresse"; +  String 4 "Telefon"; +  // Zwei Strings angehaengt +  EXTRADATA = { 2; // Anzahl der Strings +   "Hallo"; "Markus"; +   }; +  // Vier short angehaengt +  EXTRADATA = { 4; // Anzahl der Zahlen +   1; 100; 5; 12; +   }; + }; +Aga +In dieser Klasse k”nnen nur lokale Resourcen definiert werden. + +Wie das Schlsselwort EXTRADATA verwendet wird lesen sie bitte im Kapitel +"Spezielle Resource-Konstrukte" nach. + +Nach dem Schlsselwort COMMENT kann ein Kommentar angegeben werden. Unter +StarView hat diese Angabe keine Funktion. Sie dient zum Beschreiben von Resourcen, +da der Designeditor alle anderen Kommentare l”scht. + +AgaDefault: +Aga +Ali Resource {}; +Aga + Af1Resource String +Aga +Diese Resource definiert Daten fr die StarView-Klasse String. + +AgaBeispiel: +Aga +Ali String 1000 + { +  Text = "Hello World"; + }; +Aga +Als abkrzende Schreibweise ist auch +Ali String 1000 "Hello World"; +Agaerlaubt. +Aga + Af1paResource Icon +Aga +Diese Resource definiert Daten fr die StarView-Klasse Icon. + +AgaBeispiel: +Aga +Ali Icon + { +  Predefine = ICON_DEFAULT; + }; +Aga +Nach dem Schlsselwort PREDEFINE wird ein Icon benannt, das schon in StarView +vorhanden ist. Anstelle von ICON_DEFAULT kann auch ICON_INFORMATION, +ICON_EXCLAMATION, ICON_STOP oder ICON_QUERY geschrieben werden. +Wie diese Icons aussehen, kann im StarView-Handbuch unter der Klasse Icon nach +gelesen werden. + +AgaBeispiel: +Aga +Ali Icon + { +  File = "Icon.ico"; +  //Nur fuer MAC +  Type = ICON_CICN; +  Identifier = 1000; + }; +Aga +Nach dem Schlsselwort FILE wird ein Dateiname angegeben, der auf eine Datei ver +weist, die ein Icon enth„lt. Diese Datei ist systemabh„ngig. + +Nach dem Schlsselwort TYPE wird der Typ des Icons angegeben. Es k”nnen +ICON_ICON und ICON_CICN als Typen angegeben werden. ICON_ICON verweist +auf den Mac-Resourcetyp 'ICON' und ICON_CICN auf den Typ 'cicn'. Diese Angabe +wird nur fr den Mac ben”tigt. + +Nach dem Schlsselwort IDENTIFIER wird der Identifier des Icons in der durch FILE +spezifizierten Datei angegegeben. Diese Angabe wird nur fr den Mac ben”tigt. + +Werden PREDEFINE und FILE angegeben, wird eins der beiden Schlsselw”rter +gew„hlt. + +AgaDefault: +Aga +Ali Icon + { +  Predefine = ICON_DEFAULT; + }; +Aga +Fr IDENTIFIER und TYPE gibt es keinen Default. + Af1paResource Bitmap +Aga +Diese Resource definiert Daten fr die StarView-Klasse Bitmap. +Aga +AgaBeispiel: +Aga +Ali Bitmap + { +  File = "Bitmap.bmp"; +  // Nur fuer Mac +  //TYPE = ; Es gibt nur einen Typ +  Identifier = 1000; + }; +Aga +Nach dem Schlsselwort FILE wird ein Dateiname angegeben, der auf eine Datei ver +weist, die eine Bitmap enth„lt. Diese Datei ist systemabh„ngig. + +Nach dem Schlsselwort TYPE wird der Typ der Bitmap angegeben. Dieses +Schlsselwort ist fr zuknftige Erweiterungen. Der Mac-Resourcetyp ist 'PICT'. +Diese Angabe wird nur fr den Mac ben”tigt. + +Nach dem Schlsselwort IDENTIFIER wird der Identifier der Bitmap in der durch +FILE spezifizierten Datei angegegeben. Diese Angabe wird nur fr den Mac ben”tigt. + +AgaDefault: +Aga +Ali Bitmap + { +  File = ""; + }; +Aga +Der Default ergibt immer einen Fehler. Fr IDENTIFIER und TYPE gibt es keinen +Default. + + Af1paResource Pointer +Aga +Diese Resource definiert Daten fr die StarView-Klasse Pointer. + +AgaBeispiel: +Aga +Ali Pointer + { +  Predefine = POINTER_ARROW; + }; +Aga +Nach dem Schlsselwort PREDEFINE wird ein Pointer benannt, der schon in +StarView vorhanden ist. Anstelle von POINTER_ARROW kann auch +POINTER_WAIT, POINTER_CROSS oder POINTER_BEAM geschrieben werden. +Wie diese Pointer aussehen, ist im StarView-Handbuch unter der Klasse Pointer +nachzulesen. + +AgaBeispiel: +Aga +Ali Pointer + { +  File = "Pointer.pnt"; +  // Nur fuer Mac +  Identifier = 1000; + }; +Aga +Nach dem Schlsselwort FILE wird ein Dateiname angegeben, der auf eine Datei ver +weist, die einen Pointer enth„lt. Diese Datei ist systemabh„ngig. + +Nach dem Schlsselwort IDENTIFIER wird der Identifier des Pointers in der durch +FILE spezifizierten Datei angegegeben. Diese Angabe wird nur fr den Mac ben”tigt. + +Nach dem Schlsselwort TYPE wird der Typ des Pointers angegeben. Dieses +Schlsselwort ist fr zuknftige Erweiterungen. Der Mac-Resourcetyp ist 'CURS'. +Diese Angabe wird nur fr den Mac ben”tigt. + +Werden PREDEFINE und FILE angegeben, wird eine der beiden M”glichkeiten +ausgew„hlt. + +AgaDefault: +Aga +Ali Pointer + { +  Predefine = POINTER_ARROW; + }; +Aga +Fr IDENTIFIER und TYPE gibt es keinen Default. + + +Af1Resource Brush +Aga +Diese Resource definiert Daten fr die StarView-Klasse Brush. + +AgaBeispiel: +Aga +Ali Brush + { +  Style  = BRUSH_SOLID; +  Transparent = TRUE; +  BrushColor = Color +  { +   RGB = (0, 0, 0); +  }; +  FillColor = Color +  { +   RGB = (65535, 65535, 65535); +  }; + }; +Aga +Nach dem Schlsselwort STYLE wird der Stil einer Brush benannt. Die Stile sind in +StarView vordefiniert. Anstelle von BRUSH_SOLID kann auch +BRUSH_HORZ,  BRUSH_VERT,  BRUSH_CROSS, +BRUSH_DIAGCROSS,  +BRUSH_UPDIAG, BRUSH_DOWNDIAG, +BRUSH_BITMAP,  BRUSH_25,  BRUSH_50, +BRUSH_75,   BRUSH_NULL geschrieben werden. Wie diese Stile +aussehen, ist im StarView-Handbuch unter der Klasse Brush nachzulesen. + +Nach dem Schlsselwort TRANSPARENT kann TRUE oder FALSE angegeben +werden. FALSE bedeutet, daá die Brush transparent ist, bei TRUE wird die Brush mit +der Fllfarbe hinterlegt. +Aga +Die Farbe BRUSHCOLOR ist die Farbe des Musters. +Die Farbe FILLCOLOR ist die Farbe in den Lcken innerhalb des Musters. + +AgaBeispiel: +Aga +Ali Brush + { +  Bitmap +  { +   File = "Bitmap.bmp"; +  }; + }; +Aga +Die angegebene Bitmap wird als Brush verwendet. Die Color- und Style-Eintr„ge sind +wirkungslos. Das Format der Bitmap ist dem StarView-Handbuch zu entnehmen. + +Wird BITMAP in Kombination mit FILLCOLOR, BRUSHCOLOR oder STYLE +verwendet, wird eine der M”glichkeiten gew„hlt. + +AgaDefault: +Aga +Ali Brush + { +  Style  = BRUSH_SOLID; +  Transparent = FALSE; + }; +Aga +Welche Defaults fr FILLCOLOR und BRUSHCOLOR verwendet werden, ist im +StarView-Handbuch unter der Klasse Brush nachzulesen. +Au2 + Af1paResource Color +Aga +Diese Resource definiert Daten fr die StarView-Klasse Color. + +AgaBeispiel: +Aga +Ali Color + { +  RGB = ( 32768, 0, 32768); + }; +Aga +Nach dem Schlsselwort RGB wird der Rot-, Grn- und Blauanteil einer Farbe defi +niert. Das erste Element im Tupel steht fr Rot, das zweite fr Grn und das dritte fr +Blau. Die Intensit„t kann mit Werten im Bereich von 0 bis 65535 angegeben werden. + +AgaBeispiel: +Aga +Ali Color + { +  Red = 1; +  Green = 2; +  Blue = 3; + }; +Aga +Durch das Schlsselwort RED wird die Rotanteil bestimmt. +Durch das Schlsselwort GREEN wird die Grnanteil bestimmt. +Durch das Schlsselwort BLUE wird die Blauanteil bestimmt. +Aga +Beispiel: +Aga +Ali Color + { +  Predefine = COL_BLACK; + }; +Aga + AgapaNach dem Schlsselwort PREDEFINE wird eine Farbe benannt. Die Farben sind in +StarView vordefiniert. Anstelle von COL_BLACK kann auch +COL_BLUE,   COL_GREEN,  + COL_CYAN, +COL_RED,   COL_MAGENTA,  COL_BROWN, +COL_GRAY,   COL_LIGTHGRAY,  COL_LIGHTBLUE, +COL_LIGHTGREEN,  COL_LIGHTCYAN,  COL_LIGHTRED, +COL_LIGHTMAGENTA,  COL_YELLOW,  COL_WHITE, +COL_MENUBAR,  COL_MENUBARTEXT,  +COL_POUPMENU, +COL_POPUPMENUTEXT, COL_3DTEXT,  COL_3DFACE, +COL_3DLIGHT,  COL_3DSHADOW,  COL_USER +geschrieben werden. Wie diese Farben aussehen, ist im StarView-Handbuch unter der +Klasse Color nachzulesen. +Aga +Default: +Aga +Ali Color + { +  Predefine = COL_USER; // RGB gltig +  RGB = (0, 0, 0); // schwarz + }; +Aga + Af1paResource Font +Aga +Diese Resource definiert die Daten fr die StarView-Klasse Font. + +AgaBeispiel: +Aga +Ali Font + { +  Family  = FAMILY_DECORATIVE; +  Weight  = WEIGHT_DONTKNOW; +  CharSet  = CHARSET_ANSI; +  Pitch   = PITCH_FIXED; +  Align   = ALIGN_BOTTOM; +  Height  = 12; +  Width   = 6; +  CharOrientation = 0; +  LineOrientation = 0; +  Italic  = TRUE; +  Underline  = TRUE; +  StrikeOut  = TRUE; +  Transparent = TRUE; +  Shadow  = TRUE; +  Outline  = TRUE; +  Text   = "FontName"; +  FontColor  = Color { RGB = ( 0, 0, 0 ); }; +  FillColor  = Color { Predefine = COL_RED; }; + }; +Aga +AgaNach dem Schlsselwort FAMILY wird eine Font-Familie benannt. Die Font-Familien +sind in StarView vordefiniert. Anstelle von FAMILY_DECORATIVE kann auch +FAMILY_SCRIPT, FAMILY_MODERN, FAMILY_ROMAN, FAMILY_SWISS, +FAMILY_SYSTEM oder FAMILY_DONTCARE geschrieben werden. Was diese +Font-Familien bewirken, ist im StarView-Handbuch unter der Klasse Font +nachzulesen. +Aga +AgaNach dem Schlsselwort WEIGHT wird ein weiteres Attribut des Fonts benannt. Diese +Attribute sind in StarView vordefiniert. Anstelle von WEIGHT_DONTKNOW kann +auch WEIGHT_LIGHT, WEIGHT_NORMAL oder WEIGHT_BOLD geschrieben +werden. Was dieses Attribut bewirkt, ist im StarView-Handbuch unter der Klasse Font +nachzulesen. +Aga +AgaNach dem Schlsselwort CHARSET wird der Zeichensatz des Fonts benannt. Anstelle +von CHARSET_ANSI kann auch CHARSET_DONTKNOW, CHARSET_IBMPC, +CHARSET_MAC oder CHARSET_SYMBOL geschrieben werden. + Aga + paNach dem Schlsselwort PITCH wird ein weiteres Attribut des Fonts benannt. Anstelle +von PITCH_FIXED kann auch PITCH_DONTKNOW oder PITCH_VARIABLE +geschrieben werden. +Aga +Nach dem Schlsselwort ALIGN wird die Ausrichtung des Fonts benannt. Anstelle +von ALIGN_BOTTOM kann auch ALIGN_TOP oder ALIGN_BASELINE geschrie +ben werden. +Aga +Nach dem Schlsselwort HEIGHT wird die H”he eines Fonts angegeben. Der Zahlen +bereich umfaát Werte von 0 bis 65535. + +Nach dem Schlsselwort WIDTH wird die Breite eines Fonts angegeben. Der Zahlen +bereich umfaát Werte von 0 bis 65535. + +Nach dem Schlsselwort CHARORIENTATION wird die Drehung der Zeichen ange +geben. Die Angabe der Drehung erfolgt in Zehntelgrad. Der Zahlenbereich umfaát +Werte von 0 bis 3600. + +Nach dem Schlsselwort LINEORIENTATION wird die Drehung der Ausgabezeile +angegeben. Die Angabe der Drehung erfolgt in Zehntelgrad. Der Zahlenbereich umfaát +Werte von 0 bis 3600. + +Nach dem Schlsselwort ITALIC kann TRUE oder FALSE angegeben werden. Bei +TRUE handelt es sich um einen kursiven Font, bei FALSE um einen nicht kursiven +Font.??? + +Nach dem Schlsselwort UNDERLINE kann TRUE oder FALSE angegeben werden. +Bei TRUE handelt es sich um einen unterstrichenen Font, bei FALSE ist der Font nicht +unterstrichen. + +Nach dem Schlsselwort STRIKEOUT kann TRUE oder FALSE angegeben werden. +Bei TRUE handelt es sich um einen durchgestrichenen Font, bei FALSE ist der Font +nicht durchgestrichen. + +Nach dem Schlsselwort TRANSPARENT kann TRUE oder FALSE angegeben +werden. Bei TRUE werden die Zeichen mit der Fllfarbe ausgefllt, bei FALSE +werden die Zeichen nicht ausgefllt. + +Nach dem Schlsselwort SHADOW kann TRUE oder FALSE angegeben werden. Bei +TRUE werden die Zeichen mit Schatten ausgegeben, bei FALSE gibt es keinen +Schatten. + +Nach dem Schlsselwort OUTLINE kann TRUE oder FALSE angegeben werden. Bei +TRUE wird nur der Umriss der Zeichen ausgegeben, bei FALSE werden die Zeichen + normal dargestellt. + +Nach dem Schlsselwort TEXT wird der Name des Fonts angegeben. + +Die Farbe FONTCOLOR ist die Farbe des Fonts. +Die Farbe FILLCOLOR ist die Farbe der Lcken zwischen den Zeichen. + + AgapaDefault: +Aga +Ali Font + { +  Family  = FAMILY_DONTKNOW; +  Weight  = WEIGHT_NORMAL; +  CharSet  = CHARSET_DONTKNOW; +  Pitch   = PITCH_DONTKNOW; +  Align   = ALIGN_TOP; +  Height  = 0; +  Width   = 0; +  CharOrientation = 0; +  LineOrientation = 0; +  Italic  = FALSE; +  Underline  = FALSE; +  StrikeOut  = FALSE; +  Transparent = FALSE; +  Shadow  = FALSE; +  OutLine  = FALSE; +  Text   = ""; + }; +Aga +Welche Defaults fr FONTCOLOR und FILLCOLOR verwendet werden, ist im +StarView-Handbuch unter der Klasse Font nachzulesen. +Au2 + Af1paResource Pen +Aga +Diese Resource definiert die Daten fr die StarView-Klasse Pen. + +AgaBeispiel: +Aga +Ali Pen + { +  Width  = 1; +  Style  = PEN_DASH; +  PenColor = Color +  { +   Predefine = COL_BLACK; +  }; + }; +Aga +Hinter dem Schlsselwort WIDTH wird die Breite des Stiftes angegeben. Der Zahlen +bereich umfaát Werte von 0 bis 65536. +Hinter dem Schlsselwort Style wird der Linientyp des Stiftes angegeben. Die Typen +sind in StarView vordefiniert. Anstelle von PEN_DASH kann auch PEN_NULL, +PEN_SOLID, PEN_DOT oder PEN_DASHDOT geschrieben werden. Wie diese +Typen aussehen, ist im StarView-Handbuch unter der Klasse Pen nachzulesen. +Aga +Default: +Aga +Ali Pen + { +  Width = 0; +  Style = PEN_NULL; +  PenColor = Color; +  { +   RGB = (0, 0, 0); +  }; + }; +Aga + Af1paResource MapMode +Aga +Diese Resource definiert Daten fr die StarView-Klasse MapMode. + +AgaBeispiel: +Aga +Ali MapMode + { +  MapUnit = MAP_SYSFONT; +  X  = 20; +  Y  = 30; +  xScale = ( 2, 1 ); +  yScale = ( 1, 1 ); + }; +Aga +Nach dem Schlsselwort MAPUNIT wird eine Einheit des Koordinatensystems defi +niert. Die Einheiten sind in StarView vordefiniert. Anstelle von MAP_SYSFONT kann +auch MAP_100TH_MM, MAP_10TH_MM, MAP_MM, MAP_CM, +MAP_1000TH_INCH, MAP_100TH_INCH, MAP_10TH_INCH, MAP_INCH, +MAP_POINT, MAP_TWIP, MAP_PIXEL oder MAP_APPFONT geschrieben +werden. Was dies fr Einheiten sind, ist im StarView-Handbuch unter der Klasse +MapMode nachzulesen. + +Nach den Schlsselw”rtern X und Y wird der Ursprung des Koordinatensystems ange +geben. Die Einheiten sind die nach MapUnit definierten. Der Zahlenbereich umfaát +Werte von 0 bis 65535. + +Nach den Schlsselw”rtern XSCALE und YSCALE wird der Streckungsfaktor des +Koordinatensystems in x- bzw. in y-Richtung angegeben. Der Zahlenbereich umfaát +Werte von -32768 bis 32767. + +AgaDefault: +Aga +Ali MapMode + { +  MapUnit = MAP_APPFONT; +  X = 0; +  Y = 0; +  xScale = ( 1, 1 ); +  yScale = ( 1, 1 ); + }; +Aga + Af1paResource Accelerator +Aga +Diese Resource definiert die Daten der StarView-Klasse Accelerator. + +AgaBeispiel: +Aga +Ali Accelerator + { +  HelpText = "Hilfetext"; +  KeyList = +  { +   AcceleratorKey +   { +    Identifier = 1; +    Disable = FALSE; +    Modifier1 = TRUE; +    Code = KEY_D; +   }; +   AcceleratorKey +   { +    Identifier = 2; +    Disable = FALSE; +    Modifier1 = TRUE; +    Code = KEY_F1; +   }; +  }; + }; +Aga +Nach dem Schlsselwort HELPTEXT wird der Hilfetext des Accelerators angegeben. + +Im Accelerator k”nnen beliebig viele Acceleratortasten angegeben werden. + +AgaDefault: +Aga +Ali Accelerator + { +  HelpText = ""; + }; +Aga + Af1paResource AcceleratorKey +Aga +Diese Resource definiert keine Daten einer StarView-Klasse. Diese Resource kann bei +der Methode InsertAccelerator() der Klasse Accelerator angegeben werden. + +Um diese Beschreibung verstehen zu k”nnen, ist es unbedingt notwendig, im +StarView-Handbuch die Beschreibung der Klassen Accelerator und KeyCode zu lesen. + +AgaBeispiel: +Aga +Ali AcceleratorKey + { +  Identifier  = 1; +  Disable  = FALSE; +  Shift   = TRUE; +  Modifier1  = TRUE; +  Modifier2  = TRUE; +  Code   = KEY_A; +  SubAccelerator = Accelerator +  { +   KeyList = { +    AcceleratorKey{ ... }; +    AcceleratorKey{ ... }; +   }; +  }; + }; +Aga +Nach dem Schlsselwort IDENTIFIER wird eine Zahl angegeben, die zur Identifi +kation dient. Der Definitionsbereich umfaát Werte von 1 bis 65535. + +Nach dem Schlsselwort DISABLE kann TRUE oder FALSE angegeben werden. Bei +TRUE ist die Acceleratortaste inaktiv, bei FALSE aktiv. + +Nach dem Schlsselwort SHIFT kann TRUE oder FALSE angegeben werden. Bei +TRUE wird der Modifier KEY_SHIFT zum Keycode gesetzt, FALSE hat keine Bedeu +tung. + paNach dem Schlsselwort MODIFIER1 kann TRUE oder FALSE angegeben werden. +Bei TRUE wird der Modifier KEY_MOD1 zum Keycode gesetzt, FALSE hat keine +Bedeutung. + +Nach dem Schlsselwort MODIFIER2 kann TRUE oder FALSE angegeben werden. +Bei TRUE wird der Modifier KEY_MOD2 zum Keycode gesetzt, FALSE hat keine +Bedeutung. + +AgaNach dem Schlsselwort CODE wird ein Tastencode angegeben. Die Tastencodes sind +in StarView vordefiniert. Anstelle von KEY_A kann auch ein Wert aus +KEY_0 ... KEY_9, KEY_A ... KEY_Z, KEY_F1 ... KEY_F24, KEY_DOWN, +KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_HOME, KEY_END, KEY_PAGEUP, +KEY_PAGEDOWN, KEY_RETURN, KEY_ESCAPE, KEY_TAB, KEY_SPACE, +KEY_BACKSPACE, KEY_INSERT, KEY_DELETE, KEY_NUMLOCK, +KEY_SHIFTLOCK oder KEY_SCROLLLOCK geschrieben werden. +Aga +In einer Acceleratortaste kann genau ein Accelerator definiert werden. Dieser +Accelerator wird an die Acceleratortaste angeh„ngt. +Aga +AgaDefault: +Aga +Ali AcceleratorKey + { +  Identifier = nId; //nicht definiert +  DISABLE = FALSE; +  Shift  = FALSE; +  Modifier1 = FALSE; +  Modifier2 = FALSE; +  Code  = nKey; // nicht definiert + }; +Aga +Fr nId und nKey gibt es keinen definierten Default. +Au2 + Af1paResource Menu +Aga +Diese Resource definiert die Daten der StarView-Klassen PopupMenu und MenuBar. + +AgaBeispiel: +Aga +Ali Menu + { +  ItemList = +  { +   MenuItem +   { +    Text = "Laden"; +    Identifier = 1; +   }; +   MenuItem +   { +    Text = "Speichern"; +    Identifier = 2; +   }; +   MenuItem +   { +    Separator = TRUE; +   }; +   MenuItem +   { +    Text = "Beenden"; +    Identifier = 3; +   }; +  }; + }; +Aga +In Menu k”nnen beliebig viele Men-Items angegeben werden. Sie werden in der +Reihenfolge, in der sie aufgeschrieben werden, im Men aufgefhrt. + +Nach dem Schlsselwort SEPARATOR kann TRUE oder FALSE angegeben werden. +Bei TRUE werden Men-Items visuell voneinander getrennt. + +AgaDefault: +Aga +Ali Menu {}; +Aga + Af1paResource MenuItem +Aga +Diese Resource definiert keine Daten einer StarView-Klasse. Diese Resource kann bei +der Methode InsertItem() der Klasse Menu angegeben werden. + +AgaBeispiel: +Aga +Ali MenuItem + { +  Text  = "MenuItem"; +  HelpText = "Hilfetext"; +  Identifier = 1; +  HelpId = 1001: +  Check  = TRUE; +  Disable = TRUE; +  SubMenu = Menu +  { +   ItemList = +   { +    MenuItem{ ... }; +    MenuItem{ ... }; +   }; +  }; + }; +Aga +Nach dem Schlsselwort TEXT wird der Text des Men-Items angegeben. + +Nach dem Schlsselwort HELPTEXT wird der Hilfetext des Men-Items angegeben. + +Nach dem Schlsselwort IDENTIFIER wird eine Zahl angegeben, die zur Identifi +kation dient. Der Definitionsbereich umfaát Werte von 1 bis 65535. + +Nach dem Schlsselwort HELPID wird eine Zahl angegeben. Diese Zahl ist ein +Hilfeidentifier (eine Referenz ins Hilfesystem). Der Definitionsbereich umfaát Werte +von 0 bis 4294967295. Es k”nnen auch die vordefinierten Werte HELP_INDEX und +HELP_HELPONHELP benutzt werden. + +Nach dem Schlsselwort CHECK kann TRUE oder FALSE angegeben werden. Bei +TRUE hat das Men-Item eine Auswahlmarkierung, bei FALSE hat es keine Auswahl +markierung. + +Nach dem Schlsselwort DISABLE kann TRUE oder FALSE angegeben werden. Bei +TRUE ist der Zugriff auf das Men-Item nicht m”glich, bei FALSE ist der Zugriff +m”glich. + +In einem Men-Item kann genau ein Men definiert werden. Dieses Men wird an das +Men-Item angeh„ngt (SubMenu). + +AgaBeispiel: +Aga +Ali MenuItem + { +  Identifier = 1; +  ItemBitmap = Bitmap +  { +   File = "bitmap.bmp"; +  }; + }; +Aga +Anstelle eines Textes wird in dem Men-Item diese Bitmap ausgegeben. + +AgaBeispiel: +Aga + MenuItem + { +  Separator = TRUE; + }; + +Das Men-Item verh„lt sich wie ein Separator (siehe Menu). + +Werden TEXT, SEPARATOR oder BITMAP gleichzeitig verwendet, wird eine der +drei M”glichkeiten gew„hlt. + +AgaDefault: +Aga +Ali MenuItem + { +  Text  = ""; +  HelpText = ""; +  Identifier = nId; //nicht definiert +  HelpId = 0; +  Check  = FALSE; +  Disable = TRUE; + }; +Aga +Fr nId gibt es keinen definierten Default. +Au2 + Af1paResource MessBox +Aga +Diese Resource definiert die Daten der StarView-Klasse MessBox. + +AgaBeispiel: +Aga +Ali MessBox + { +  Title   = "Ich bin eine Messagebox."; +  Message  = "Guten Morgen"; +  HelpText  = "Hilfe"; +  Buttons  = WB_OK; +  DefaultButton = WB_DEF_OK; +  HelpId  = 1; + }; +Aga +Der Text nach dem Schlsselwort TITLE wird der Titel der Box. Einige Boxen haben +einen festen Titel. Welche dies sind, ist dem StarView-Handbuch zu entnehmen. + +Der Text nach dem Schlsselwort MESSAGE wird in der Messagebox angezeigt. + +Nach dem Schlsselwort HELPTEXT wird der Hilfetext angegeben. Was diese Text +angabe bewirkt, ist dem StarView-Handbuch unter der Klasse Window zu entnehmen. + +Nach dem Schlsselwort BUTTONS wird angegeben, welche Buttons in der +Messagebox angezeigt werden sollen. Die Werte sind in StarView vordefiniert. Im +StarView-Handbuch unter der Klasse MessBox ist nachzulesen, wann welche Buttons +angezeigt werden. Anstelle von WB_OK kann auch WB_OK_CANCEL, +WB_YES_NO, WB_YES_NO_CANCEL, oder WB_RETRY_CANCEL angegeben +werden. + +Nach dem Schlsselwort DEFAULTBUTTON wird angegeben, welcher Button in der +Messagebox der Default-Button ist. Anstelle von WB_DEF_OK kann auch +WB_DEF_CANCEL, WB_DEF_RETRY, WB_DEF_YES, oder WB_DEF_CANCEL +geschrieben werden. + +Nach dem Schlsselwort HELPID wird eine Zahl angegeben. Diese Zahl ist ein +Hilfeidentifier (eine Referenz ins Hilfesystem). Der Definitionsbereich umfaát Werte +von 0 bis 4294967295. Es k”nnen auch die vordefinierten Werte HELP_INDEX und +HELP_HELPONHELP benutzt werden. + +AgaDefault: +Aga +Ali MessBox + { +  Title  = ""; +  Message = ""; +  HelpText = ""; +  Buttons = WB_OK; +  HelpId = 0; + }; +Aga +AgaWird kein Default-Button angegeben, dann wird vom System einer ausgew„hlt. +Aga + + +Af1Resource SysMessBox +Aga +Diese Resource definiert die Daten der StarView-Klasse SysMessBox. + +AgaBeispiel: +Aga +Ali SysMessBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + +Af1Resource InfoBox +Aga +Diese Resource definiert die Daten der StarView-Klasse InfoBox. + +AgaBeispiel: +Aga +Ali InfoBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + +Af1Resource WarningBox +Aga +Diese Resource definiert die Daten der StarView-Klasse WarningBox. + +AgaBeispiel: +Aga +Ali WarningBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + +Af1Resource ErrorBox +Aga +Diese Resource definiert die Daten der StarView-Klasse ErrorBox. + +AgaBeispiel: +Aga +Ali ErrorBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + +Af1Resource QueryBox +Aga +Diese Resource definiert die Daten der StarView-Klasse QueryBox. + +AgaBeispiel: +Aga +Ali QueryBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + + Af1paResource OutputDevice +Aga +Diese Resource definiert Daten der StarView-Klasse OutputDevice. + +AgaBeispiel: +Aga +Ali OutputDevice + { +  OutputPen  = Pen +  { +   Width = 2; +  }; +  BackGroundBrush = Brush +  { +   Style = BRUSH_CROSS; +  }; +  FillInBrush = Brush +  { +   Style = BRUSH_SOLID; +  }; +  OutputFont = Font +  { +   Height = 12; +   Width = 8; +   Text = "Helvetica"; +  }; +  OutputMapMode = MapMode +  { +   MapUnit = MAP_MM; +  }; + }; +Aga + paMit OUTPUTPEN kann der Default-Pen des Output-Devices angegeben werden. + +Mit der Brush BACKGROUNDBRUSH wird die Default-Background-Brush??? des +Output-Devices angegeben. + +Mit der Brush FILLINBRUSH wird die Default-Fill-In-Brush??? des Output-Devices +angegeben. + +Mit FONT wird der Default-Font des Output-Devices angegeben. +Mit OUTPUTMAPMODE wird der Default-Mapping-Mode des Output-Devices ange +geben. +Aga +Default: +Aga +Ali OutputDevice {}; +Aga +Welche Defaults in diesem Fall fr Pen, Brush, Font und MapMode verwendet +werden, ist dem StarView-Handbuch unter der Klasse OutputDevice zu entnehmen. + + Af1paResource Window +Aga +Diese Resource definiert die Daten der StarView-Klasse Window. + +AgaBeispiel: +Aga +Ali Window + { +  Pos   = MAP_MM( 0, 0 ); +  Size   = MAP_MM( 100, 50 ); +  Text   = "Fenstertext"; +  HelpText  = ""; +  HelpId  = 1001; +  Border  = TRUE; +  Hide   = TRUE; +  ClipChildren = TRUE; +  Disable  = TRUE; +  WindowPointer = Pointer +  { +   Predefine = POINTER_CROSS; +  }; +Ali }; +Aga +Nach dem Schlsselwort POS wird die Position des Fensters angegeben. Ob die +Positionierung relativ zu einem anderen Fenster erfolgt, ist dem StarView-Handbuch +unter der Klasse Window zu entnehmen. Die MapUnit MAP_MM ist die Einheit fr +die im Tupel folgende x- und y-Position. Anstelle von MAP_MM kann eine beliebige +MapUnit angegeben werden, diese Angabe kann auch weggelassen werden. Der +Zahlenbereich umfaát Werte von -32768 bis 32767. + +Nach dem Schlsselwort SIZE wird die Gr”áe des Fensters angegeben. Die MapUnit +MAP_MM ist die Einheit fr die im Tupel folgende Breiten- und H”henangabe. +Anstelle von MAP_MM kann eine beliebige MapUnit angegeben werden, diese +Angabe kann auch weggelassen werden. Der Zahlenbereich umfaát Werte von -32768 +bis 32767. + +Nach dem Schlsselwort TEXT wird der Fenstertext angegeben. Was diese Text +angabe bewirkt, ist dem StarView-Handbuch unter der Klasse Window zu entnehmen. + +Nach dem Schlsselwort HELPTEXT wird der Hilfetext angegeben. Was diese Text +angabe bewirkt, ist dem StarView-Handbuch unter der Klasse Window zu entnehmen. + +Nach dem Schlsselwort HELPID wird eine Zahl angegeben. Diese Zahl ist ein +Hilfeidentifier (eine Referenz ins Hilfesystem). Der Definitionsbereich umfaát Werte + von 0 bis 4294967295. Es k”nnen auch die vordefinierten Werte HELP_INDEX und +HELP_HELPONHELP benutzt werden. + +Nach dem Schlsselwort BORDER kann TRUE oder FALSE angegeben werden. Bei +TRUE erh„lt das Fenster einen Rahmen, FALSE hat keine Bedeutung. + +Nach dem Schlsselwort HIDE kann TRUE oder FALSE angegeben werden. Bei +TRUE ist das Fenster nach dem Erzeugen nicht sichtbar, bei FALSE ist es sichtbar +(Parent-Beziehung beachten!). + +Nach dem Schlsselwort CLIPCHILDREN kann TRUE oder FALSE angegeben +werden. Bei TRUE werden die ChildWindows beim Zeichnen des Parents nicht +berschrieben, bei FALSE werden sie berschrieben. + +Nach dem Schlsselwort DISABLE kann TRUE oder FALSE angegeben werden. Bei +TRUE ist der Zugriff auf das Fenster nicht m”glich, bei FALSE ist der Zugriff m”glich +(Parent-Beziehung beachten!). + + +Mit WINDOWPOINTER wird der Default-Pointer des Fensters angegeben. + +AgaBeispiel: +Aga +Ali Window + { +  PosSize = MAP_MM( 0, 0, 100, 50 ); +  TEXT  = "Fenstertext"; + }; +Aga +Nach dem Schlsselwort POSSIZE werden die Position und die Gr”áe des Fensters +angegeben. Fr die MapUnit gilt das gleiche wie bei POS und SIZE. Der +Zahlenbereich umfaát Werte von -32768 bis 32767. + +Wird POSSIZE zusammen mit POS und SIZE verwendet, wird eine der M”glichkeiten +ausgew„hlt. + +AgaDefault: +Aga +Ali Window + { +  HelpId  = 0; +  Border  = FALSE; +  Hide   = FALSE; +  ClipChildren = FALSE; +  Disable  = FALSE; + }; +Aga +Fr WindowPointer, Text, HelpText, Pos und Size werden die Systemdefaults +verwendet. Welche Defaults verwendet werden, ist dem StarView-Handbuch unter der +Klasse Window zu entnehmen. +Af1 + +Resource SystemWindow +Aga +Dieses Schlsselwort kann nicht angegeben werden. + +Um diese Beschreibung verstehen zu k”nnen, ist es unbedingt notwendig, im +StarView-Handbuch die Beschreibung der Klasse SystemWindow und aller von ihr +abgeleiteten Klassen zu lesen. + +AgaBeispiel: +Aga +Ali [SystemWindow] + { +  Sizeable  = TRUE; +  Moveable  = TRUE; +  Minimize  = TRUE; +  Maximize  = TRUE; +  Closeable  = TRUE; +  App   = TRUE; +  OutputSize  = TRUE; +  WinChilds = +  { +   FText +   { +    PosSize = MAP_SYSFONT( 0, 0, 80, 10 ); +    Text = "Name:"; +   }; +  }; +  DefPushButton 1 +  { +   Text = "Ok"; +  }; +  PushButton 2 +  { +   Text = "Cancel"; +  }; +  SingleLineEdit 3 +  { +   PosSize = MAP_SYSFONT( 80, 0, 120, 10 ); +  }; + }; +Aga +Nach dem Schlsselwort SIZEABLE kann TRUE oder FALSE angegeben werden. Bei +TRUE kann das Fenster vergr”áert und verkleinert werden, bei FALSE kann die Gr”áe +nicht ver„ndert werden. + +Nach dem Schlsselwort MOVEABLE kann TRUE oder FALSE angegeben werden. +Bei TRUE kann das Fenster bewegt werden, bei FALSE kann es nicht bewegt werden. + +Nach dem Schlsselwort MINIMIZE kann TRUE oder FALSE angegeben werden. Bei +TRUE kann das Fenster minimiert werden, bei FALSE kann es nicht minimiert +werden. + +Nach dem Schlsselwort MAXIMIZE kann TRUE oder FALSE angegeben werden. +Bei TRUE kann das Fenster maximiert werden, bei FALSE kann es nicht maximiert +werden. + +Nach dem Schlsselwort CLOSEABLE kann TRUE oder FALSE angegeben werden. +Bei TRUE kann das Fenster geschlossen werden, bei FALSE kann es nicht geschlos +sen werden. + +Nach dem Schlsselwort APPLICATION kann TRUE oder FALSE angegeben +werden. TRUE bedeutet, daá das Fenster das Applikationsfenster ist, FALSE hat keine +Bedeutung. + +Nach dem Schlsselwort OUTPUTSIZE kann TRUE oder FALSE angegeben werden. +Bei TRUE ist bezieht sich die Gr”áenangabe auf die "OutputSize" des Fensters. + +Nach dem Schlsselwort WINCHILDS wird ein Textfenster angelegt. Dieses Fenster +wird automatisch erzeugt. Anstelle von FTEXT kann jede in der Hierarchie unter +Window stehende Resource angegeben werden. + +Nach dem Schlsselwort PUSHBUTTON 1 wird ein Button definiert. Auf diese +Resource kann ber den Identifier 1 zugegriffen werden. Der Identifier kann im +Bereich von 1 bis 255 liegen. Anstelle von PushButton kann jede in der Hierarchie +unter Resource stehende Resource angegeben werden. + + AgapaDefault: +Aga +Ali [SystemWindow] 7 + { +  Sizeable = FALSE; +  Moveable = FALSE; +  Minimize = FALSE; +  Maximize = FALSE; +  Closeable = FALSE; +  App  = FALSE; +  OutputSize = FALSE; + }; +Aga + Af1paResource WorkWindow +Aga +Diese Resource definiert die Daten der StarView-Klasse WorkWindow. + +AgaBeispiel: +Aga +Ali WorkWindow + { +  Show   = MAXIMIZE; +  WorkWindowIcon = Icon +  { +   Predefine = ICON_STOP; +  }; + }; +Aga +Nach dem Schlsselwort SHOW wird angegeben, wie das Fenster angezeigt wird. +Anstelle von MAXIMIZE kann auch NORMAL und MINIMIZE angegeben werden. +MAXIMIZE bedeutet, daá das Fenster so groá wie m”glich dargestellt wird, bei +MINIMIZE wird das Fenster so klein wie m”glich dargestellt (iconic). NORMAL +bedeutet, daá das Fenster in den angegebenen Koordinaten dargestellt wird. + +WorkWindowIcon ist das Sinnbild, das dargestellt wird, wenn das Fenster minimiert +wird. + +AgaDefault: +Aga +Ali WorkWindow + { +  Show = NORMAL; + }; +Aga +Was angezeigt wird, wenn kein Icon angegeben wird, ist im StarView-Handbuch unter +der Klasse WorkWindow nachzulesen. + + Af1paResource MDIWindow +Aga +Diese Resource definiert die Daten der StarView-Klasse MDIWindow. + +AgaBeispiel: +Aga +Ali MDIWindow {}; +Aga +Es ist nur der Typ des Fensters entscheidend, es sind keine zus„tzlichen Angaben m”g +lich. +Au2 + +Af1Resource Dialog +Aga +Diese Schlsselwort kann nicht angegeben werden. +Diese Resource definiert die Daten der StarView-Klasse Dialog. + +AgaBeispiel: +Aga +Ali [Dialog] {}; +Aga +Es ist nur der Typ des Fensters entscheidend, es sind keine zus„tzlichen Angaben m”g +lich. +Au2 + +Af1Resource ModelessDialog +Aga +Diese Resource definiert die Daten der StarView-Klasse ModelessDialog. + +AgaBeispiel: +Aga +Ali ModelessDialog {}; +Aga +Es ist nur der Typ des Fensters entscheidend, es sind keine zus„tzlichen Angaben m”g +lich. +Au2 + pa +Af1Resource ModalDialog +Aga +Diese Resource definiert die Daten der StarView-Klasse ModalDialog. + +AgaBeispiel: +Aga +Ali ModalDialog + { +  SysModal = TRUE; + }; +Aga +Nach den Schlsselwort SYSMODAL kann TRUE oder FALSE angegeben werden. +Wird FALSE angegeben, dann ist die Dialogbox applikationsmodal, sonst +systemmodal. + +Systemmodal bedeutet, daá das ganze System angehalten wird und nur in dieser +Dialogbox gearbeitet werden kann. Applikationsmodal bedeutet, daá die Applikation +angehalten wird und applikationsweit nur in dieser Dialogbox gearbeitet werden kann. +Weiteres siehe StarView-Handbuch bei den Klassen Dialog, ModalDialog und +ModelessDialog. + +AgaDefault: +Aga +Ali ModalDialog + { +  SysModal = FALSE; + }; + Af1paResource Control +Aga +Diese Resource definiert die Daten der StarView-Klasse Control. + +AgaBeispiel: +Aga +Ali Control + { +  TabStop = TRUE; +  Group  = TRUE; + }; +Aga +Nach dem Schlsselwort TABSTOP kann TRUE oder FALSE angegeben werden. Bei +TRUE ist das Tabstop-Attribut gesetzt, bei FALSE ist es nicht gesetzt. + +Nach dem Schlsselwort GROUP kann TRUE oder FALSE angegeben werden. Bei +TRUE ist das Group-Attribut gesetzt, bei FALSE ist es nicht gesetzt. + +Was diese Attribute bewirken, ist im StarView-Handbuch unter den Klassen Control +und Dialog nachzulesen. + +AgaDefault: +Aga +Ali Control + { +  TabStop = FALSE; +  Group  = FALSE; + }; +Aga +Af1Resource Button +Aga +Diese Resource definiert die Daten der StarView-Klasse Button. + +AgaBeispiel: +Aga +Ali Button {}; + +AgaNur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + + + Af1paResource CheckBox +Aga +Diese Resource definiert die Daten der StarView-Klasse CheckBox. + +Beispiel: +Aga +Ali CheckBox + { +  Check = TRUE; + }; +Aga +Nach dem Schlsselwort CHECK kann TRUE oder FALSE angegeben werden. Bei +TRUE wird ein Button als angeklickt gekennzeichnet. Dies gilt nur fr Buttons, bei +denen solch eine Kennzeichnung vorgesehen ist. + +AgaDefault: +Aga +Ali CheckBox + { +  Check = FALSE; + }; +Aga +Af1Resource AutoCheckBox +Aga +Diese Resource definiert die Daten der StarView-Klasse AutoCheckBox. + +AgaBeispiel: +Aga +Ali AutoCheckBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + +Af1Resource PushButton +Aga +Diese Resource definiert die Daten der StarView-Klasse PushButton. + +AgaBeispiel: +Aga +Ali PushButton {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. +Af1Resource DefPushButton + Aga +Diese Resource definiert die Daten der StarView-Klasse DefPushButton. + +AgaBeispiel: +Aga +Ali DefPushButton {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + +Af1Resource RadioButton +Aga +Diese Resource definiert die Daten der StarView-Klasse RadioButton. + +Beispiel: +Aga +Ali RadioButton + { +  Check = TRUE; + }; +Aga +Nach dem Schlsselwort CHECK kann TRUE oder FALSE angegeben werden. Bei +TRUE wird ein Button als angeklickt gekennzeichnet. Dies gilt nur fr Buttons, bei +denen solch eine Kennzeichnung vorgesehen ist. + +AgaDefault: +Aga +Ali RadioButton + { +  Check = FALSE; + }; +Aga +Af1Resource AutoRadioButton +Aga +Diese Resource definiert die Daten der StarView-Klasse AutoRadioButton. + +AgaBeispiel: +Aga +Ali AutoRadioButton {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. +Au2 +Af1Resource TriStateBox + Aga +Diese Resource definiert die Daten der StarView-Klasse TriStateBox. + +Beispiel: +Aga +Ali TriStateBox + { +  TriStateDisable = TRUE; +  TriState  = STATE_CHECK; + }; +Aga +Nach dem Schlsselwort TRISTATEDISABLE kann TRUE oder FALSE angegeben +werden. Bei TRUE k”nnen nur die Zustande STATE_CHECK und +STATE_NOCHECK eingenommen werden, sonst ist noch der Zustand +STATE_DONTKNOW m”glich. + +Nach dem Schlsselwort TRISTATE kann STATE_NOCHECK, STATE_CHECK +und STATE_DONTKNOW angegeben werden. + +AgaDefault: +Aga +Ali TriStateBox + { +  TriStateDisable = FALSE; +  TriState  = STATE_NOCHECK; + }; +Aga +Af1Resource AutoTriStateBox +Aga +Diese Resource definiert die Daten der StarView-Klasse AutoTriStateBox. + +AgaBeispiel: +Aga +Ali AutoTriStateBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + Af1paResource Edit +Aga +Dieses Schlsselwort kann nicht angegeben werden. +Diese Resource definiert die Daten der StarView-Klasse Edit. + +AgaBeispiel: +Aga +Ali [Edit] + { +  Center  = TRUE; +  Left   = FALSE; +  Right   = FALSE; +  MaxTextLength = 10; + }; +Aga +Nach dem Schlsselwort LEFT kann TRUE oder FALSE angegeben werden. Bei +TRUE wird der Text linksbndig ausgegeben. + +Nach dem Schlsselwort CENTER kann TRUE oder FALSE angegeben werden. Bei +TRUE wird der Text zentriert ausgegeben. + +Nach dem Schlsselwort RIGHT kann TRUE oder FALSE angegeben werden. Bei +TRUE wird der Text rechtsbndig ausgegeben. + +Werden LEFT, CENTER und RIGHT auf TRUE gesetzt, wird eine der M”glichkeiten +ausgew„hlt. Sind sie alle FALSE, wird der Text linksbndig ausgegeben. + +Nach dem Schlsselwort MAXTEXTLENGTH wird die maximale Anzahl der Ein +gabezeichen festgelegt. Ist der Wert = 0, k”nnen beliebig viele Zeichen eingegeben +werden. Der Definitionsbereich umfaát Werte von 0 bis 65535. + +AgaDefault: +Aga +Ali [Edit] + { +  Left   = FALSE; +  Center  = FALSE; +  Right   = FALSE; +  MaxTextLength = 0; + }; + Af1paResource SingleLineEdit +Aga +Diese Resource definiert die Daten der StarView-Klasse SingleLineEdit. + +AgaBeispiel: +Aga +Ali SingleLineEdit {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. +Au2 + Af1paResource MultiLineEdit +Aga +Diese Resource definiert die Daten der StarView-Klasse MultiLineEdit. + +AgaBeispiel: +Aga +Ali MultiLineEdit + { +  HScroll = TRUE; +  VScroll = TRUE; + }; +Aga +Nach dem Schlsselwort HSCROLL kann TRUE oder FALSE angegeben werden. Bei +TRUE wird nach links gescrollt, wenn bei der Eingabe der rechte Rand erreicht ist. + +Nach dem Schlsselwort VSCROLL kann TRUE oder FALSE angegeben werden. Bei +TRUE wird nach unten gescrollt, wenn bei der Eingabe der untere Rand erreicht ist. + +AgaDefault: +Aga +Ali MultiLineEdit + { +  HSCROLL = FALSE; +  VSCROLL = FALSE; + }; +Aga + Af1paResource ScrollBar +Aga +Diese Resource definiert die Daten der StarView-Klasse ScrollBar. + +AgaBeispiel: +Aga +Ali ScrollBar + { +  MinPos = 1; +  MaxPos = 112; +  ThumbPos = 30; +  PageSize = 8; +  LineSize = 2; +  HSCROLL = TRUE; +  VSCROLL = FALSE; + }; +Aga +Nach dem Schlsselwort MINPOS wird die minimale Position des Thumbs angegeben. +Der Definitionsbereich umfaát Werte von -32768 - 32767. + +Nach dem Schlsselwort MAXPOS wird die maximale Position des Thumbs +angegeben. Der Definitionsbereich umfaát Werte von -32768 - 32767. + +Nach dem Schlsselwort THUMBPOS wird die Position des Thumbs angegeben. Der +Definitionsbereich umfaát Werte von -32768 - 32767. + +Nach dem Schlsselwort PAGESIZE wird die Ver„nderung bei seitenweisem Scrollen +angegeben. Der Definitionsbereich umfaát Werte von -32768 - 32767. + +Nach dem Schlsselwort LINESIZE wird die Ver„nderung bei schrittweisem Scrollen +angegeben. Der Definitionsbereich umfaát Werte von -32768 - 32767. + +Nach dem Schlsselwort HSCROLL kann TRUE oder FALSE angegeben werden. Bei +TRUE bekommt man eine horizontale Scrollbar. + +Nach dem Schlsselwort VSCROLL kann TRUE oder FALSE angegeben werden. Bei +TRUE bekommt man eine vertikale Scrollbar. + pa +AgaDefault: +Aga +Ali ScrollBar + { +  MinPos = 0; +  MaxPos = 100; +  ThumbPos = 0; +  PageSize = 10; +  LineSize = 1; +  VSCROLL = FALSE; +  HSCROLL = FALSE; + }; +Aga +Aga +Af1Resource AutoScrollBar +Aga +Diese Resource definiert die Daten der StarView-Klasse AutoScrollBar. +Aga +AgaBeispiel: +Aga +Ali AutoScrollBar {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + + Af1paResource ListBox +Aga +Diese Resource definiert die Daten der StarView-Klasse ListBox. + +AgaBeispiel: +Aga +Ali ListBox + { +  Sort  = TRUE; +  CurPos = 3; +  StringList = +  { +    "Ich"; "bin"; "eine"; "ListBox."; +  }; +  StringList  = +  { +   "Beliebig"; "viele"; "StringLists."; +  }; + }; +Aga +Nach dem Schlsselwort SORT kann TRUE oder FALSE angegeben werden. Bei +TRUE werden die Strings in der Listbox sortiert, bei FALSE werden sie in der Reihen +folge ausgegeben, in der sie aufgeschrieben werden. + +Nach dem Schlsselwort CURPOS wird die Position eines Strings angegeben. Der +Definitionsbereich umfaát Werte von 0 - 32535. Der String, der an der angegebenen +Position in der Listbox steht, wird selektiert. Hat die Listbox weniger Eintr„ge, wird +der ???String selektiert. + +Nach dem Schlsselwort STRINGLIST k”nnen Strings angegeben werden. Die Strings +werden in der Reihenfolge in die Listbox gestellt, in der sie angegeben werden. + +AgaDefault: +Aga +Ali ListBox + { +  Sort = FALSE; +  CurPos = 0; + }; +Aga +Wird STRINGLIST ausgelassen, stehen keine Strings in der Listbox. + + Af1paResource DropDownListBox +Aga +Diese Resource definiert die Daten der StarView-Klasse DropDownListBox. + +AgaBeispiel: +Aga +Ali DropDownListBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + +Af1Resource ComboBox +Aga +Diese Resource definiert die Daten der StarView-Klasse ComboBox. + +AgaBeispiel: +Aga +Ali ComboBox + { +  MaxTextLength = 10; + }; +Aga +Nach dem Schlsselwort MAXTEXTLENGTH wird die maximale Anzahl der Ein +gabezeichen festgelegt. Ist der Wert = 0, k”nnen beliebig viele Zeichen eingegeben +werden. Der Definitionsbereich umfaát Werte von 0 bis 65535. + +Default: + +Ali ComboBox + { +  MaxTextLength = 0; + }; +Aga +Af1Resource DropDownComboBox +Aga +Diese Resource definiert die Daten der StarView-Klasse DropDownComboBox. + +AgaBeispiel: +Aga +Ali DropDownComboBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + + +Af1Resource FixedText +Aga +Diese Resource definiert die Daten der StarView-Klasse FixedText. + +AgaBeispiel: +Aga +Ali FixedText + { +  Right = TRUE; + }; +Aga +AgaNach dem Schlsselwort LEFT kann TRUE oder FALSE angegeben werden. Bei +TRUE wird der Text linksbndig ausgegeben. + +Nach dem Schlsselwort CENTER kann TRUE oder FALSE angegeben werden. Bei +TRUE wird der Text zentriert ausgegeben. + +Nach dem Schlsselwort RIGHT kann TRUE oder FALSE angegeben werden. Bei +TRUE wird der Text rechtsbndig ausgegeben. + +Werden LEFT, CENTER und RIGHT auf TRUE gesetzt, wird eine der M”glichkeiten +ausgew„hlt. Sind sie alle FALSE, wird der Text linksbndig ausgegeben. + +AgaDefault: +Aga +Ali FixedText + { +  Left = FALSE; +  Center = FALSE; +  Right = FALSE; + }; +Aga + +Af1Resource FixedIcon +Aga +Diese Resource definiert die Daten der StarView-Klasse FixedIcon. + +AgaBeispiel: +Aga +Ali FixedIcon + { +  Fixed = Icon { Predefine = ICON_QUERY; }; + }; + Aga +AgaNach dem Schlsselwort FIXED kann ein Icon angeben werden. Dieses Icon wird in +dem Control zentriert ausgegeben. + +AgaDefault: +Aga +Ali FixedIcon + { +  Fixed = Icon{}; + }; +Aga + +Af1Resource FixedBitmap +Aga +Diese Resource definiert die Daten der StarView-Klasse FixedBitmap. + +AgaBeispiel: +Aga +Ali FixedBitmap + { +  Fixed = Bitmap { File = "schmett.bmp"; }; + }; +Aga +AgaNach dem Schlsselwort FIXED kann eine Bitmap angeben werden. Diese Bitmap +wird in dem Control zentriert ausgegeben. + +AgaDefault: +Aga +Ali FixedBitmap + { +  Fixed = Bitmap{}; + }; +Aga + +Af1Resource GroupBox +Aga +Diese Resource definiert die Daten der StarView-Klasse GroupBox. + +AgaBeispiel: +Aga +Ali GroupBox {}; +Aga +Nur der Typ des Fensters ist entscheidend, es sind keine zus„tzlichen Angaben +m”glich. + paSpezielle Resource-Konstrukte +Aga +Af1Globale, lokale Resourcen +Aga +Globale Resourcen sind Resourcen, die auáerhalb jeder anderen Resource definiert +sind. Lokale Resourcen sind innerhalb einer anderen Resource definiert. Lokale +Resourcen mssen einen Identifier im Bereich von 1 bis 255 haben, globale Resourcen +einen Identifier im Bereich von 256 bis 32767. + +AgaBeispiel: +Aga +AliWindow 1000 +{ + Text = "Info"; + DefPushButton 1 + { +  Text = "Ok"; + }; +}; +Aga +In diesem Fall ist WINDOW 1000 eine globale Resource und DEFPUSHBUTTON 1 +eine lokale Resource. + + Af1paReferenzen +Aga +Wird eine Resource mehr als nur einmal ben”tigt, so kann diese Resource als globale +Resource definiert und an anderer Stelle darauf verwiesen werden. + +AgaBeispiel: +Aga +AliDefPushButton 1000 +{ + Text = "Ok"; +}; +Window 1000 +{ + Text = "Info"; + DefPushButton 1, 1000; +}; +Aga +Die Konstruktion DEFPUSHBUTTON 1, 1000 ist eine Referenz auf den +DefPushButton 1000, wobei 1 die ID innerhalb der Window-Resource ist. Das heiát, +im Programm greift man ber die ID 1 auf diese Resource zu. + +Eine Referenz kann immer angegeben werden, wenn eine Resource-Definition erwartet +wird. Beim Erstellen einer ".rc"-Datei mssen alle Referenzen aufgel”st werden +k”nnen. + +Af1Lokale Resourcen +Aga +Lokale Resourcen k”nnen in jeder Resource-Definition angegeben werden. + +Af1Beispiel: +Aga +AliWindow 1000 +{ + Text = "Info"; + PushButton  1, 1000; + DefPushButton 2, 1001; + SingleLineEdit 3, 1002; + Color  4 { RGB = (0, 0, 0); }; + Color  5 { RGB = (65535, 0, 0); }; +}; +Aga +In diesem Beispiel sind drei Controls und zwei Farben als lokale Resource angegeben. +Auf die Resourcen kann ber die Identifier 1 bis 5 zugegriffen werden. + Af1paBenutzerdaten +Aga +Mit Hilfe der EXTRADATA-Konstruktion k”nnen in einer Resource beliebige Daten +definiert werden. + +Beispiel: + +AliWindow 1000 +{ + Text = "Info"; + ExtraData = + { +  "Hallo"; 1; -10; + }; + ExtraData = + { +  1; 2; 3; 4; + }; +Ali}; +Aga +Nach dem Schlsselwort EXTRADATA k”nnen Strings und ganze Zahlen angegeben +werden. Der Definitionsbereich der Zahlen reicht von -32536 bis 32535. + +In der Resource stehen die Daten in folgendem Format: +Aga +Apl- Die Benutzerdaten werden hinter die vordefinierten Daten geschrieben. +- Sie werden in der Reihenfolge abgelegt, in der sie aufgeschrieben worden sind. +- Strings sind Null-terminiert. Sie belegen immer eine gerade Anzahl von Bytes im +Speicher. Der ben”tigte Platz errechnet sich also wie folgt: + Platzbedarf = Stringl„nge + 1 + ( Stringl„nge + 1 ) MOD 2; + benutzen Sie die Methode GetStringSizeRes() der Klasse Resource. +- Zahlen sind zwei Byte lang und processorspezifisch gedreht. +Aga + Af1paDefault-Initialisierung +Aga +Beim Angeben einer Resource ist diese mit bestimmten Werten vorbesetzt. Die +Resource kann aber auch durch eine andere globale Resource initialisiert werden, so +daá die Resource die Daten der globalen Resource enth„lt. + +Beispiel: + +AliWindow 1000 +{ + Text = "Info"; + PosSize = MAP_SYSFONT( 0, 0, 160, 40 ); + Border = TRUE; + Moveable = TRUE; + Closeable = TRUE; + DefPushButton 1, 1000; + ExtraData = { 10; }; +}; +Window 1001 < Window 1000 +{ + Moveable = FALSE; + FixedText 2 + { // Fuázeile +  Disable = TRUE; +  Size  = MAP_SYSFONT( 160, 4 ); + }; +}; +Aga +Das WINDOW 1001 bernimmt alle Daten von WINDOW 1000, definiert noch eine +lokale Resource hinzu und „ndert das MOVEABLE-Attribut. Es werden auch alle +lokalen Resourcen und alle Benutzerdaten bernommen. Bei den lokalen Resourcen +kann es leicht zu Identifier-Konflikten kommen. Es ist zu beachten, daá die Resource, +von der die Daten bernommen werden sollen, von beliebigem Typ sein kann. Es +werden alle Daten ab der gemeinsamen Superklasse bernommen. Das heiát von der +Klasse Resource werden immer alle Daten bernommen. + + + Au1paFehlermeldungen +Aga +Af1Aufbau der Fehlermeldung: +AgaDie Ausgabe der Fehler hat folgendes Format: +1. Zeile in der der Fehler aufgetreten ist. +2. Position an der der Fehler aufgetreten ist. +3. Fehlernummer: Error ( Typ, Identifier ): Fehlermeldung. + +Afp256 Allgemeiner Fehler, dieser Fehler kann nicht nicht +genauer spezifiziert werden. +257 Eine virtuelle Methode die in der abgeleiteten Klasse +nicht implementiert ist. Siehe Methoden der Klasse +RscInst: SetString(), SetNumber .... Man kann die +Fehlermeldung als Typfehler betrachten, das heiát +dieser Typ darf nicht verwendet werden. +258 Die Datei mit dem angegebenen Namen konnte nicht +ge”ffnet werden. +259 Es konnte kein Zeichen generiert werden. Zum Beispiel +kann '\333' nicht in ein Zeichen umgewandelt werden. +260 Interner Fehler, eine Methode soll auf eine ungltige +Instanz angewendet werden. +261 Es wird eine Kommandozeilenhilfe ausgegeben (rsc -h). +262 Es wurde keine Eingabedatei angegeben. +263 In der Kommandozeile wurde ein unbekannter Schalter +verwendet. +264 Referenzen werden nur bis zu einer bestimmten Tiefe +aufgel”st. Der Fehler bedeutet, das Referenzen rekursiv +definiert wurden oder daá sie zu tief verschachtelt sind. +512 Allgemeiner Fehler. +513 Es wurde versucht eine Zahl einzusetzen, die auáerhalb +des Wertebereichs liegt. +528 Allgemeiner Fehler. +544 Allgemeiner Fehler. +578 Allgemeiner Fehler. +579 Allgemeiner Fehler. +580 Es wurde versucht eine Resourcrinstanz mit falschem +Typ verwendet. +608 Allgemeiner Fehler. +609 Allgemeiner Fehler. +610 Fr ein Makro soll eine Name verwendet werden, der +schon belegt ist. Namen k”nnen zum Beispiel schon fr +Variablen vergeben sein. +640 Allgemeiner Fehler. +641 Zwei globale Resourcen haben den gleichen Identifier. + 642 Der verwendete Typ ist nicht erlaubt. +643 Die Variable darf hier nicht verwendet werden. +644 Der Zahlenwert ist auáerhalb von [0, 0xFFFF]. +645 Der Zahlenwert ist auáerhalb von [0, 0x7FFF]. +646 Defaultresource wurde nicht gefunden. Eine +Resourceinstanz kann mit einer anderen initialisiert +werden. Diese ander Instanz wurde nicht gefunden. +647 An dieser Stelle ist die Angabe einer Referenz verboten. +648 Ein Makroname soll doppelt vergeben werden. +649 Die Angabe einer Defaultresource ist verboten. +650 Ein Identifier muá Angegeben werden. +651 Es sollte durch Null geteilt werden. +652 Fehler in der Pragmaanweisung. +653 Das Makro wurde durch weitere Makro's erkl„rt, die +nicht in den entsprechenden Include-Dateien stehen. + +Es folgen Warnungen. +4098 Resourcen die sich innerhalb einer anderen Resource +befinden (Unterresourcen) haben ein Identifier ber 255. +4099 Globale Resourcen haben einen Identifier unter 256. +4100 Die Unterresource werden nicht beachtet. Das bedeutet, +daá auf diese Resourcen zur Laufzeit nicht zugegriffen +werden kann. +4101 Die Resourcen haben einen keinen Identifier. Auf diese +Resourcen kann zur Laufzeit nicht zugegriffen werden. +4102 Beim schreiben ein rc-Datei konnte eine Stringreferenz +nicht aufgel”st werden. +4103 Beim schreiben ein rc-Datei konnte eine Referenz nicht +aufgel”st werden. Wenn auf Unterresourcen zugegriffen +wird, die sich in der referenzierten Resource befinden, +dann kann ein Laufzeitfehler auftreten. +4104 Zwei Unterresource mit gleichem Typ haben den +gleichen Identifier. + + SsvAgaPA +Au0Stichwortverzeichnis +Aga +AsvCompiler Anweisungen 16 +Resource Accelerator 33 +Resource AcceleratorKey 34 +Resource AutoCheckBox 50 +Resource AutoRadioButton 51 +Resource AutoScrollBar 55 +Resource Bitmap 22 +Resource Brush 24 +Resource CheckBox 50 +Resource Color 26 +Resource ComboBox 57 +Resource DefPushButton 51 +Resource DialogBox 48 +Resource DropDownComboBox 57 +Resource DropDownListBox  57 +Resource FixedText 58 +Resource Font 28 +Resource GroupBox 58 +Resource Icon 21 +Resource ListBox 56 +Resource MapMode 32 +Resource MDIWindow 48 +Resource Menu 36 +Resource MenuItem 37 +Resource MessageBox 39 +Resource MultiLineEdit 53 +Resource OutputDevice 40 +Resource Pen 31 +Resource Pointer 22 +Resource PushButton 50 +Resource RadioButton 51 +Resource Resource 20 +Resource ScrollBar 54 +Resource SingleLineEdit 52 +Resource String 20 +Resource SystemWindow 44 +Resource Window 42 +Resource WorkWindow 47 +Resource Button 49 +Resource Control 49 + + Aga + \ No newline at end of file diff --git a/binfilter/qa/cppunit/data/sdw/pass/rscerror.sdw b/binfilter/qa/cppunit/data/sdw/pass/rscerror.sdw new file mode 100644 index 000000000..f6e48c962 --- /dev/null +++ b/binfilter/qa/cppunit/data/sdw/pass/rscerror.sdw @@ -0,0 +1,2119 @@ +.\\\ WRITER 6 \\\ +S:\APP\SW5\STARLAB.LAY +R:\SW55N\TREIBER\PS.GPM +12 +00000 +00010 +01394 +00001 +00001 +00001 +00002 +00002 +00000 +00000 +00000 +00000 +Markus Meyer +Spezifikation +Rsc-Compiler +Fehlerbehandlung + + + + + + +0 +16836 +11338 +0 +0 +JA +3 +75 +0 +20 +0 +0 +0 +0 +0 +0 +0 +JA + + + +9 +20 +4 +Helvetica 14 Pt +H1 +97 +20 +0 + +Helvetica 12 Pt +H2 +65 +23 +0 + +Helvetia 10 Pt +H3 +65 +20 +0 + +Courier 10 Pt +C1 +1 +23 +0 + +Helvetica 14 Pt Fett +F1 +65 +27 +2 + +Helvetica 12 Pt Fett +F2 +65 +23 +2 + +Helvetia 10 Pt Fett +F3 +65 +20 +0 + +Tasten +T1 +129 +27 +0 + +Grundschrift +GA +97 +20 +0 + +Grund - Absatzlayout V1.5-LSLP8 +GA +0 +0 +0 +0 +9 +97 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Grundabsatzlayout-rechtsbndig +GR +0 +0 +0 +0 +9 +35 +20 +0 +2 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Listing +LI +0 +0 +0 +0 +0 +1 +23 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift +U0 +0 +0 +0 +0 +5 +35 +28 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X. +U1 +0 +0 +0 +0 +5 +35 +28 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +1 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X. +U2 +0 +0 +0 +0 +6 +35 +24 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +2 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X.X. +U3 +0 +0 +0 +0 +6 +35 +20 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +3 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X.X.X. +U4 +0 +0 +0 +0 +7 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +4 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X.X.X.X. +U5 +0 +0 +0 +0 +7 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +5 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 4 Sp / 4 Sp +E1 +576 +576 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 8 Sp / 8 Sp +E2 +1150 +1150 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 0 Sp / 4 Sp +E3 +0 +564 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 4 Sp / 8 Sp +E4 +564 +1150 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Funktionsparameter +FP +0 +2891 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Inhaltsverzeichnis +IV +0 +0 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7653 +0 +0 +Stichwortverzeichnis +SV +0 +0 +0 +0 +9 +35 +20 +0 +1 +141 +1 +JA +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +3744 +1 +0 +Fettschrift einzeilig +F1 +0 +0 +0 +0 +7 +65 +20 +2 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Punktliste +PL +0 +564 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +566 +0 +0 +1133 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Fuázeile +FZ +0 +0 +0 +0 +3 +97 +20 +2 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7200 +1 +0 +Kopfzeile +KZ +0 +0 +0 +0 +3 +97 +20 +2 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7920 +1 +0 +Grund-Seitenlayout +GS +566 +609 +2436 +679 +1416 +1416 +0 +0 +1 +NEIN +0 +0 + +AkzBf3#_PFAD##_TEXTNAME# 6-#_S#- +Bf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +AfzBf3$Date: 22 Jan 1992 12:40:36 $ $Revision: 1.1 $ + +Stichwortverzeichnis +SV +566 +609 +2437 +680 +1416 +1416 +566 +0 +2 +NEIN +0 +0 + +AliBf3Stichwortverzeichnis +AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +ÄÄÄÄÄÄÄ + +Ali6Bf3- #_S# -B00 + +GS - ohne Fuázeile +KF +566 +609 +2437 +680 +1416 +1416 +0 +0 +1 +NEIN +0 +0 + +AliBf3#_KATEGORIE# / #_THEMA2# +AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Ali + +Inhaltsverzeichnis +IV +566 +609 +2437 +680 +1416 +1416 +0 +0 +1 +NEIN +0 +0 + +AliBf3Inhaltsverzeichnis +AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +ÄÄÄÄÄÄÄ + +Ali + + + + +0 + +0 + +SkfAga + + + + + + + + + +Au0 #_KATEGORIE# +Aga + +Au0 #_THEMA2# +Aga + +Au0 +Aga + + + + + + + + + + + + +Au0 #_AUTOR# +Aga + +Au0 STAR DIVISION / STAR LAB Hamburg +Aga + +Au0 Stand: $Date: 22 Jan 1992 12:40:36 $ +Aga + +Sgs + SkfAgaPA + + +Au0#_KATEGORIE# +Aga + + +AfpDokumentenname #_THEMA2# +Aga +AfpProjektname #_THEMA1# +Aga +AfpVersionsnummer $Revision: 1.1 $ +Aga + +Afperstellt 16. September 1991 +Aga +Afpge„ndert $Date: 22 Jan 1992 12:40:36 $ +Aga + +AfpDateiname #_PFAD##_TEXTNAME# +Aga + +AfpAutor #_AUTOR# +Aga +AfpBearbeiter $Author: MM $ +Aga +AfpQualit„tskontrolle +Aga + +AfpStatus XX in Arbeit +Afp !__ fertiggestellt +Afp !__ abgenommen +Afp !__ freigegeben +Aga + +AfpVertraulich __ Ja XX Nein +Aga + +AfpCopyright (C) Star Division 1990 +Aga + Sgspa +Au1#1 Einleitung +Aga +In diesem Dokument werden die Klassen beschrieben, die die Fehlerbehandlung organisieren. + +Hinweise zur Implementation +Bevor eine dieser Klassen benutzt wird, muá die Funktion InitRscCompiler aufgerufen werden. + AgaPA +Au1#2 Klassenbeschreibung +Aga +AgaERRTYPE: +Diese Klasse enth„lt eine Fehler- oder eine Warnungsnummer. + +RscError: +Diese Klasse bernimmt die Ausgabe der Fehlermeldungen. + +Au1#3 Globale Funktionen +Aga +RscExit(): +Die Funktion muá von jedem Programm implementiert werden, die Klassen aus dem rsc-System +benutzen. Die Funktion bedeutet, daá das Programm sofort beendet werden muá, weil ein +scherwiegender Programmfehler aufgetreten ist. + + SivPA + +Au0Inhaltsverzeichnis +Aga +Aiv1. Einleitung M3 +2. Klassenbeschreibung D4 +3. Globale Funktionen E4 +ERRTYPE S6 +RscError R10 +::RscExit() O15 +Stichwortverzeichnis F17 +Sgs +Au0 +Aga + Au0PAERRTYPE +Aga +Aliclass ERRTYPE { +public: + ERRTYPE(); + ERRTYPE( USHORT nErr ); + ERRTYPE& operator = ( const ERRTYPE & rError ); + operator USHORT(); + BOOL IsError(); + BOOL IsOk(); + BOOL IsWarning(); + void Clear(); +}; + +#define ERR_OK +#define ERR_ERROREND +#define ERR_WARNING +#define ERR_WARNINGEND +Aga +Af1Beschreibung +Aga +Eine Instanz dieser Klassen enth„lt entweder eine Fehler- oder eine Warnungsnummer oder keines von +beiden. Zu beachten ist, daá eine Fehlernummer nicht berschrieben werden kann (!der erste Fehler ist +interressant ). + +Af1Anmerkungen +AgaWarnungen werden von Fehlernummern berschrieben, aber nicht von Warnungsnummern. + +Af1Querverweise +Aga +Klasse: RscError. + +Af1Beispiel +Aga +Ali..... +ERRTYPE aError; + +aError = ERR_OPENFILE; +aError = ERR_ERROR; +if( ERR_OPENFILE == aError ) + printf( "Fehler: Datei kann nicht g”ffnet werden!\n" ); +else + printf( "Fehler: Allgemeiner Fehler!\n"); +..... +Aga +AgaDie Ausgabe heiát: +Fehler: Datei kann nicht ge”ffnet werden! + + Au0PAERRTYPE::ERRTYPE() +Aga +AliERRTYPE::ERRTYPE(); +ERRTYPE::ERRTYPE( USHORT nErrNo ); +ERRTYPE::ERRTYPE( const ERRTYPE & rError ); +Aga +Af1Beschreibung +Aga +Die wird eine Instanz ERRTYPE erzeugt. + +Af1Parameter +Aga +AfpnErrNo diese Zahl ist der Fehler der in die Instanz eingetragen wird. +rError aus dieser Instanz wird der Fehler bernommen. +Aga +Af1Anmerkungen +Aga +Wird der leere Konstruktor verwendet, dann ist die Fehlernummer ERR_OK. Die Methode IsOk() +liefert TRUE. + +Af1Querverweise +Aga +Klassen: RscError +Methoden: IsError(), IsOk(), Clear(). + +Af1Beispiel +AgaHier wird gezeigt wie Fehler zugewiesen und berschrieben werden. + +AliERRTYPE aErr; +printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: TRUE +aErr = WRN_LOCALID; //Warnung zuweisen +printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: TRUE +printf( aErr.IsWarning() ? "TRUE", "FALSE" );//Ausg.: TRUE +printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: FALSE +aErr = ERR_ERROR; //Fehler zuweisen +printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: FALSE +printf( aErr.IsWarning() ? "TRUE", "FALSE" );//Ausg.: FALSE +printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: TRUE +aErr = ERR_OK; //Fehler aufheben geht so nicht +printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: FALSE +printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: TRUE +aError.Clear(); //Fehler aufheben +printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: TRUE +printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: FALSE +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0ERRTYPE::operator =() +Aga +AliERRTYPE & ERRTYPE::operator &( const ERRTYPE & rErr ); +Aga +Af1Beschreibung +Aga +Der Zuweisungsoperator kopiert den Fehler oder die Warnung von rErr in die Instanz. Ein kopieren +findet nicht statt, wenn in der Instanz schon ein Fehler eingetragen wurde. + +Af1Parameter +Aga + AfprErr aus dieser Instanz wird der Fehler bernommen. +Aga +Af1Return-Werte +Aga +Die eigene Instanz wird zurckgeliefert. + +Af1Querverweise +Aga +Methoden: operator USHORT(). + +Af1Beispiel +Aga +AliERRTYPE aError( ERR_RSCRANGE ); +printf( ERR_RSCRANGE == aError ? "TRUE" : "FALSE" ); + //Ausgabe: TRUE +//Versuch den Fehler zu ueberschreiben (geht nicht) +aError = ERRTYPE( ERR_ERROR ); +printf( ERR_ERROR == aError ? "TRUE" : "FALSE" ); + //Ausgabe: FALSE +aError.Clear(); +aError = ERRTYPE( ERR_ERROR ); +printf( ERR_ERROR == aError ? "TRUE" : "FALSE" ); + //Ausgabe: TRUE +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0ERRTYPE::operator USHORT() +Aga +AliERRTYPE::operator USHORT(); +Aga +Af1Return-Werte +Aga +Die Fehlernummer in der Instanz wird zurckgeliefert. + +Af1Querverweise +Aga +Methoden: operator =(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0ERRTYPE::IsError() +Aga +AliBOOL ERRTYPE::IsError(); +Aga +Af1Beschreibung +Aga +Diese Methode zeigt an ob in der Instanz eine Fehlernummer steht, die einen Fehler anzeigt. + +Af1Return-Werte +Aga +AfpTRUE wenn die Fehlernummer im Bereich [0, ERR_ERROREND] liegt. +FALSE wenn die Fehlernummer im Bereich ]ERR_ERROREND, 0xFFFF +"] liegt. +Aga +Af1Querverweise +Aga +Methoden: IsOk(), IsWarning(), Clear(). + Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0ERRTYPE::IsOk() +Aga +AliBOOL ERRTYPE::IsOk(); +Aga +Af1Beschreibung +Aga +Diese Methode zeigt an ob in der Instanz eine Fehlernummer steht, die keinen Fehler anzeigt. + +Af1Return-Werte +Afp +TRUE wenn die Fehlernummer im Bereich ]ERR_ERROREND, +"0xFFFF] liegt. +FALSE wenn die Fehlernummer im Bereich [0, ERR_ERROREND] liegt. +Aga +Af1Querverweise +Aga +Methoden: IsError(), IsWarning(), Clear(). +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0ERRTYPE::IsWarning() +Aga +AliBOOL ERRTYPE::IsWarning(); +Aga +Af1Beschreibung +Aga +Diese Methode zeigt an ob in der Instanz eine Fehlernummer steht, die einen Warnung anzeigt. + +Af1Return-Werte +Afp +TRUE wenn die Fehlernummer im Bereich [ERR_WARNING, +"ERR_WARNINGEND] liegt. +FALSE wenn die Fehlernummer in einem anderen Bereich liegt. +Aga +Af1Querverweise +Aga +Methoden: IsOk(), IsError(), Clear(). +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0ERRTYPE::Clear() +Aga +Alivoid ERRTYPE::Clear(); +Aga +Af1Beschreibung +Aga +Die Fehlernummer wird auf ERR_OK gesetzt. Das heiát die Methode IsOk() liefert TRUE zurck. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + Au0PARscError +Aga +Ali#define ERR_ERROR 0x0100 +#define ERR_UNKNOWN_METHOD 0x0101 +#define ERR_OPENFILE 0x0102 +#define ERR_NOCHAR 0x0103 +#define ERR_NORSCINST 0x0104 +#define ERR_USAGE 0x0105 +#define ERR_NOINPUT 0x0106 +#define ERR_UNKNOWNSW 0x0107 +#define ERR_REFTODEEP 0x0108 + +#define ERR_RSCRANGE 0x0200 + #define ERR_RSCRANGE_OUTDEFSET (ERR_RSCRANGE +1 ) +#define ERR_RSCENUM 0x0210 +#define ERR_RSCFLAG 0x0220 +#define ERR_RSCCONT 0x0240 + #define ERR_CONT_INVALIDPOS (ERR_RSCCONT +1 ) + #define ERR_CONT_INVALIDTYPE (ERR_RSCCONT +2 ) +#define ERR_RSCCMPED 0x0250 +#define ERR_RSCINST 0x0260 + #define ERR_RSCINST_NOVARNAME (ERR_RSCINST +1 ) + #define ERR_RSCINST_RESERVEDNAME (ERR_RSCINST +2 ) +#define ERR_LEX 0x0270 +#define ERR_YACC 0x0280 + #define ERR_DOUBLEID (ERR_YACC +1 ) + #define ERR_FALSETYPE (ERR_YACC +2 ) + #define ERR_NOVARIABLENAME (ERR_YACC +3 ) + #define ERR_USHORTRANGE (ERR_YACC +4 ) + #define ERR_IDRANGE (ERR_YACC +5 ) + #define ERR_NOCOPYOBJ (ERR_YACC +6 ) + #define ERR_REFNOTALLOWED (ERR_YACC +7 ) + #define ERR_DOUBLEDEFINE (ERR_YACC +8 ) + #define ERR_COPYNOTALLOWED (ERR_YACC +9 ) + #define ERR_IDEXPECTED (ERR_YACC +10) + #define ERR_ZERODIVISION (ERR_YACC +11) + #define ERR_PRAGMA (ERR_YACC +12) + #define ERR_DECLAREDEFINE (ERR_YACC +13) + + #define WRN_LOCALID (ERR_WARNING +1 ) + #define WRN_GLOBALID (ERR_WARNING +2 ) + #define WRN_SUBINMEMBER (ERR_WARNING +3 ) + #define WRN_CONT_NOID (ERR_WARNING +4 ) + #define WRN_STR_REFNOTFOUND (ERR_WARNING +5 ) + #define WRN_MGR_REFNOTFOUND (ERR_WARNING +6 ) + #define WRN_CONT_DOUBLEID (ERR_WARNING +7 ) + +class RscError{ +public: + USHORT nErrors;// Anzahl der Fehler + RscError(); + void SetListFile( FILE * fList ); + virtual void StdOut( const char * ); + virtual void LstOut( const char * ); + virtual void Error( ERRTYPE nError, RscTop* pClass, + const RscId &aId, + const char * pMessage = NULL ); + virtual void FatalError( ERRTYPE nError, const RscId + &aId, const char * pMessage = NULL ); + }; +Aga +Af1Beschreibung +Aga +In dieser Klasse werden Fehlermeldungen ausgegeben. Die Fehlermeldungen werden zur +Standartausgabe geschickt und in eine Listing-Datei geschrieben. Nach Aufruf der Methode +FatalError() wird die Funktion RscExit() aufgerufen. Diese sollte das Programm terminieren. +Die Ausgabe der Fehler hat folgendes Format: +1. Zeile in der der Fehler aufgetreten ist. +2. Position an der der Fehler aufgetreten ist. +3. Fehlernummer: Error ( Typ, Identifier ): Fehlermeldung. + +Af1Ausnahmen +Aga +Die Ausgabe wird unter MS-Windows nicht nach "stdout" umgeleitet, sondern sie wird unterdrckt. + +Af1Anmerkungen +Aga +Die Klasse tauscht Zeilennummern, Zeilen usw. ber globale Variable mit dem Parser aus. Aus diesem +Grund darf der Parser nicht rekursiv aufgerufen werden. +Wenn ein Fehler am Ende einer Zeile bemerkt wird, wird h„ufig die Zeile nach der Fehlerhaften +angezeigt. + +Af1Querverweise +Aga +Klassen: RscTypCont, ERRTYPE, RscId, RscFileInst, alle Rsc... Klassen. +Funktionen: ::RscExit(), ::parser(), ::MacroParser(), ::IncludeParser(). + +Af1Beispiel +AgaImplementation der Standartausgabe unter MS-Windows. + +Ali..... +class WinError :: public RscError{ + ListBox * pOutput; +public: + WinError( ListBox * pListBox ) : RscError(){ +  pOutput = pListBox; + } + void StdOut( const char * pStr ){ +  //fuer gute Ausgabeformatierung muesste auf RETURN +  //geachtet werden +  pOutput.Insert( pStr, LISTBOX_APPEND ); + } +}; +..... + AgapaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0Fehlernummern +Aga +AfpERR_ERROR Allgemeiner Fehler, dieser Fehler kann nicht nicht genauer +"spezifiziert werden. +ERR_UNKNOWN_METHOD Eine virtuelle Methode die in der abgeleiteten Klasse nicht +"implementiert ist. Siehe Methoden der Klasse RscInst: SetString(), +"SetNumber .... Man kann die Fehlermeldung als Typfehler +"betrachten, das heiát dieser Typ darf nicht verwendet werden. +ERR_OPENFILE Die Datei mit dem angegebenen Namen konnte nicht ge”ffnet +"werden. +ERR_NOCHAR Es konnte kein Zeichen generiert werden. Zum Beispiel kann +"'\333' nicht in ein Zeichen umgewandelt werden. +ERR_NORSCINST Interner Fehler, eine Methode soll auf eine ungltige Instanz +"angewendet werden. +ERR_NOINPUT Es wurde keine Eingabedatei angegeben. +ERR_USAGE Es wird eine Kommandozeilenhilfe ausgegeben (rsc -h). +ERR_UNKNOWNSW In der Kommandozeile wurde ein unbekannter Schalter +"verwendet. +ERR_REFTODEEP Referenzen werden nur bis zu einer bestimmten Tiefe aufgel”st. +"Der Fehler bedeutet, das Referenzen rekursiv definiert wurden +"oder daá sie zu tief verschachtelt sind. +ERR_RSCRANGE In der Klasse RscRange ist ein Fehler aufgetreten. +ERR_RSCRANGE_OUTDEFSET  In eine RscRange-Instanz wurde versucht eine Zahl einzusetzen, +"die auáerhalb des Wertebereichs liegt. +ERR_RSCENUM In der Klasse RscEnum ist ein Fehler aufgetreten. +ERR_RSCFLAG In der Klasse RscFlag ist ein Fehler aufgetreten. +ERR_RSCCONT In der Klasse RscCont ist ein Fehler aufgetreten. +ERR_CONT_INVALIDPOS In einer RscCont-Instanz wurde auf eine Position zugegriffen, auf +"der sich keine Instanz befunden hat. +ERR_CONT_INVALIDTYPE  In einer RscCont-Instanz wurde versucht eine Instanz mit +"falschem Typ einzusetzen. +ERR_RSCINST In der Klasse RscInst ist ein Fehler aufgetreten. +ERR_RSCINST_NOVARNAME  Eine Methode der Klasse RscInst die einen Variablennamen als +"Parameter ben”tigt stellt fest, das dieser Name in der +"entsprechenden Instanz nicht als Variable definiert ist. Vermutlich +"hat die RscInst-Instanz einen anderen Typ als erwartet. +ERR_RSCINST_RESERVEDNAME Fr ein Makro soll eine Name verwendet werden, der +"schon belegt ist. Namen k”nnen zum Beispiel schon fr Variablen +"vergeben sein. +Aga +Es folgen Fehler die beim Parsen auftreten k”nnen. +AfpERR_YACC Allgemeiner Fehler der beim Parsen aufgetreten ist. +ERR_DOUBLEID Zwei globale Resourcen haben den gleichen Identifier. +ERR_FALSETYPE Der verwendete Typ ist nicht erlaubt. +ERR_NOVARIABLENAME Die Variable darf hier nicht verwendet werden. +ERR_USHORTRANGE Der Zahlenwert ist auáerhalb von [0, 0xFFFF]. +ERR_IDRANGE Der Zahlenwert ist auáerhalb von [0, 0x7FFF]. +ERR_NOCOPYOBJ Defaultresource wurde nicht gefunden. Eine Resourceinstanz kann +"mit einer anderen initialisiert werden. Diese ander Instanz wurde +"nicht gefunden. +ERR_REFNOTALLOWED An dieser Stelle ist die Angabe einer Referenz verboten. +ERR_DOUBLEDEFINE Ein Makroname soll doppelt vergeben werden. +ERR_COPYNOTALLOWED Die Angabe einer Defaultresource ist verboten. +ERR_IDEXPECTED Ein Identifier muá Angegeben werden. +ERR_ZERODIVISION Es sollte durch Null geteilt werden. +ERR_PRAGMA Bei der Angabe eines Pragmas ist ein Fehler aufgetreten. + ERR_DECLAREDEFINE Ein Makro mit dieser Deklaration kann nicht erstellt werden. +"Entweder eine rekursive Definition oder die verwendeten Makros +"sind nicht in der Abh„ngigkeitsliste. +Aga +Es folgen Warnungen. +AfpWRN_LOCALID Resourcen die sich innerhalb einer anderen Resource befinden +"(Unterresourcen) haben ein Identifier ber 255. +WRN_GLOBALID Globale Resourcen haben einen Identifier unter 256. +WRN_SUBINMEMBER Die Unterresource werden nicht beachtet. Das bedeutet, daá auf +"diese Resourcen zur Laufzeit nicht zugegriffen werden kann. +WRN_CONT_NOID Die Resourcen haben einen ungltigen Identifier. Auf diese +"Resourcen kann zur Laufzeit nicht zugegriffen werden. +WRN_STR_REFNOTFOUND Beim schreiben ein rc-Datei konnte eine Stringreferenz nicht +"aufgel”st werden. +WRN_MGR_REFNOTFOUND Beim schreiben ein rc-Datei konnte eine Referenz nicht aufgel”st +"werden. Wenn auf Unterresourcen zugegriffen wird, die sich in +"der referenzierten Resource befinden, dann kann ein +"Laufzeitfehler auftreten. +WRN_CONT_DOUBLEID Zwei Unterresource haben den gleichen Identifier. +Aga +ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscError::RscError() +Aga +AliRscError::RscError(); +Aga +Af1Beschreibung +Aga +Eine Instanz wird erzeugt. Der Fehlerz„hler wird auf Null gesetzt. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscError::SetListFile() +Aga +Alivoid RscError::SetListFile( FILE * fLstFile ); +Aga +Af1Beschreibung +Aga +Es wird eine Datei angegeben in die das Listing und die Fehlermeldungen geschrieben werden. +fListing darf auch NULL sein, dann wird kein Listing erzeugt. + +Af1Parameter +Aga +AfpfLstFile Dies ist die Datei in die geschrieben wird. +Aga +Af1Anmerkung +Aga +Fr das ™ffnen und Schlieáen ist der Aufrufer verantwortlich. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscError::StdOut() +Aga +Alivirtual void RscError::StdOut( const char * pStr ); +Aga + Af1Beschreibung +Aga +Alle Zeichenketten werden nach stdout geschrieben. + +Af1Parameter +Aga +AfppStr Dies ist die Zeichenkette die geschrieben wird. +Aga +Af1Ausnahmen +Aga +Unter MS-Windows wird nicht nach stdout ausgegeben. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscError::StdLst() +Aga +Alivirtual void RscError::StdLst( const char * pStr ); +Aga +Af1Beschreibung +Aga +Alle Zeichenketten werden in die Listing-Datei geschrieben. + +Af1Parameter +Aga +AfppStr Dies ist die Zeichenkette die geschrieben wird. +Aga +Af1Ausnahmen +Aga +Wenn keine Listing-Datei angegeben ist passiert nichts. +Aga +Querverweise + +Methoden: SetListFile(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscError::Error() +Aga +Alivirtual void RscError::Error( ERRTYPE aError, + RscTop * pClass, + const RscId & rId, + const char * pMess = NULL ); +Aga +Af1Beschreibung +Aga +Mit dieser Methode werden Fehler- und Warnungsmeldungen ausgegeben. Die Methode benutzt die +Methoden StdOut() und LstOut(). Wenn eine Fehlermeldung vorliegt wird der Fehlerz„hler um eins +erh”ht. + +Af1Parameter +Aga +AfpaError Hierin ist die Fehlernummer gespeichert. šber diese wird der +"Fehlertext ermittelt. +pClass Dies ist der Typ der Resourceinstanz, in der der Fehler aufgetreten +"ist. pClass darf NULL sein. +rId Dies ist der Identifier der Resourceinstanz, in der der Fehler +"aufgetreten ist. + pMess Dies ist der Fehlertext. pMess darf NULL sein. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscError::FatalError() +Aga +Alivirtual void RscError::FatalError( ERRTYPE aError, + const RscId & rId, + const char * pMess = NULL ); +Aga +Af1Beschreibung +Aga +Mit dieser Methode werden schwerwiegende Fehler angezeigt. Die Methode benutzt die Methoden +StdOut() und LstOut(). Die Funktion RscExit( 1 ) wird gerufen, diese sollte das Programm beenden. + +Af1Parameter +Aga +AfpaError Hierin ist die Fehlernummer gespeichert. šber diese wird der +"Fehlertext ermittelt. +rId Dies ist der Identifier der Resourceinstanz, in der der Fehler +"aufgetreten ist. +pMess Dies ist der Fehlertext. pMess darf NULL sein. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0::RscExit() +Aga +Alivoid RscExit( USHORT nExit ); +Aga +Af1Beschreibung +Aga +Diese Methode wird gerufen wenn ein schwerwiegende Fehler aufgetreten ist. Das Programm muá +beendet werden. +Fehlernummer: +Afp1  Die Funktion FatalError() wurde aufgerufen. +10 Mit den c-Funktionen alloc() oder realloc() wird kein Speicher +"mehr zur Verfgung gestellt. +11 Hashtabelle l„uft ber. +12 Es wird mehr als 64k -1 Byte Speicher angefordert. +13 In einem internen Zeichenkettenfeld ist nicht genug Platz. +14 Es wird ein Objekt gel”scht auf das noch mindestens eine +"Referenz besteht. +16 Maximal 32 Variablen pro Klasse erlaubt. +Aga +Af1Parameter +Aga +AfpnExit Mit Hilfe dieser Zahl wird der aufgetreten Fehler etwas genauer +"beschrieben. +Aga +Af1Beispiel +Aga +Alivoid RscExit( USHORT nExit ){ + if( nExit ) +  printf( "Program exit ist %d\n" nExit ); + exit( nExit ); +}; +Aga + AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga + + + SsvAgaPA +Au0Stichwortverzeichnis +Aga +Asv::RscExit() 15 +ERRTYPE::Clear() 9 +ERRTYPE::ERRTYPE() 7 +ERRTYPE::IsError() 8 +ERRTYPE::IsOk() 9 +ERRTYPE::IsWarning() 9 +ERRTYPE::operator =() 7 +ERRTYPE::operator USHORT() 8 +ERRTYPE #6 +Fehlernummern 12 +RscError !10 +RscError::Error() 14 +RscError::FatalError() 15 +RscError::RscError() 13 +RscError::SetListFile() 13 +RscError::StdLst() 14 +RscError::StdOut() 13 + +Aga + \ No newline at end of file diff --git a/binfilter/qa/cppunit/data/sdw/pass/rscinst.sdw b/binfilter/qa/cppunit/data/sdw/pass/rscinst.sdw new file mode 100644 index 000000000..88a2cc475 --- /dev/null +++ b/binfilter/qa/cppunit/data/sdw/pass/rscinst.sdw @@ -0,0 +1,4138 @@ +.\\\ WRITER 6 \\\ +S:\APP\SW5\STARLAB.LAY +R:\SW55N\TREIBER\PS.GPM +12 +00000 +00010 +01394 +00001 +00001 +00001 +00002 +00002 +00000 +00000 +00000 +00000 +Markus Meyer +Spezifikation +Rsc-Compiler +Schnittstelle + + + + + + +0 +16836 +11338 +0 +0 +JA +3 +75 +0 +20 +0 +0 +0 +0 +0 +0 +0 +JA + + + +9 +20 +4 +Helvetica 14 Pt +H1 +97 +20 +0 + +Helvetica 12 Pt +H2 +65 +23 +0 + +Helvetia 10 Pt +H3 +65 +20 +0 + +Courier 10 Pt +C1 +1 +23 +0 + +Helvetica 14 Pt Fett +F1 +65 +27 +2 + +Helvetica 12 Pt Fett +F2 +65 +23 +2 + +Helvetia 10 Pt Fett +F3 +65 +20 +0 + +Tasten +T1 +129 +27 +0 + +Grundschrift +GA +97 +20 +0 + +Grund - Absatzlayout V1.5-LSLP8 +GA +0 +0 +0 +0 +9 +97 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Grundabsatzlayout-rechtsbndig +GR +0 +0 +0 +0 +9 +35 +20 +0 +2 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Listing +LI +0 +0 +0 +0 +0 +1 +23 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift +U0 +0 +0 +0 +0 +5 +35 +28 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X. +U1 +0 +0 +0 +0 +5 +35 +28 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +1 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X. +U2 +0 +0 +0 +0 +6 +35 +24 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +2 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X.X. +U3 +0 +0 +0 +0 +6 +35 +20 +2 +1 +0 +1 +NEIN +NEIN +JA +240 +3 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X.X.X. +U4 +0 +0 +0 +0 +7 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +4 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +šberschrift X.X.X.X.X. +U5 +0 +0 +0 +0 +7 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +5 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 4 Sp / 4 Sp +E1 +576 +576 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 8 Sp / 8 Sp +E2 +1150 +1150 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 0 Sp / 4 Sp +E3 +0 +564 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Einrckung 4 Sp / 8 Sp +E4 +564 +1150 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Funktionsparameter +FP +0 +2891 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Inhaltsverzeichnis +IV +0 +0 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7653 +0 +0 +Stichwortverzeichnis +SV +0 +0 +0 +0 +9 +35 +20 +0 +1 +141 +1 +JA +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +3744 +1 +0 +Fettschrift einzeilig +F1 +0 +0 +0 +0 +7 +65 +20 +2 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +576 +0 +0 +1152 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Punktliste +PL +0 +564 +0 +0 +9 +35 +20 +0 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +13 +566 +0 +0 +1133 +0 +0 +1728 +0 +0 +2304 +0 +0 +2880 +0 +0 +3456 +0 +0 +4032 +0 +0 +4608 +0 +0 +5184 +0 +0 +5760 +0 +0 +6336 +0 +0 +6912 +0 +0 +7488 +0 +0 +Fuázeile +FZ +0 +0 +0 +0 +3 +97 +20 +2 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7200 +1 +0 +Kopfzeile +KZ +0 +0 +0 +0 +3 +97 +20 +2 +1 +0 +1 +NEIN +NEIN +NEIN +240 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +NEIN + +1 +7920 +1 +0 +Grund-Seitenlayout +GS +566 +609 +2436 +679 +1416 +1416 +0 +0 +1 +NEIN +0 +0 + +AkzBf3#_PFAD##_TEXTNAME# 6-#_S#- +Bf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +AfzBf3$Date: 05 Feb 1992 08:23:58 $ $Revision: 1.7 $ + +Stichwortverzeichnis +SV +566 +609 +2437 +680 +1416 +1416 +566 +0 +2 +NEIN +0 +0 + +AliBf3Stichwortverzeichnis +AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +ÄÄÄÄÄÄÄ + +Ali6Bf3- #_S# -B00 + +GS - ohne Fuázeile +KF +566 +609 +2437 +680 +1416 +1416 +0 +0 +1 +NEIN +0 +0 + +AliBf3#_KATEGORIE# / #_THEMA2# +AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Ali + +Inhaltsverzeichnis +IV +566 +609 +2437 +680 +1416 +1416 +0 +0 +1 +NEIN +0 +0 + +AliBf3Inhaltsverzeichnis +AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +ÄÄÄÄÄÄÄ + +Ali + + + + +0 + +0 + +SkfAga + + + + + + + + + +Au0 #_KATEGORIE# +Aga + +Au0 #_THEMA2# +Aga + +Au0 +Aga + + + + + + + + + + + + +Au0 #_AUTOR# +Aga + +Au0 STAR DIVISION / STAR LAB Hamburg +Aga + +Au0 Stand: $Date: 05 Feb 1992 08:23:58 $ +Aga + +Sgs + SkfAgaPA + + +Au0#_KATEGORIE# +Aga + + +AfpDokumentenname #_THEMA2# +Aga +AfpProjektname #_THEMA1# +Aga +AfpVersionsnummer $Revision: 1.7 $ +Aga + +Afperstellt 02. April 1990 +Aga +Afpge„ndert $Date: 05 Feb 1992 08:23:58 $ +Aga + +AfpDateiname #_PFAD##_TEXTNAME# +Aga + +AfpAutor #_AUTOR# +Aga +AfpBearbeiter $Author: MM $ +Aga +AfpQualit„tskontrolle +Aga + +AfpStatus XX in Arbeit +Afp !__ fertiggestellt +Afp !__ abgenommen +Afp !__ freigegeben +Aga + +AfpVertraulich __ Ja XX Nein +Aga + +AfpCopyright (C) Star Division 1990 +Aga + Sivpa + +Au0Inhaltsverzeichnis +Aga +Aiv +1 Einleitung N4 +2 Klassenbaum M5 +3 Klassenbeschreibung E5 +RscDataBase O6 +RscHrc T14 +RscSrc T24 +RscInst S31 +RscInstCopy O50 +Stichwortverzeichnis F53 + +Sgs + Au1pa#1 Einleitung +Aga +In diesem Dokument werden die Klassen beschrieben, mit denen die vom Rsc-Compiler erstellte +Datenbasis ver„ndert werden k”nnen. Als Beispiel sei hier der Design-Editor genannt. +Um das Verst„ndnis zu erleichtern, ist es hilfreich die Benutzerbeschreibung des Rsc-Compilers zu +lesen. + +Hinweise zur Implementation + +Die in diesem Dokument beschriebenen Klassen weisen einen hohen Grad an gegenseitigen +Abh„ngigkeiten auf. Daher muá bei der Anwendung einiger Methoden auf diese Zusammenh„nge +besonders geachtet werden. Ein genaues lesen der Dokumentation ist unumg„nglich. Zum Beispiel ist +das L”schen einer Instanz nicht immer m”glich, da noch Referenzen auf sie bestehen. Diese +Schnittstelle ist darauf ausgelegt, daá auf die Daten im Dialogbetrieb zugegriffen wird. Das heiát, sie +ist auf šbersichtlichkeit und Fehlererkennung nicht aber auf Speicher- und Geschwindigkeitseffizienz +ausgelegt. +Bevor eine dieser Klassen benutzt wird, muá die InitRscCompiler() Funktion aufgerufen werden. + Agapa +Au1#2 Klassenbaum +Aga +RscDataBase +RscHrc -> RscSrc +RscInst -> RscInstCopy + + +Au1#3 Klassenbeschreibung +Aga +AgaRscDataBase: + +Diese Klasse stellt Methoden zur Verfgung mit denen ein Resourceprojekt verwaltet werden kann, +wie zum Beispiel das Anlegen einer neuen Datei oder zu einem Klassennamen den Klassentyp +erzeugen. + +AgaRscHrc: + +Diese Klasse stellt Methoden zur Verfgung mit denen dateiabh„ngige Informationen und Daten aus +der Datenbasis gewonnen werden k”nnen. Es handelt sich hierbei haupts„chlich um Makros. Diese +Klasse ist als Sicht auf eine hrc-Datei zu verstehen. Die Daten stehen in der Datenbasis. + +AgaRscSrc: + +Diese Klasse stellt Methoden zur Verfgung mit denen dateiabh„ngige Informationen und Daten aus +der Datenbasis gewonnen werden k”nnen. Diese Klasse ist als Sicht auf eine src-Datei zu verstehen. +Die Daten stehen in der Datenbasis. + +RscInst: + +Eine RscInst repr„sentiert eine Referenz auf eine Resourceinstanz, wie zum Beispiel Farbe oder Breite. +Eine Resourceinstanz kann weitere Resourceinstanzen enthalten. + +RscInstCopy: + +Diese Instanz repr„sentiert eine Kopie einer Resourceinstanz. + + Au0PARscDataBase +Aga +Aliclass RscDataBase { +protected: + RscCmdLine * pCmdLine; + RscTypCont * pTC; +public: + RscDataBase( RscError * ); + ~RscDataBase(); + RscTop* GetClassType( HASHID nClassName ); + BOOL MakeConsistent( RscInconsList * pList ); + RscFileTab * GetFileTab(); + RscFile * GetFileStruct( ULONG lFileKey ); + RscStrList * GetPathList(); + ULONG AddSrcFile( const String & rFileName ); + ULONG AddHrcFile( const String & rFileName ); + void ScanForIncFiles( ULONG lFileKey ); + void RemoveFile( ULONG lKey ); + RscDefine * FindDef( const String & rName ); + ULONG GetFileKey( const String & rFileName ); +}; +Aga +Af1Beschreibung +Aga +Diese Klasse enth„lt die Klassen RscCmdLine und RscTypCont. +Die Klasse RscCmdLine enth„lt die Steuerinformation fr den Compiler. Die Klasse RscTypCont +enth„lt die vom Compiler erstellte DatenBasis. +Diese Klasse l”st folgende Aufgaben: + 1. Das šberprfen der Konsistenz der Datenbasis. + 2. Das Bearbeiten der Projektstruktur. + +Af1Anmerkungen +Aga +Fr einige Methoden der Klasse RscDataBase gilt, daá sie eventuell auf alle existierenden +Resourceinstanzen zugreifen mssen. Wenn zum Beispiel die Konsistenz der Datenbasis berprft +wird, kann dies nur ber die Objekte in der Datenbasis geschehen. + +Af1Querverweise +Aga +Klassen: RscCmdLine, RscTypCont, RscFile, RscDefList, RscError, RscId, RscHrc, RscSrc. +Methoden: HashId, GetHashString. + +Af1Beispiel +Aga +Im Beispiel wird der einer Resource erfragt. +Ali..... +Ali// statische Datenstrukturen initialisieren +InitRscCompiler(); +..... +RscError aErrorHandle; // Fehlerbehandlung +RscDataBase aCmpInst( &aErrorHandle ); // Datenbasis +RscTop* pClassTyp; // ein Klassentyp + +// Typ einer Resource aus dem Namen der Klasse erzeugen +pClassTyp = aCmpInst.GetClassType( HashId( "Color" ) ); +Ali..... + + Au0PARscDataBase::RscDataBase() +Aga +AliRscDataBase::RscDataBase( RscError * pErrorHandler ); +Aga +Af1Beschreibung +Aga +Diese Methode erzeugt eine Instanz der Klasse RscDataBase. Der Scope von dieser Instanz muá +innerhalb des Scopes von pErrorHandler liegen. + +Af1Parameter +Aga +AfppErrorHandler Ein Zeiger auf einen Fehlerhandler. Durch ableiten von der Klasse +"RscError kann ein eigener Fehlermechanismus entwickelt werden. +Aga +Af1Querverweise +Aga +Klasse: RscError + +Af1Beispiel +Aga +Ali..... +RscError aErrorHandler; +RscDataBase aCmpInst( &aErrorHandle ); +..... +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::RscDataBase() +Aga +AliRscDataBase::~RscDataBase(); +Aga +Af1Beschreibung +Aga +L”scht die Membervariablen pCmdLine und pTC. + +Af1Anmerkungen +Aga +Es drfen keine Resourceinstanzen, die mit Hilfe dieser Instanz erzeugt worden sind, mehr existieren. + +Af1Querverweise +Aga +Klassen: RscInst, RscCmdLine, RscTypCont, RscIncList, RscHrc, RscSrc. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::GetClassType() +Aga +AliRscTop * RscDataBase::GetClassType( HASHID aClassName ); +Aga +Af1Beschreibung +Aga +Aus dem Namen einer Klasse wird der Typ einer Klasse generiert. Der Typ bezieht sich nur auf die +RscDataBase-Instanz von der er erzeugt wurde. + +Af1Parameter +Aga +AfpaClassName ist der Name der Klasse. + Aga +Af1Return-Werte +Aga +Der Typ der Klasse wird zurckgeliefert. Wird unter dem Namen keine Klasse gefunden, dann wird +NULL zurckgeliefert. + +Af1Anmerkungen +Aga +Wenn aus gleichen Namen zweier unterschiedlicher Instanzen Typen erzeugt werden, dann sind diese +unterschiedlich. + +Af1Beispiel +Aga +Ali..... +HASHID aClassName = HashId( "Color" ); +RscTop * aType1 = aCmpInst1.GetClassType( aClassName ); +RscTop * aType2 = aCmpInst2.GetClassType( aClassName ); +RscTop * aType3 = aCmpInst2.GetClassType( aClassName ); +..... +Aga +aType1 ist ungleich zu aType2. +aType2 ist gleich zu aType3. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::MakeConsistent() +Aga +AliBOOL RscDataBase::MakeConsistent( RscInconsList * pList ); +Aga +Af1Beschreibung +Aga +Es ist m”glich, daá durch Ver„nderungen von Makros die Datenbasis inkonsistent wird. Mit dieser +Methode wird versucht, die Datenbasis wieder in einen konsistenten Zustand zu versetzen. Dies kann +aber auch scheitern, wenn zum Beispiel der Wertebereich einer Variablen verlassen wird oder die + Identifier von Resourceinstanzen den gleichen Wert haben. pList enth„lt die Makros bei denen es +Inkonsistenzen gibt. + +Af1Parameter +Aga +AfppList ist ein Zeiger auf eine Liste von Makro-Paaren. pList darf auch +"NULL sein. +Aga +Af1Return-Werte +Aga +AfpTRUE die Datenbasis ist wieder konsistent. +FALSE es konnte kein konsistenter Zustand hergestellt werden. +Aga +Af1Anmerkungen +Aga +Wenn die Datenbasis inkonsistent ist, drfen auf ihr keine Operationen ausgefhrt werden. + +Af1Querverweise +Aga +Klassen: RscInconsList. +Methoden: RscInst::IsConsistent. + +Af1Beispiel +Aga + Ali... +RscDataBase *pDataBase = new ...; // DatenBasis +RscSrc aSrc( ... ); //entspricht einer .src Datei +RscDefine * pDef1, *pDef2; //Makros + +aSrc.NewDef( "DEF1", 1000, LIST_APPEND ); //Makro erzeugen +aSrc.NewDef( "DEF2", 1001, LIST_APPEND ); //Makro erzeugen +pDef1 = aSrc.FindDef( "DEF1" ); //Makro holen +pDef2 = aSrc.FindDef( "DEF2" ); //Makro holen + +/* aStrInst enth„lt eine gltige String-Instanz */ +//String-Instanz unter Id mit Wert 1000 einsetzen +AliaSrc.SetRscInst( RscId( pDef1 ), aStrInst ); +//String-Instanz unter Id mit Wert 1001 einsetzen +AliaSrc.SetRscInst( RscId( pDef2 ), aStrInst ); +//aendern des Makro-Wertes +aSrc.ChangeDef( "DEF2", 1000 ); +//Datenbasis ueberpruefen +if( pDataBase->MakeConsistent( NULL ) ) + printf( "Konsistent" ); +else + printf( "Inkonsistent" ); +Aga +Die Ausgabe ist 'Inkonsistent', weil in der Datenbasis zwei String-Instanzen mit dem Identifier 1000 +existieren. +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::GetFileTab() +Aga +AliRscFileTab * RscDataBase::GetFileTab(); +Aga +Af1Beschreibung +Aga +Die interne Struktur der Makro- und Dateiverwaltung wird zurckgeliefert. + +Af1Return-Werte +Aga +Es wird ein Zeiger auf die Struktur der Projektverwaltung zurckgeliefert. +Aga +Af1Querverweise +Aga +Klassen: RscFileTab. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::GetFileStruct() +Aga +AliRscFile * RscDataBase::GetFileStruct( ULONG lFileKey ); +Aga +Af1Beschreibung +Aga +Auf die interne Darstellung der Daten einer Datei wird ber einen Schlssel zugegriffen. Mit Hilfe +dieses Schlssels kann man einen Zeiger auf die interne Datenstruktur bekommen. + +Af1Parameter +Aga +AfplFileKey Schlssel der Datei. + Aga +Af1Return-Werte +Aga +Zeiger auf interne Struktur. +Aga +Af1Querverweise +Aga +Klassen: RscFile, RscFileTab. +Methoden: GetKey(). +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::GetPathList() +Aga +AliRscStrList * RscDataBase::GetPathList(); +Aga +Af1Beschreibung +Aga +Diese Methode gibt einen Zeiger auf eine Liste mit Pfadnamen zurck. Diese Liste kann ver„ndert +werden. Die Žnderungen wirken sich sofort auf den Suchpfad aus. + +Af1Return-Werte +Aga +Es wird die PfadListe zurckgeliefert. + +Af1Beispiel +Aga//veraendern der Pfadliste + +AliRscDataBase aBase( ... ); //Datenbasis + +// Pfadliste holen +RscStrList * pPathLst = aBase.GetPathList(); +//Pfad hinzufuegen +pPathList->Insert( String( "c:\demo\resource" ) ); +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Au0 +Au0RscDataBase::AddSrcFile() +Aga +AliULONG RscDataBase::AddSrcFile( const String & rName ); +Aga +Af1Beschreibung +Aga +Diese Methode stellt eine Src-Datei in die Projektverwaltung. + +Af1Parameter +Aga +AfprName Dies ist der Name der Datei. +Aga +Af1Return-Werte +Aga +Es wird der Schlssel der Datei zurckgeliefert. +Aga +Af1Anmerkungen +Aga + Wenn es eine Datei unter diesem Namen gibt, dann wird der Schlssel dieser Datei zurckgegeben. + +Af1Querverweise +Aga +Klassen: RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::AddHrcFile() +Aga +AliULONG RscDataBase::AddHrcFile( const String & rName ); +Aga +Af1Beschreibung +Aga +Diese Methode stellt eine Hrc-Datei in die Projektverwaltung. + +Af1Parameter +Aga +AfprName Dies ist der Name der Datei. +Aga +Af1Return-Werte +Aga +Es wird der Schlssel der Datei zurckgeliefert. +Aga +Af1Anmerkungen +Aga +Wenn es eine Datei unter diesem Namen gibt, dann wird der Schlssel dieser Datei zurckgegeben. + +Af1Querverweise +Aga +Klassen: RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscDataBase::ScanForIncFiles() +Aga +Alivoid RscDataBase::ScanForIncFiles( ULONG lFileKey ); +Aga +Af1Beschreibung +Aga +Diese Methode durchsucht die Datei nach Include-Anweisungen. Die Dateien werden in die +Abh„ngigkeitsliste von der Datei mit dem Schlssel lFileKey eingetragen. Die Dateien werden in die +Projektverwaltung gestellt. + +Af1Anmerkungen +Aga +Kann die Datei nicht ge”ffnet werden dann wird die Abh„ngigkeitsliste nicht ge„ndert. +Preprozessoranweisungen wie #ifdef... werden nicht beachtet. C- und C++-Kommentare werden +beachtet. + +Af1Querverweise +Aga +Klassen: RscCompiler. +Methoden: RscCompiler::IncludeParser(). +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + + Au0RscDataBase::RemoveFile() +Aga +Alivoid RscDataBase::RemoveFile( ULONG lFileKey ); +Aga +Af1Beschreibung +Aga +Die Datei wird aus der Projektverwaltung gel”scht. Alle dieser Datei zugeordneten Makros und +Resource-Instanzen werden gel”scht. Alle Verweise auf diese Datei werden gel”scht. + +Af1Parameter +Aga +AfplFileKey Schlssel der Datei. +Aga +Af1Anmerkungen +Aga +Diese Datei wird auch aus den Abh„ngigkeitslisten der anderen Dateien gel”scht. Wenn +Abh„ngigkeiten auf Makros bestehen, dann werden sie durch Zahlen ersetzt. + +Af1Querverweise +Aga +Klassen: RscFile, RscFileTab. +Methoden: RscTypCont::WriteSrc(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::FindDef() +Aga +AliRscDefine * RscDataBase::FindDef( const String & rName ); +Aga +Af1Beschreibung +Aga +Mit dieser Methode kann ein Makro ber seinen Namen gefunden werden. + +Af1Parameter +Aga +AfprName ist der Name des Makros. +Aga +Af1Return-Werte +Aga +Es wird ein Zeiger auf das Makro mit Namen rName zurckgegeben. +AfpNULL Es wurde kein Makro gefunden. +Aga +Af1Querverweise +Aga +Klassen: RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscDataBase::GetFileKey() +Aga +AliULONG RscDataBase::GetFileKey( const String & rFileName ); +Aga +Af1Beschreibung +Aga +Diese Methode sucht in der Projektverwaltung nach einem Datei mit Namen "rFileName". +Wenn eine Datei unter diesem Namen in der Projektverwaltung steht wird der Schlssel dieser Datei +zurckgegeben. + +Af1Parameter +Aga +AfprFileKey Der Dateiname nach dem gesucht wird. +Aga +Af1Return-Werte +Aga +Es wird die Schlssel der Datei zurckgeliefert. +AfpNOFILE_INDEX dieser Wert zeigt an, daá der Dateiname nicht gefunden wurde. +Aga +Af1Anmerkungen +Aga +Groá-und Kleinschreibung wird bei der Suche beachtet. + +Af1Querverweise +Aga +Klassen: RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga + Au0PARscHrc +Aga +Aliclass RscHrc { +protected: + ULONG lFileKey;//Schluessel der Datei +public: + RscHrc( RscDataBase *, ULONG lKey ); + ~RscHrc(); + ERRTYPE ReadFile(); + ULONG GetFileKey(); + void SetDirty(); + BOOL IsDirty(); + void SetPathName( const String & ); + String GetPathName(); + void SetFileName( const String & ); + String GetPathName(); + void InsertDepend( ULONG lKey, ULONG lPos ); + RscDefineList * GetDefineList(); + RscDefine * FindDef( const String & ); + ERRTYPE NewDef( const String & rName, + long lValue, ULONG lPos ); + ERRTYPE NewDef( const String & rName, + const String & rMacro, + ULONG lPos ); + ERRTYPE ChangeDef( const String & rName, + long lValue ); + ERRTYPE ChangeDef( const String & rName, + const String & rMacro ); + BOOL IsDefUsed( const String & rName ); + void DeleteDef( const String & rName ); + ERRTYPE ChangeDefName( const String & rName, + const String & rNewName ); + + RscFile * GetFileStruct(); + RscDependList * GetDependList(); + ERRTYPE WriteFile(); +}; +Aga +Af1Beschreibung +AgaDiese Klasse enth„lt nur eine Referenz auf eine andere Klasse. Alle Operation werden also auf der +referenzierten Klasse durchgefhrt. Diese Klasse ist nur eine Schnittstelle. Diese Klasse stellt eine +Sicht auf eine hrc-Datei dar. + +Diese Klasse l”st folgende Aufgaben: + 1. Das Verwalten der Abh„ngigkeitsliste einer Datei. + 2. Das Verwalten der Makros in dieser Datei. + 3. Das Schreiben von ".hrc"-Dateien. + +Af1Querverweise +Aga +Klassen: RscTypCont, RscDependList, RscDefList, RscError, RscId. + + Au0PARscHrc::RscHrc() +Aga +AliRscHrc::RscHrc( RscDataBase * pDataBase, ULONG lKey ); +Aga +Af1Beschreibung +Aga +Diese Methode erzeugt eine Instanz der Klasse RscHrc. Der Scope von dieser Instanz muá innerhalb +des Scopes von pDataBase liegen. + +Af1Parameter +Aga +AfppDataBase Ein Zeiger auf eine Datenbasis. +lKey Ist der Schlssel einer Datei. +Aga +Af1Querverweise +Aga +Klassen RscError, RscSrc, RscFileTab. + +Af1Beispiel +Aga +Ali..... +/* aSrc ist ein bestehende Instanz der Klasse RscSrc */ +//Abhaengigkeitsliste holen +RscDependList * pDepLst = aSrc.GetDependList(); +//Erstes Element holen +RscDepend * pDep = pDepList->First(); +//Hrc-Instanz erzeugen, aHrc ist die Repraesentation der +//ersten Datei in der Abhaengigkeitsliste +RscHrc aHrc( pDataBase, pDep->GetFilekey() ); +..... +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Au0RscHrc::~RscHrc() +Aga +AliRscHrc::~RscHrc(); +Aga +Af1Beschreibung +Aga +Der Destruktor hat keine Funktion. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::ReadFile() +Aga +AliERRTYPE RscHrc::ReadFile(); +Aga +Af1Beschreibung +Aga +Es wird eine Datei eingelesen. Es wird in der Abh„ngigkeitsliste berprft ob alle Dateien geladen +sind, sind sie nicht geladen, werden sie zuerst eingelesen. Tritt ein fehler auf, wurde die Fehlerhafte +Datei nicht eingelesen. Der Fehler innerhalb der Datei muá mit einem Editor verbessert werden (siehe +Rsc-Compiler Benutzerhandbuch). + +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() Es ist kein Fehler aufgetreten. +AfpERR_OPENFILE Die Datei konnte nicht g”ffnet werden. + anderer Wert Siehe Klasse RscError. +Aga +Af1Anmerkungen +Aga +Es sollte sichergestellt sein, daá die Datei mit dem Rsc-Compiler ohne Preprozessor bersetzt werden +kann. Es k”nnen aber trotzdem Fehler auftreten wie zum Beispiel Identifierkonflikte mit vorher +eingelesener Datei, oder die Include-Dateien wurden vorher nicht eingelesen (#define kann nicht +aufgel”st werden). + +Af1Querverweise +Aga +Klassen: RscError, RscCompiler. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscHrc::GetFileKey() +Aga +AliULONG RscHrc::GetFileKey(); +Aga +Af1Return-Werte +Aga +Liefert den Schlssel der Datei zurck. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::SetDirty() +Aga +Alivoid RscHrc::SetDirty( BOOL bSet ); +Aga +Af1Beschreibung +Aga +Es wird das Attribut Dirty gesetzt. Das Attribut Dirty bewirkt nichts. + +Af1Parameter +Aga +AfpbSet Ist der Wert auf den das Attribut gesetzt werden soll. +Aga +Af1Querverweise +Aga +Methoden: IsDirty(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::IsDirty() +Aga +AliBOOL RscHrc::IsDirty(); +Aga +Af1Beschreibung +Aga +Gibt an ob das Attribut Dirty gesetzt ist. + +Af1Return-Werte +Aga +AfpTRUE Dirty ist gesetzt. +FALSE Dirty ist nicht gesetzt. + Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Au0RscHrc::SetPathName() +Aga +Alivoid RscHrc::SetPathName( const String & rPath ); +Aga +Af1Beschreibung +Aga +Der Pfadname der Datei, die durch diese Instanz repr„sentiert wird, wird ge„ndert. Der Pfadname ist +der Name, unter dem die Datei gespeichert wird. + +Af1Parameter +Aga +AfprPath Der Pfadname der Datei. +Aga +Af1Querverweise +Aga +Klassen: RscFile. +Methoden: GetPathname(), SetFileName(), GetFileName() + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::GetPathName() +Aga +AliString RscHrc::GetPathName(); +Aga +Af1Return-Werte +Aga +Der Pfadname der Datei wird zurckgeliefert. +Aga +Af1Querverweise +Aga +Klassen: RscFile. +Methoden: SetPathName(), SetFileName(), GetFileName(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::SetFileName() +Aga +Alivoid RscHrc::SetFileName( const String & rPath ); +Aga +Af1Beschreibung +Aga +Der Name der Datei, die durch diese Instanz repr„sentiert wird, wird ge„ndert. Unter diesem Namen +wird die Datei zum Beispiel in den "#include " Anweisungen verwendet. + +Af1Parameter +Aga +AfprPath Der Name der Datei. +Aga +Af1Querverweise +Aga +Klassen: RscFile. +Methoden: SetPathName(), GetPathname(), GetFileName() + + AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::GetFileName() +Aga +AliString RscHrc::GetFileName(); +Aga +Af1Return-Werte +Aga +Der Name der Datei wird zurckgeliefert. +Aga +Af1Querverweise +Aga +Klassen: RscFile. +Methoden: SetPathName(), GetPathName(), SetFileName(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Aga +Au0RscHrc::InsertDepend() +Aga +Alivoid RscHrc::InsertDepend( ULONG lFileKey, ULONG lPos ); +Aga +Af1Beschreibung +Aga +Eine neue Include-Datei wird in die Abh„ngigkeitsliste eingefgt. + +Af1Parameter +Aga +AfplFileKey Dies ist der Schlssel der Include-Datei. +lPos An dieser Position wird der Schlssel in die Abh„ngigkeitsliste +"eingefgt. +Aga +Af1Return-Werte +Aga +Es wird der Schlssel der Datei zurckgeliefert. + +Af1Anmerkungen +Aga +Wenn eine Include-Datei unter diesem Schlssel schon in der Abh„ngigkeitsliste steht, wird er nicht +noch einmal eingetragen. + +Af1Querverweise +Aga +Klassen: RscFile. +Methoden: FillIncList(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::GetDefineList() +Aga +AliRscDefineList * RscHrc::GetDefineList(); +Aga +Af1Beschreibung +Aga +In jeder Hrc-Datei gibt es Makros. Diese Makros werden in eine RscDefineList gestellt. + +Af1Return-Werte +Aga +Es wird ein Zeiger auf die Makro-Liste zurckgeliefert. + +Af1Querverweise +Aga +Klassen: RscDefineList. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::FindDef() +Aga +AliRscDefine * RscHrc::FindDef( const String & rName ); +Aga +Beschreibung +Aga +Mit dieser Methode kann ein Makro ber seinen Namen gefunden werden. Es wird nur in dieser Datei +oder in den Dateien gesucht, von denen diese Datei abh„ngt. + +Af1Parameter +Aga +AfprName ist der Name des Makros. +Aga +Af1Return-Werte +Aga +Es wird ein Zeiger auf das Makro mit Namen rName zurckgegeben. +AfpNULL Es wurde kein Makro gefunden. +Aga +Af1Querverweise +Aga +Klassen: RscFileTab. + +Af1Beispiel +Aga +Ali//Dateiname = t.src +... +#include +#include + +#define TEST 1 +Aga +Wenn aHrc2 die Datei t2.hrc repr„sentiert, dann werden die Makros in t2.hrc und t1.hrc gesucht. Sie +werden nicht in t.src gesucht. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::NewDef() +Aga +AliERRTYPE RscHrc::NewDef( const String & rName, + long lValue, ULONG lPos ); +ERRTYPE RscHrc::NewDef( const String & rName, + const String & rMacro, + ULONG lPos ); +Aga +Af1Beschreibung +Aga + Mit dieser Methode k”nnen neue Makros angelegt werden. Die Makros werden der Datei zugeordnet, +die durch diese Instanz repr„sentiert wird. + +Af1Parameter +Aga +AfprName Ist der Name des neuen Makros. +lValue Ist der Wert des neuen Makros. +rMacro Ist ein String der ausgewertet wird. +lPos gibt die Position an, an welcher das Makro eingefgt werden soll. +Aga +Af1Return-Werte +Aga +In ERRTYPE steht, ob ein Fehler aufgetreten ist und um welchen es sich handelt. + +Af1Anmerkungen +Aga +Durch rMacro k”nnen Makros auch wieder durch Makros erkl„rt werden. Es wird sichergestellt, daá +nur Makros verwendet werden, die vorher deklariert wurden. Ob sie vorher deklariert wurden, wird +anhand der Abh„ngigkeitslisten entschieden. + +Af1Querverweise +Aga +Klassen: RscFileTab. +Methoden: ::MacroParser(). + +Af1Beispiel +Aga +Ali//Datei demo.hrc in Projektverwaltung +lFileKey = pBase->AddHrcFile( "demo.hrc" ); +//Sicht auf demo.hrc +RscHrc aHrc( pBase, lFileKey ); +//Makro erzeugen +aHrc.NewDef( String( "BASE" ), 1000 ); +//Makro erzeugen +aHrc.NewDef( String( "DEF_TEST" ), String( "1000 + 2" ) ); +//Makro erzeugen +aHrc.NewDef( String( "MENU_FILE" ),String( "BASE + 100" )); +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::ChangeDef() +Aga +AliERRTYPE RscHrc::ChangeDef( const String & rName, + const String & rMacro ); +ERRTYPE RscHrc::ChangeDef( const String & rName, + long lValue ); +Aga +Af1Beschreibung +Aga +Mit dieser Methode k”nnen Makros ge„ndert werden. + +Af1Parameter +Aga +AfprName Ist der Name des neuen Makros. +rMacro Ist ein String der ausgewertet wird. +lValue Ist der Wert des ge„nderten Makros. +Aga +Af1Return-Werte + Aga +In ERRTYPE steht, ob ein Fehler aufgetreten ist und um welchen es sich handelt. + +Af1Anmerkungen +Aga +Durch rMacro k”nnen Makros auch wieder durch Makros erkl„rt werden. Es wird sichergestellt, daá +nur Makros verwendet werden, die vorher deklariert wurden. Ob sie vorher deklariert wurden, wird +anhand der Abh„ngigkeitslisten entschieden. + +Af1Querverweise +Aga +Klassen: RscFileTab. +Methoden: ::MacroParser(), NewDef(). + +Af1Beispiel +Aga +Ali//Datei demo.hrc in Projektverwaltung +lFileKey = pBase->AddHrcFile( "demo.hrc" ); +//Sicht auf demo.hrc +RscHrc aHrc( pBase, lFileKey ); +//Makro erzeugen +aHrc.NewDef( String( "BASE" ), 1000 ); +//Makro erzeugen +aHrc.NewDef( String( "DEF_TEST" ), String( "1000 + 2" ) ); +//Makro aendern +aHrc.ChangeDef( String( "DEF_TEST" ), + String( "BASE + 100" ) ); +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::IsDefUsed() +Aga +AliBOOL RscHrc::IsDefUsed( const String & rName ); +Aga +Af1Beschreibung +Aga +Mit dieser Methode kann festgestellt werden ob ein Makro noch ben”tigt wird. Es wird ben”tigt, wenn +Referenzen bestehen, z.B. das Makro wird zur Definition von anderen Makros verwendet. + +Af1Parameter +Aga +AfprName Ist der Name des Makros. +Aga +Af1Return-Werte +Aga +AfpTRUE Das Makro wird noch ben”tigt. +FALSE Das Makro wird nicht mehr ben”tigt. +Aga +Af1Querverweise +Aga +Klassen: RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscHrc::DeleteDef() +Aga +Alivoid RscHrc::DeleteDef( const String & rName ); + Aga +Af1Beschreibung +Aga +Das Makro mit dem Namen rName wird gel”scht. + +Af1Parameter +Aga +AfprName Ist der Name des Makros. +Aga +Af1Querverweise +Aga +Klassen: RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::ChangeDefName() +Aga +AliERRTYPE RscHrc::ChangeDefName( const String & rName, + const String & rNewName ); +Aga +Af1Beschreibung +Aga +Der Name des Makros wird umbenannt. Existiert der neue Name schon, oder ist der neue Name ein +reserviertes Wort, wird ein Fehler zurckgeliefert. + +Af1Parameter +Aga +AfprName Der Name des Makros. +rNewName Der neue Name des Makros. +Aga +Af1Return-Werte +Aga +In ERRTYPE steht, ob ein Fehler aufgetreten ist und um welchen es sich handelt. + +Af1Anmerkungen +Aga +Alle Objekte oder Makros, die das umbenannte Makro benutzen, enthalten den neuen Namen. + +Af1Querverweise +Aga +Klassen: RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscHrc::GetFileStruct() +Aga +AliRscFile * RscHrc::GetFileStruct(); +Aga +Af1Return-Werte +Aga +Liefert einen Zeiger auf die interne Datenstruktur.. + +Af1Querverweise +Aga +Klassen: RscFile, RscFileTab. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscHrc::GetDependList() +Aga +AliRscDependList * RscHrc::GetDependList(); +Aga +Af1Beschreibung +Aga +Mit dieser Methode bekommt man die Abh„ngigkeitsliste der Datei. + +Af1Return-Werte +Aga +Die Methode liefert einen Zeiger auf die Abh„ngigkeitsliste zurck. +Aga +Af1Anmerkungen +Aga +Die Datei ist selbst als letztes Element in der Liste vermerkt. + +Af1Querverweise +Aga +Klassen: RscFile, RscFileTab. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscHrc::WriteFile() +Aga +AliERRTYPE RscHrc::WriteFile(); +Aga +Af1Beschreibung +Aga +Diese Methode schreibt eine Datei im src-Format. Alle Resourceinstanzen die zu dieser Datei geh”ren +werden geschrieben. Es werden auch alle zugeh”rigen Makros geschrieben. Ein Datei ohne +Resourceinstanzen ist eine hrc-Datei. Der Name unter dem die Datei geschrieben wird ist der +Pfadname. + +Aga +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() Die Daten wurden in die entsprechende Datei geschrieben. +Afpanderer Wert Es ist ein Fehler aufgetreten. Die angegebene Datei wurde +"eventuell unvollst„ndig geschrieben. +Aga +Af1Querverweise +Aga +Klassen: RscTypCont. +Methoden: RscTypCont::WriteSrc(), RscDefineList::WriteAll(), SetPathName(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + Au0PARscSrc +Aga +Aliclass RscSrc { +public: + RscSrc( RscDataBase * pDataBase, ULONG lKey ); + ~RscSrc(); + RscInstCopy CreateRscInst( RscTop * pClass ); + ERRTYPE DeleteRscInst( RscTop * pTypeClass, + RscId & rName ); + ERRTYPE SetRscInst( RscId & rInstName, RscInstCopy & ); + RscInst GetRscInst( RscTop * pClass, RscId & rInst ); + void FillNameIdList( REResourceList * pList ); + ERRTYPE WriteCxxFile( const String &, + const String & rHxxFile ); + ERRTYPE WriteHxxFile( const String & ); +}; +Aga +Af1Beschreibung +Aga +Diese Klasse l”st folgende Aufgaben: + 1. Das Einlesen der Include-Dateien und der ".src"-Datei mit Erstellung der Datenbasis. + 2. Das Erzeugen von Resourceinstanzen. + 3. Das Finden und Herausgeben von Resourceinstanzen. + 4. Das Einsetzen von Resourceinstanzen. + 5. Das Schreiben von ".cxx"- und ".hxx"-Dateien. + +Af1Anmerkungen +Aga +Die von einer Instanz dieser Klasse herausgegebenen Resourceinstanzen sind von der Verwendeten +Datenbasis abh„ngig, das heiát bevor die Datenbasis gel”scht wird, mssen alle Resourceinstanzen +gel”scht oder wieder eingesetzt worden sein. + +Af1Querverweise +Aga +Klassen: RscTypCont, RscError, RscId, RscDataBase. +Methoden: HashId, GetHashString. + +Af1Beispiel +Aga +Auszug aus der test.src Datei. +Ali..... +Color 1000 { + Red = 0; //kein Rotanteil + Green = 65535; + Blue = 65535; +}; +..... + +AgaAuszug aus der ".cxx" Datei. +Ali..... +// Compilers initialisieren +InitRscCompiler(); +..... +RscError aErrorHandle; // Fehlerbehandlung +RscdataBase aBase( aErrorHandle ); // Datenbasis erzeugen +//src-Datei +RscSrc aSrc( &aBase, + aBase->AddSrcFile( "test.src" ) ); +RscInst aInst; // eine ResourceInstanz + RscTop* pClassTyp; // ein Klassentyp + +// Einlesen der Resourcedatei test.src +aSrc.ReadFile(); +// Typ einer Resource aus dem Namen erzeugen +pClassTyp = aBase.GetClassType( HashId( "Color" ) ); +// Instanz holen +aInst = aSrc.GetRscInst( pClassTyp, RscId( 1000 ) ); +// Instanz ver„ndern +aInst.SetNumber( HashId( "Red" ), 65535 ); +// Da es sich bei aInst nur um eine Referenz in die +// Datenbasis handelt, werden die Aenderungen sofort +// uebernommen. + +// Ver„nderte test.src Datei schreiben +aSrc.WriteFile(); +..... + +AgaAuszug aus der ver„nderten test.src Datei. +Alle Kommentare werden gel”scht. Bei Preprozessoranweisungen wie #include oder #define kommt +es zu Reihenfolge„nderungen. + +Ali..... +Color 1000 { + Red = 65535; + Green = 65535; + Blue = 65535; +}; +..... +Aga + + Au0PARscSrc::RscSrc() +Aga +AliRscSrc::RscSrc( RscDataBase * pDataBase, + ULONG lFileKey ); +Aga +Af1Beschreibung +Aga +Diese Methode erzeugt eine Instanz der Klasse RscSrc. Der Scope von dieser Instanz muá innerhalb +des Scopes von pDataBase liegen. + +Af1Parameter +Aga +AfppDataBase Ein Zeiger auf eine Datenbasis. +lFileKey Der Schlssel einer Datei. +Aga +Af1Querverweise +Aga +Klasse: RscError + +Af1Beispiel +Aga +Ali..... +RscDataBase aDataBase(...); +RscSrc aCmpInst( &aDataBase, + aDataBase.AddSrcFile( "t.src" ) ); +..... +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscSrc::RscSrc() +Aga +AliRscSrc::~RscSrc(); +Aga +Af1Beschreibung +Aga +Diese Methode hat keine Funktion. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscSrc::CreateRscInst() +Aga +AliRscInstCopy RscSrc::CreateRscInst( RscTop * pClass ); +Aga +Af1Beschreibung +Aga +Diese Methode erzeugt eine Instanz vom Typ pClass. + +Af1Parameter +Aga +AfppClass ist der Typ der Resource, die erzeugt werden soll. +Aga +Af1Return-Werte +Aga +Es wird eine RscInstCopy Instanz zurckgeliefert. + +Af1Anmerkungen +Aga + Ist der Typ der Klasse nicht bekannt, dann wird eine ungltige RscInstCopy zurckgeliefert. + +Af1Querverweise +Aga +Klasse: RscInst, RscInstCopy. +Methoden: RscInst::IsInst(), RscDataBase::GetClassType(). + +Af1Beispiel +Aga +Ali..... +RscInstCopy aColInst; +RscTop * pColorType = + aBase.GetClassType( HashId( "Color" ) ); + +// Resourceinstanz einer Farbe erzeugen +aColInst = aCmpInst.CreateRscInst( pColorType ); +if( !aColInst.IsInst() ) + printf( "Farbinstanz konnte nicht erzeugt werden!" ); +..... +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscSrc::DeleteRscInst() +Aga +AliERRTYPE RscSrc::DeleteRscInst( RscTop * pClass, + RscId & rInstName ); +Aga +Af1Beschreibung +Aga +Diese Methode l”scht Resourceinstanz mit dem Namen rInstName aus der Datenbasis. + +Af1Parameter +Aga +AfppClass ist der Typ der Resourceinstanz. +rInstName ist der Identifier der Resourceinstanz, die gel”scht werden soll. +Aga +Af1Return-Werte +Aga +Zeigt an ob ein Fehler und welcher Fehler aufgetreten ist. +Aga +Af1Querverweise +Aga +Klasse: RscId, RscError. + +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscSrc::SetRscInst() +Aga +AliERRTYPE RscSrc::SetRscInst( RscId & rInstName, + RscInstCopy & rInst ); +Aga +Af1Beschreibung +Aga +Diese Methode setzt die Daten einer Instanz unter dem Namen rInstName in die Datenbasis ein. Ist +eine andere Instanz unter diesem Namen gespeichert, wird sie gel”scht. + + Af1Parameter +Aga +AfprInstName Identifier der Instanz. +AfprInst Die Daten aus dieser Instanz werden in die Datenbasis eingesetzt. +Aga +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() die Instanz wurde eingesetzt. +anderer Wert Es ist ein Fehler aufgetreten. +Aga +Af1Anmerkungen +Aga +Die Identifikation einer Instanz erfolgt ber den Typ und den Namen. Wird ein Fehler zurckgegeben, +dann wurde die Instanz nicht eingesetzt. + +Af1Querverweise +Aga +Klassen: RscInstCopy, RscId. +Methode: RscDataBase::DeleteRscInst(), GetRscInst(). + +Af1Beispiel +Aga +Ali..... +RscId aWindowName;// Identifier eines Fensters +RscInst aWindow; // Instanz eines Fensters +..... +//Instanz einsetzen und die Alte l”schen, falls vorhanden +aCmpInst.SetRscInst( aWindowName, aWindow ); +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscSrc::GetRscInst() +Aga +AliRscInst RscSrc::GetRscInst( RscTop * pClass, + RscId & rInstName ); +Aga +Af1Beschreibung +Aga +Diese Methode holt eine RscInst Instanz aus der Datenbasis. + +Af1Parameter +Aga +AfppClass der Typ der Instanz. +AfprInstName der Identifier der Instanz. +Aga +Af1Return-Werte +Aga +Es wird eine RscInst Intanz zurckgeliefert. + +Af1Anmerkungen +Aga +Wenn unter dem Typ und Namen keine Instanz zu finden ist, dann ist die zurckgelieferte Instanz +ungltig. + +Af1Querverweise +Aga +Klassen: RscInst, RscId. + + Af1Beispiel +Aga +AliRscId aWindowName;// Identifier eines Fensters +RscInst aWindow; // Instanz eines Fensters +RscTop * pClassType; +..... +// Klassentyp holen +pClassType = aBase.GetClassType( HashId( "Window" ) ); +// Instanz holen +aWindow = aCmpInst.GetRscInst( aWindowName, pClassType ) ); +// Instanz gefunden +if( aWindow.IsInst() ) + printf( "Instanz gefunden!" ); +.... +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscSrc::FillNameIdList() +Aga +Alivoid RscSrc::FillNameIdList( REResourceList * pList ); +Aga +Af1Beschreibung +Aga +Fllt eine Liste mit den Namen und Typen von Resourceinstanzen, die in der Datenbasis stehen. + +Af1Parameter +Aga +AfppList Dies ist die Liste, die gefllt wird. +Aga +Af1Anmerkungen +Aga +pList ist eine Liste von Listen. Resourceinstanzen k”nnen beliebige weitere Resourceinstanzen +beinhalten. Die Liste spiegelt diese Verschachtelung wieder. + +Af1Querverweise +Aga +Klasse: REResourceList. + +Af1Beispiel +Aga +Ali// Resourcedatei +Window 1000 { + ..... + PushButton 1 { ..... }; + String 1 { ..... }; + String 2 { ..... }; +}; +AliWindow 1001 { ..... }; +WorkWindow 1000 { + ..... + String 1 { ..... }; +}; +AgaEine von diesen Resourcen erzeugte Liste h„tte folgende Struktur: +Window 1000 + PushButton 1 + String 1 + String 2 +Window 1001 + WorkWindow 1000 + String 1 +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscSrc::Write...File() +Aga +AliERRTYPE RscSrc::WriteCxxFile( const String & rFileName + const String & rHxxName ); +ERRTYPE RscSrc::WriteHxxFile( const String & rFileName ); +Aga +Af1Beschreibung +Aga +Diese Methoden schreiben ein entsprechendes Format, der in der Datenbasis stehenden +Resourceinstanzen, in die Dateien. WriteHxxFile schreibt die Include-Datei fr die ".cxx"-Dateien. + +Af1Parameter +Aga +AfprFileName Dies ist der Name der Datei in die das entsprechende Format +"geschrieben werden soll. +rHxxName Dies ist der Name "hxx"-Datei, die von der "cxx"-Datei eingefgt +"wird. +Aga +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() Das Format wurde in die entsprechende Datei geschrieben. +Afpanderer Wert Es ist ein Fehler aufgetreten. Die angegebene Datei wurde +"eventuell unvollst„ndig geschrieben. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + Au0PARscInst +Aga +Aliclass RscInst { +public: + RSCINST aInst; + RscInst(); + RscInst( const RscInst & rInst ); + RscInst( RSCINST aTmpI ); + RscInst& operator = ( const RscInst& rRscInst ); + ~RscInst(); + void OverWrite( RscInstCopy & rInst ); + BOOL IsInst(); + // Listen Methoden + ERRTYPE SetElement( const RscId & rName, + RscInstCopy & rInst ); + ERRTYPE SetPosEle( USHORT nPos, + RscInstCopy & rInst ); + ERRTYPE SetPosRscId( USHORT nPos, const RscId & rId); + SUBINFO_STRUCT GetInfoEle( USHORT nPos ); + USHORT GetCount(); + RscInst GetElement( RscTop * pClass, + const RscId & rName ); + RscInst GetPosEle( USHORT nPos ); + ERRTYPE MovePosEle( USHORT nDestPos, + USHORT nSourcePos ); + ERRTYPE DeleteElement( RscTop * pClass, + RscId & rName ); + ERRTYPE DeletePosEle( USHORT nPos ); + ERRTYPE SetVar( HASHID nVarName, + RscInstCopy & rInst ); + ERRTYPE SetConst( HASHID nConstId ); + ERRTYPE SetBool( BOOL bSet ); + ERRTYPE SetNumber( long lValue ); + ERRTYPE SetString( const char * pStr ); + ERRTYPE SetRef( const RscId & rRscId ); + ERRTYPE SetDefault( HASHID nVarName ); + + RscInst& GetVar( HASHID nVarName ); + HASHID GetConst(); + USHORT GetConstPos(); + BOOL GetBool(); + long GetNumber(); + const char * GetString(); + RscId GetRef(); + BOOL IsDefault( HASHID nVarName ); + BOOL IsConsistent( RscInconsList * pList ); + + HASHID GetClassEnum( USHORT nPos ); + RscTop * GetClassType(); + HASHID GetClassName(); + ERRTYPE WriteRc( RscWriteRc & aMem ); +}; +Aga +Af1Beschreibung +Aga +Diese Klasse stellt Methoden zur Verfgung, mit denen Resourceinstanzen erzeugt, ver„ndern und +gel”scht werden k”nnen. Das Erzeugen von Instanzen erfolgt immer impliziet. Das heiát beim +Anfordern einer Instanz wird sie erzeugt, wenn sie nicht vorhanden war. + + Af1Ausnahmen +Aga +Eine Ausname bildet die Methode GetPosEle, wenn an der angegebenen Stelle keine Instanz steht, so +wird eine ungltige Instanz zurckgeliefert. + +Af1Anmerkungen +Aga +Die Implementation ist nicht auf Geschwindigkeit und Speicherbedarf optimiert. + +Af1Querverweise +Aga +Klassen: RscDataBase, RscHrc, RscSrc, RSCINST, RscTop, RscId. + +Af1Beispiel +AgaDas Beispiel zeigt, wie der Wert einer Variablen ge„ndert wird +Ali..... +RscInst aWindow; +RscInst aBorder; +RscTop* pWindowType; + +// Typ des Klasse Window +pWindowType = aDataBase.GetClassType( HashId( "Window" ) ); +// Exemplar der Klasse Window erzeugen +aWindow = aCompilerInst.CreateRscInst( pWindowType ); +// Exemplar mit Namen "Border" holen +aBorder = aWindow.GetVar( HashId( "Border" ) ); +// Wert auf TRUE setzen +aBorder.SetBool( TRUE ); +..... +Aga + Au0PARscInst::RscInst() +Aga +AliRscInst::RscInst(); +RscInst::RscInst( const RscInst & rInst ); +RscInst::RscInst( RSCINST aTmpI ); + +Af1Beschreibung +Aga +Diese Instanz beinhaltet nur eine Referenz auf die Resourcedaten. + +Af1Parameter +Aga +AfprInst ist die Instanz, aus der die Referenz bernommen wird. +aTmpI Aus dieser Instanz wird eine RscInst erzeugt. + +Af1Anmerkungen +Aga +RscInst hat zwei verschiedene Zust„nde die mit der Methode IsInst() abgefragt werden k”nnen. Liefert +IsInst() TRUE zurck, dann ist es eine gltige Instanz. Anderenfalls ist die Instanz ungltig und alle +Methoden liefern Fehler oder weitere ungltige Instanzen. + +Af1Querverweise +Aga +Klassen: RSCINST, ERRTYPE. +Methoden: IsInst(), GetClassType(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::operator = () +Aga +AliRscInst & RscInst::operator = ( const RscInst & rInst ); +Aga +Af1Beschreibung +Aga +Es werden die Referenzen von rInst bernommen. + +Af1Parameter +Aga +AfprInst Intanz von dem die Referenzen bernommen werden. +Aga +Af1Return-Werte +Aga +Es wird die eigene Instanz zurckgeliefert. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga + +Au0RscInst::~RscInst() +Aga +AliRscInst::~RscInst(); +Aga +Af1Beschreibung +Aga +Im Destruktor passiert nichts. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga + Au0RscInst::OverWrite() +Aga +Alivoid RscInst::OverWrite( RscInstCopy & rInst ); +Aga +Af1Beschreibung +Aga +Die Daten in der Instanz werden mit den Daten in rInst berschrieben. + +Af1Parameter +Aga +AfprInst ist die Instanz, deren Daten eingesetzt werden. +Aga +Af1Anmerkungen +Aga +Stimmen die Typen nicht berein, werden die Daten der gemeinsamen Oberklassen bernommen. Die +anderen Daten werden auf Default gesetzt. + +Af1Querverweise +Aga +Klasse: RscTop. +Methode: RscInstCopy::RscInstCopy(), RscTop::Create(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::IsInst() +Aga +AliBOOL RscInst::IsInst(); +Aga +Af1Beschreibung +Aga +Zeigt an ob eine gltige Instanz vorligt. + +Af1Return-Werte +Aga +AfpTRUE heiát, es liegt eine gltige Instanz vor. +FALSE heiát, es liegt keine gltige Instanz vor. +Aga +Af1Querverweise +Aga +Klasse: RSCINST +Methode: RSCINST::IsInst(); + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::SetElement() +Aga +AliERRTYPE RscInst::SetElement( const RscId & rName, + RscInstCopy & rInst); +Aga +Af1Beschreibung +Aga +Die Methode fgt eine Resourceinstanz unter dem Namen rName ein. + +Af1Parameter +Aga +AfprInst ist die Instanz die eingefgt werden soll. +AfprName ist der Identifier unter dem die Instanz eingefgt wird. + Aga +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() bedeutet, die Instanz wurde Eingefgt. +anderer Wert bedeutet, daá ein Fehler aufgetreten ist. +Aga +Af1Anmerkungen +Aga +Wenn in der Liste unter diesem Namen und Typ schon eine Instanz steht, wird die Instanz gel”scht +und die neue Instanz wird an der gleichen Stelle eingefgt. Wenn rName keine gltige Id enth„lt, wird +die Instanz am Ende angefgt. + +Af1Querverweise +Aga +Klassen: ERRTYPE, RscId, RSCINST. +Methoden: SetPosEle(), RscId::IsId(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::SetPosEle() +Aga +AliERRTYPE RscInst::SetPosEle( USHORT nPos, + RscInstCopy & rInst ); +Aga +Af1Beschreibung +Aga +An der Position nPos wird eine Resourceinstanz durch rInst ersetzt. + +Af1Parameter +Aga +AfprInst ist die Instanz die an die Position nPos gesetzt wird. +nPos ist die Position an die die Instanz gesetzt wird. +Aga +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() bedeutet, die Instanz auf nPos wurde ersetzt. +andere Wert bedeutet, die Instanz wurde nicht ersetzt. +Aga +Af1Anmerkungen +Aga +Wenn ein Fehler zurckgeliefert wird, so heiát das meistens, daá an der Position nPos keine +Reourceinstanz steht. + +Af1Querverweise +Aga +Klassen: ERRTYPE, RSCINST. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::SetPosRscId() +Aga +AliERRTYPE RscInst::SetPosRscId( USHORT nPos, + const RscId & rId ); +Aga +Af1Beschreibung +Aga +An der Position nPos wird der Identifier durch rId ersetzt. + +Af1Parameter +Aga +AfprId ist die Id die an die Position nPos gesetzt wird. +nPos ist die Position, an die die Id gesetzt wird. +Aga +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() bedeutet, die Id auf nPos wurde ersetzt. +andere Wert bedeutet, die Id wurde nicht ersetzt. +Aga +Af1Anmerkungen +Aga +Wenn ein Fehler zurckgeliefert wird, so heiát das meistens, daá an der Position nPos keine +Reourceinstanz steht. + +Af1Querverweise +Aga +Klassen: ERRTYPE, RSCINST. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga + +Aga +Au0RscInst::GetInfoEle() +Aga +AliSUBINFO_STRUCT RscInst::GetInfoEle( USHORT nPos ); +Aga +Af1Beschreibung +Aga +Es wird Information ber die Resourceinstanz, die auf nPos steht, zurckgeliefert. + +Af1Parameter +Aga +AfpnPos ist die Position der Resourceinstanz. +Aga +Af1Return-Werte +Aga +Die Information ber die Resourceinstanz wird zurckgeliefert. + +Af1Anmerkungen +Aga +Steht an der Stelle nPos keine Resourceinstanz, dann ist der Inhalt undefiniert. + +Af1Querverweise +Aga +Klassen: SUBINFO_STRUCT, RSCINST. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetCount() +Aga +AliUSHORT RscInst::GetCount(); +Aga +Af1Beschreibung +Aga +Gibt die Anzahl der Resourceinstanzen zurck, die in der Liste gespeichert sind. + +Af1Return-Werte +Aga +Es wird die Anzahl der Resourceinstanzen zurckgeliefert. + +Af1Querverweise +Aga +Klasse: RSCINST. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::GetElement() +Aga +AliRscInst RscInst::GetElement( RscTop * pClass, + const RscId & rName ); +Aga +Af1Beschreibung +Aga +Diese Methode liefert eine Referenz auf die Daten der Instanz zurck, die unter diesem Namen in der +Liste steht. Wenn unter diesem Namen keine Instanz steht, dann wir sie erzeugt. + +Af1Parameter +Aga +AfppClass ist der Typ der Instanz. +rName ist der Identifier der Instanz. +Aga +Af1Return-Werte +Aga +Es wird eine Instanz zurckgeliefert. + +Af1Anmerkungen +Aga +Besteht in der Liste eine Einschr„nkung auf bestimmte Resourceinstanzen, zum Beispiel nur Instanzen +vom Typ Window oder abgeleitete Typen, dann kann es vorkommen, daá eine ungltige Instanz +zurckgeliefert wird. + +Af1Querverweise +Aga +Klassen: RscTop, RscId. +Methode: IsInst(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::GetPosEle() +Aga +AliRscInst RscInst::GetPosEle( USHORT nPos ); +Aga +Af1Beschreibung +Aga +Es wird eine Referenz auf die Daten der Instanz an der angegebenen Stelle zurckgeliefert. + +Af1Parameter +Aga +AfpnPos ist die Position der Resourceinstanz. +Aga +Af1Return-Werte +Aga + Es wird eine Resourceinstanz zurckgeliefert. + +Af1Anmerkungen +Aga +Wenn an der Position keine Instanz steht, dann wird eine ungltige Instanz zurckgeliefert. + +Af1Querverweise +Aga +Klasse: RscInst. +Methode: IsInst(). +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::MovePosEle() +Aga +AliERRTYPE RscInst::MovePosEle( USHORT nDestPos + USHORT nSourcePos ); +Aga +Af1Beschreibung +Aga +In einem Feld wird die Resourceinstanz an der Position nSourcePos an die Stelle nDestPos +verschoben. + +Af1Parameter +Aga +AfpnDestPos An dieser Position wird die Instanz eingefgt. +nSourcePos Von dieser Position wird die Instanz genommen. +Aga +Af1Return-Werte +Aga +Es wird ein Fehler zurckgegeben, wenn nSourcePos oder nDestPos ungltige Positionen sind. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +0Ä +Aga +Au0RscInst::DeleteElement() +Aga +AliERRTYPE RscInst::DeleteElement( RscTop * pClass, + RscId& rName ); +Aga +Af1Beschreibung +Aga +In der Liste wird die erste Resourceinstanz mit dem entsprechenden Namen und dem Typ gel”scht. + +Af1Parameter +Aga +AfppClass ist der Typ der Resourceinstanz. +rName ist der Identifier der Resourceinstanz. +Aga +Af1Return-Werte +Aga +Gibt es keinen Fehler, dann wurde die Resourceinstanz gel”scht. +Aga +Af1Querverweise +Aga +Klassen: RscTop, RscId. + + AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::DeletePosEle() +Aga +AliERRTYPE RscInst::DeletePosEle( USHORT nPos ); +Aga +Af1Beschreibung +Aga +Die Resourceinstanz an der Stelle nPos wird gel”scht. + +Af1Parameter +Aga +AfpnPos ist die Position der Resourceinstanz. +Aga +Af1Return-Werte +Aga +Gibt es keinen Fehler, dann wurde die Resourseinstanz gel”scht. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::SetVar() +Aga +AliERRTYPE RscInst::SetVar( HASHID nVarName, + RscInstCopy & rInst ); +Aga +Af1Beschreibung +Aga +In die Variable mit Namen nVarName wird die Resourceinstanz rInst eingesetzt. + +Af1Parameter +Aga +AfpnVarName ist der Name der Variablen. +rInst ist die Instanz, die eingesetzt wird. +Aga +Af1Return-Werte +Aga +AgaGibt es keinen Fehler, wurde die Instanz eingesetzt. +Aga +Af1Anmerkungen +Aga +Ein Fehler tritt auf, wenn der Variablentyp und der Instanztyp nicht bereinstimmen. + +Af1Querverweise +Aga +Klasse: RscTop. +Methode: GetVar(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::SetConst() +Aga +AliERRTYPE RscInst::SetConst( HASHID nConst ); +Aga +Af1Beschreibung +Aga + In die Instanz wird die Konstante nConst eingesetzt. + +Af1Parameter +Aga +AfpnConst ist die Konstante, die eingesetzt wird. +Aga +Af1Return-Werte +Aga +Gibt es keinen Fehler, wurde die Konstante eingesetzt. +Aga +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: GetConst(). + +Af1Beispiel +AgaŽnderung einer Konstanten. + +AliRscInstCopy aColorInst; +RscInst aConst; +RscTop* pColorType; +..... +// Erzeuge Farbinstanz +aColorInst = aCmpInst.CreateRscInst( pColorType ); +//Const-Instanz holen +aConst = aColorInst.GetVar( HashId( "Predefined" ) ); +// Farbe auf blau setzten +aConst.SetConst( HashId( "COL_BLUE" ) ); +// Die gleiche Wirkung haette +// aConst.SetNumber( COL_BLUE ); +// wobei COL_BLUE in sv.hxx definiert ist + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::SetBool() +Aga +AliERRTYPE RscInst::SetBool( BOOL bVal ); +Aga +Af1Beschreibung +Aga +In die Instanz wird der Wert bVal eingesetzt. + +Af1Parameter +Aga +AfpbVal ist der Wert, der eingesetzt wird. +Aga +Af1Return-Werte +Aga +AgaGibt es keinen Fehler, wurde der Wert eingesetzt. +Aga +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: GetBool(). + +Af1Beispiel +AgaŽndern eines Wahrheitswertes. + + AliRscInstCopy aWindowInst; +RscInst aBool; +RscTop* pWindowType; +..... +// Erzeuge Windowinstanz +aWindowInst = aCmpInst.CreateRscInst( pWindowType ); +aBool = aWindowInst.GetVar( HashId( "Border" ) ); +// Fensterattribut Rand setzen +aBool.SetBool( TRUE ); + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga +Au0RscInst::SetNumber() +Aga +AliERRTYPE RscInst::SetNumber( long lVal ); +Aga +Af1Beschreibung +Aga +In die Instanz wird der Wert lVal eingesetzt. + +Af1Parameter +Aga +AfplVal ist der Wert, der eingesetzt wird. +Aga +Af1Return-Werte +Aga +AgaGibt es keinen Fehler, wurde die Zahl eingesetzt. +Aga +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: GetNumber(). + +Af1Beispiel +AgaŽndern eines Zahlenwertes. + +AliRscInstCopy aColorInst; +RscInst aNumber; +RscTop* pColorType; +..... +// Erzeuge Farbinstanz +aColorInst = aCmpInst.CreateRscInst( pColorType ); +aNumber = aColorInst.GetVar( HashId( "RED" ) ); +// volle Rotintensit„t +aNumber.SetNumber( 0xFFFF ); + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::SetString() +Aga +AliERRTYPE RscInst::SetString( const char * pStr ); +Aga +Af1Beschreibung +Aga +In die Instanz wird der String pStr eingesetzt. + +Af1Parameter + Aga +AfppStr ist der String, der eingesetzt wird. +Aga +Af1Return-Werte +Aga +AgaGibt es keinen Fehler, wurde der String eingesetzt. +Aga +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: GetString(); + +Af1Beispiel +AgaŽndern einer Zeichenkette. + +AliRscInstCopy aFontInst; +RscInst aStr; +RscTop* pFontType; +..... +// Erzeuge Fontinstanz +aFontInst = aCmpInst.CreateRscInst( pFontType ); +aStr = aFontInst.GetVar( HashId( "Text" ) ); +// Fontnamen setzen +aStr.SetString( "Helvetica" ); + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::SetRef() +Aga +AliERRTYPE RscInst::SetRef( const RscId & rRefName ); +Aga +Af1Beschreibung +Aga +Beim Schreiben der verschiedenen Dateien wird nicht die Resourceinstanz verwendet, sondern eine +Resourceinstanz vom selben Typ mit dem Namen rRefName. Diese Instanz wird in der Datenbasis +gesucht. + +Af1Parameter +Aga +AfprRefName ist der Identifier der referenzierten Instanz. +Aga +Af1Return-Werte +Aga +AgaGibt es keinen Fehler, wurde die Referenz eingesetzt. + +Af1Anmerkungen +Aga +Die referenzierte Instanz wird nur in der ersten Ebene der Datenbasis gesucht. +Mit SetRef( RscId() ), werden die Referenzen wieder aufgehoben. + +Af1Querverweise +Aga +Klassen: RscTop, RscId. +Methoden: GetRef(). + +Af1Beispiel +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + Aga +Au0RscInst::SetDefault() +Aga +AliERRTYPE RscInst::SetDefault( HASHID nVarName ); +Aga +Af1Beschreibung +Aga +Die Instanz hinter der Variable nVarName wird auf ihre Defaultwerte gesetzt. + +Af1Parameter +Aga +AfpnVarName ist der Name der Variablen. +Aga +Af1Return-Werte +Aga +AgaGibt es keinen Fehler, wurde die Instanz nicht auf Default gesetzt. + +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: IsDefault(). + +Af1Beispiel +Aga +AliRscInst aColorInst; +RscTop* pColorType; +..... +// Hole Farbinstanz +aColorInst = aCmpInst.GetRscInst( pColorType, + RscId( 1000 ) ); +// Rot auf Default setzten +aColorInst.SetDefault( HashId( "Red" ) ); + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + + +Au0RscInst::GetVar() +Aga +AliRscInst RscInst::GetVar( HASHID nVarName ); +Aga +Af1Beschreibung +Aga +Die Methode liefert eine Kopie des Inhaltes der Variablen nVarName. + +Af1Parameter +Aga +AfpnVarName ist der Name der Variablen. +Aga +Af1Return-Werte +Aga +Es wird eine Resourceinstanz zurckgeliefert. + +Af1Anmerkungen +Aga +Existiert keine Variable unter diesem Namen, dann wird eine ungltige Instanz zurckgeliefert. + +Af1Querverweise + Aga +Klassen: RscTop. +Methoden: SetVar(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetConst() +Aga +AliHASHID RscInst::GetConst(); +Aga +Af1Beschreibung +Aga +Die Methode liefert die Instanz als Konstante. + +Af1Return-Werte +Aga +Der Wert der Konstanten. +Kann die Instanz nicht in eine Konstante umgewandelt werden, wird HASH_NONAME +zurckgeliefert. + +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: SetConst(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetBool() +Aga +AliBOOL RscInst::GetBool(); +Aga +Af1Beschreibung +Aga +Die Methode liefert die Instanz als Wahrheitswert. + +Af1Return-Werte +Aga +Es wird ein boolscher Wert zurckgeliefert. +Kann die Instanz nicht in einen Wahrheitswert umgewandelt werden, wird FALSE zurckgeliefert. + +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: SetBool(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetNumber() +Aga +Alilong RscInst::GetNumber(); +Aga +Af1Beschreibung +Aga +Die Methode liefert die Instanz als Zahl. + + Af1Return-Werte +Aga +Es wird ein Wert zurckgeliefert. +Kann die Instanz nicht in ein Zahl umgewandelt werden, wird 0 zurckgeliefert. + +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: SetNumber(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetString() +Aga +Aliconst char * RscInst::GetVar(); +Aga +Af1Beschreibung +Aga +Die Methode liefert die Instanz als String. + +Af1Return-Werte +Aga +Es wird ein Zeiger auf eine Zeichenkette zurckgeliefert. +Kann die Instanz nicht in einen String umgewandelt werden, wird NULL zurckgeliefert. + +Af1Querverweise +Aga +Klassen: RscTop. +Methoden: SetString(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetRef() +Aga +AliRscId RscInst::GetRef(); +Aga +Af1Beschreibung +Aga +Ist in der Instanz eine Referenz eingetragen, wird diese zurckgegeben. + +Af1Return-Werte +Aga +Es wird der Identifier der Referenz zurckgeliefert. + +Af1Anmerkungen +Aga +Der zurckgelieferte Identifier kann ungltig sein. Das ist der Fall, wenn keine Referenz besteht. + +Af1Querverweise +Aga +Klassen: RscTop, RscId. +Methode: IsId(), SetDefault(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + + Au0RscInst::IsDefault() +Aga +AliBOOL RscInst::IsDefault( HASHID nVarName ); +Aga +Af1Beschreibung +Aga +Stellt fest ob die genannte Variable noch die Defaulteinstellung besitzt. + +Af1Parameter +Aga +AfpnVarName ist der Name der Variablen. +Aga +Af1Return-Werte +Aga +AfpTRUE bedeutet, die Variable hat die Defaulteinstellung. +FALSE bedeutet, sie wurde ver„ndert. +Aga +Af1Querverweise +Aga +Methoden: SetDefault(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::IsConsistent() +Aga +AliBOOL RscInst::IsConsistent( RscInconsList * pList ); +Aga +Af1Beschreibung +Aga +Die Methode berprft ob diese Instanz noch konsistent ist. + +Af1Parameter +Aga +AfppList Eine Liste die mit den RscId-Objekten gefllt wird, die +"Inkonsistenzen hervorrufen. pList darf Null sein. +Aga +Af1Return-Werte +Aga +AfpTRUE bedeutet die Instanz ist konsistent. +FALSE bedeutet die Instanz ist inkonsistent. +Aga +Af1Anmerkungen +Aga +Ein RscId-Objekt kann aus Objekten zusammengesetzt sein, die global ver„ndert werden k”nnen. +Nach einer solchen Ver„nderung muá die Konsistenz berprft werden. + +Af1Querverweise +Aga +Klassen: RscId, RscHrc, RscFileTab. +Mehtoden: RscDataBase::MakeConsistent(), RscTop::IsConsistent(). + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Au0 +Au0RscInst::GetClassEnum() +Aga + AliHASHID RscInst::GetClassEnum( USHORT nPos ); +Aga +Af1Beschreibung +Aga +Diese Methode liefert den Namen der Konstanten zurck, die in einem Aufz„hlungstyp an der Position +nPos definiert ist. + +Af1Parameter +Aga +AfpnPos Position der Konstante. +Aga +Af1Return-Werte +Aga +AfpHASH_NONAME Dieser Wert wird zurckgeliefert, wenn der Variablentyp kein +"Aufz„hlungstyp war oder wenn nPos >= der Anzahl der +"Konstanten. +AgaSonst wird der Name der Konstanten zurckgeliefert. +Aga +Af1Beispiel +Aga +Das Beispiel zeigt wie die Namen eine Aufz„hlungstypen ermittelt werden k”nnen. +AgaVariable ist ein Aufz„hlungstyp mit den Werten COL_WHITE, COL_RED und COL_BLACK. Die +Konstanten haben die Name "White", "Red", "Black". +Der Variablenname ist "Predefined". +Die Klasse, in der diese Variable definiert ist, heiát "Color". +Ali +HASHID nConstName; +HASHID nVarName; +RscInst aColorInst; +RscInst aConst; +USHORT i; + +nVarName = HashId( "Predefined" ); //Variablennamen setzen +// pCmpEd ist eine Compiler-Instanz +aColorInst = pCmpEd->CreateRscInst( + pCmpEd->GetClassType( HashId( "Color" ) ) ); + if( aColorInst.IsInst() ){ //Instanz wurde erzeugt + aConst = aColorInst.GetVar( nVarName ); + i = 0; + nConstName = aConst.GetClassEnum( i ); + while( HASH_NONAME != nConstName ){ +  printf( "%s\n", GetHashString( nConstName ) ); +  i++; +  nConstName = aConst.GetClassEnum( i ); + } +} +Aga +Die Ausgabe ist: +White +Red +Black +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetTypeClass() +Aga +AliRscTop * RscInst::GetTypeClass(); +Aga +Af1Beschreibung + Aga +Diese Methode liefert den Typ der Instanz zurck. + +Af1Return-Werte +Aga +Der Typ der Instanz wird zurckgeliefert. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInst::GetClassName() +Aga +AliHASHID RscInst::GetClassName(); +Aga +Af1Beschreibung +Aga +Diese Methode liefert den Namen einer Klasse. + +Af1Return-Werte +Aga +AfpHASH_NONAME Dieser Wert wird zurckgeliefert, wenn die Klasse keinen Namen +"hat. +AgaAnsonsten wird der Name der Klasse zurckgeliefert. + +Af1Beispiel +AgaDiese Funktion gibt zu einer Instanz den Klassennamen aus. + +Alivoid PrintClassName( RscInst & rInst ){ +// rInst, Instanz deren Klassenname ausgegeben werden soll +HASHID nClassName; + +nClassName = rInst.GetClassName(); // Klassenname holen +if( HASH_NONAME == nClassName ) + printf( "Kein Klassenname\n" ); +else + printf( "%s\n", GetHashString( nClassName ) ); +} +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Au0 +Au0RscInst::WriteRc() +Aga +AliERRTYPE RscInst::WriteRc( RscWriteRc & aMem ); +Aga +Af1Beschreibung +Aga +Diese Methode erzeugt eine Resource im StarView Resourceformat. Mit dieser Resource kann der +Resourcekonstruktor der entsprechenden Klasse gerufen werden. + +Af1Parameter +Aga +AfpaMem ist die Instanz, die die Resourcedaten enth„lt. +Aga +Af1Return-Werte +Aga +AfpERRTYPE.IsOk() bedeutet, daá in aMem eine korrekte Resource steht. + anderer Wert bedeutet, das Format ist nicht korrekt. +Aga +Af1Ausnahmen +Aga +Die System abh„ngigen Resourcen Icon, Bitmap und Pointer werden nicht vollst„ndig geschrieben. +Um einen Programmfehler zu vermeiden, mssen die StarView-Klassen entsprechend abgesichert sein. + +Af1Anmerkungen +Aga +Die Referenzen mssen zum Zeitpunkt von WriteRc aufgel”st werden k”nnen. K”nnen sie nicht +aufgel”st werden, werden die Daten der Instanz benutzt, in der die Referenz angegeben ist. + +Af1Querverweise +Aga +Klassen: RscWriteRc, ERRTYPE. + +Af1Beispiel +Aga +AliRscInst aColor; +RscTop* pColorType; +Color aSvColor; + +// Farbinstanz erzeugen +aColor = aCmpInst.CreateColor( pColorType ); +// Farbe auf Gelb setzten +AliaColor.SetConst( HashId( "Predefined" ), + HashId( "COL_YELLOW" ) ); + +RscWriteRc aMem; +if( aColor.WriteRc( aMem ).IsOk() ){ + aSvColor = Color( RscId( aMem.GetRes() ) ); + ..... +}; +Aga + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + Au0PARscInstCopy +Aga +Aliclass RscInstCopy { +public: + RscInstCopy(); + RscInstCopy( const RscInstCopy & rInst ); + RscInstCopy( const RscInst & rInst ); + RscInstCopy( RSCINST aTmpI ); + RscInstCopy( RscTop * pNewType, + const RscInst & rInst ); + RscInstCopy& operator = (const RscInstCopy & rRscInst); + RscInstCopy& operator = ( const RscInst & rRscInst ); + ~RscInstCopy(); +}; +Aga +Af1Beschreibung +Aga +Mit Hilfe dieser Klasse wird eine Kopie einer Resourceinstanz angefertigt. Die Kopie enth„lt keine +Referenz in die Datenbasis. Es kann somit auch nicht zu einem Fehler kommen, wenn eine +Resourceinstanz in der Datenbasis gel”scht wird. Solch ein Fehler kann bei einer Instanz der Klasse +RscInst auftreten. + +Af1Anmerkung +Aga +Alle Makros die in der Datenbasis ge„ndert werden, „ndern sich auch in dieser Instanz. Mit der +Methode IsConsistent() kann diese Instanz auf Konsistenz berprft werden. + +Af1Querverweise +Aga +Klassen: RscDataBase, RscHrc, RscSrc, RSCINST, RscTop, RscId. + +Af1Beispiel +AgaDas Beispiel zeigt, wie der Wert einer Variablen ge„ndert wird +Ali..... +RscInstCopy aWindow; +RscInstCopy aBorder; +RscTop* pWindowType; + +// Typ des Klasse Window +pWindowType = aDataBase.GetClassType( HashId( "Window" ) ); +// Exemplar der Klasse Window erzeugen +aWindow = aCompilerInst.CreateRscInst( pWindowType ); +// Exemplar mit Namen "Border" holen +aBorder = aWindow.GetVar( HashId( "Border" ) ); +// Wert auf TRUE setzen +aBorder.SetBool( TRUE ); +// wieder in aWindow einsetzen +aWindow.SetVar( HashId( "Border" ), aBorder ); +..... +Aga + Au0PARscInstCopy::RscInstCopy() +Aga +AliRscInstCopy::RscInstCopy(); +RscInstCopy::RscInstCopy( const RscInst & rInst ); +RscInstCopy::RscInstCopy( const RscInstCopy & rInst ); +RscInstCopy::RscInstCopy( RSCINST aTmpI ); +RscInstCopy::RscInstCopy( RscTop * pNewType, + const RscInst & rInst ); +Aga +Af1Beschreibung +Aga +Im Konstruktor wird eine Instanz erzeugt oder kopiert. + +Af1Parameter +Aga +AfprInst ist die Instanz, die kopiert wird. +aTmpI Aus dieser Instanz wird eine RscInstCopy erzeugt. +pNewType Wenn dieser Konstruktor verwendet wird, wird eine Instanz mit +"Typ pNewType erzeugt. Alle Daten ab der ersten gemeinsamen +"Oberklasse von rInst und pNewType werden bernommen. +Aga +Af1Querverweise +Aga +Klassen: RSCINST, ERRTYPE. +Methoden: IsInst(), GetClassType(). + +Af1Beispiel +AgaEs wird gezeigt wie aus einer Button-Instanz eine Edit-Instanz erzeugt wird. + +AliRscInstCopy aButton; +RscInstCopy aEdit; +RscTop * pEditType = + aDataBase.GetClassType( HashId( "Edit" ) ); +//Voraussetzung: In aButton ist gltige Button-Instanz +//Erzeuge Edit-Instanz +aEdit = RscInstCopy( pEditType, aButton ); +Aga +Alle Daten oberhalb von der Klasse Control wurden nach aEdit kopiert. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ + +Au0RscInstCopy::operator = () +Aga +AliRscInstCopy & RscInstCopy::operator = + ( const RscInst & rInst ); +RscInstCopy & RscInstCopy::operator = + ( const RscInstCopy & rInst ); +Aga +Af1Beschreibung +Aga +Es werden die Daten von rInst in die Instanzdaten kopiert. + +Af1Parameter +Aga +AfprInst Intanz von dem die Daten bernommen werden. +Aga +Af1Return-Werte +Aga + Es wird die eigene Instanz zurckgeliefert. +Aga +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga + +Au0RscInstCopy::~RscInstCopy() +Aga +AliRscInstCopy::~RscInstCopy(); +Aga +Af1Beschreibung +Aga +Die Daten in der Instanz werden gel”scht. + +AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Aga + SsvPA +Au0Stichwortverzeichnis +Aga +Asv +RscDataBase 6 +RscDataBase::AddHrcFile() 11 +RscDataBase::AddSrcFile() 10 +RscDataBase::FindDef() 12 +RscDataBase::GetClassType() 7 +RscDataBase::GetFileKey() 12 +RscDataBase::GetFileStruct() 9 +RscDataBase::GetFileTab() 9 +RscDataBase::GetPathList() 10 +RscDataBase::MakeConsistent()  8 +RscDataBase::RemoveFile() 12 +RscDataBase::RscDataBase() 7 +RscDataBase::ScanForIncFiles()  11 +RscHrc #14 +RscHrc::ChangeDef() 20 +RscHrc::ChangeDefName() 22 +RscHrc::DeleteDef() 21 +RscHrc::FindDef() 19 +RscHrc::GetDefineList() 18 +RscHrc::GetDependList() 23 +RscHrc::GetFileKey() 16 +RscHrc::GetFileName() 18 +RscHrc::GetFileStruct() 22 +RscHrc::GetPathName() 17 +RscHrc::InsertDepend() 18 +RscHrc::IsDefUsed() 21 +RscHrc::IsDirty() 16 +RscHrc::NewDef() 19 +RscHrc::ReadFile() 15 +RscHrc::RscHrc() 15 +RscHrc::SetDirty() 16 +RscHrc::SetFileName() 17 +RscHrc::SetPathName() 17 +RscHrc::WriteFile() 23 +RscHrc::~RscHrc() 15 +RscInst "31 +RscInst::DeleteElement() 38 +RscInst::DeletePosEle() 39 +RscInst::GetBool() 44 +RscInst::GetClassEnum() 46 +RscInst::GetClassName() 48 +RscInst::GetConst() 44 +RscInst::GetCount() 36 +RscInst::GetElement() 37 +RscInst::GetInfoEle() 36 +RscInst::GetNumber() 44 +RscInst::GetPosEle() 37 +RscInst::GetRef() 45 +RscInst::GetString() 45 +RscInst::GetTypeClass() 47 +RscInst::GetVar() 43 +RscInst::IsConsistent() 46 +RscInst::IsDefault() 46 +RscInst::IsInst() 34 +RscInst::MovePosEle() 38 +RscInst::operator = () 33 +RscInst::OverWrite() 34 +RscInst::RscInst() 33 +RscInst::SetBool() 40 +RscInst::SetConst() 39 +RscInst::SetDefault() 43 +RscInst::SetElement() 34 +RscInst::SetNumber() 41 +RscInst::SetPosEle() 35 +RscInst::SetPosRscId() 35 +RscInst::SetRef() 42 +RscInst::SetString() 41 +RscInst::SetVar() 39 +RscInst::WriteRc() 48 +RscInst::~RscInst() 33 +RscInstCopy 50 +RscInstCopy::operator = () 51 +RscInstCopy::RscInstCopy() 51 +RscInstCopy::~RscInstCopy() 52 +RscSrc #24 +RscSrc::CreateRscInst() 26 +RscSrc::DeleteRscInst() 27 +RscSrc::FillNameIdList() 29 +RscSrc::GetRscInst() 28 +RscSrc::RscSrc() 26 +RscSrc::SetRscInst() 27 +RscSrc::Write...File() 30 + +Aga + \ No newline at end of file diff --git a/binfilter/qa/cppunit/makefile.mk b/binfilter/qa/cppunit/makefile.mk new file mode 100644 index 000000000..319ba253e --- /dev/null +++ b/binfilter/qa/cppunit/makefile.mk @@ -0,0 +1,115 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# +# for a copy of the LGPLv3 License. +# +#***********************************************************************/ + +PRJ = ../.. +PRJNAME = binfilter +TARGET = test_binfilter + +ENABLE_EXCEPTIONS = TRUE +VISIBILITY_HIDDEN = TRUE + +.INCLUDE: settings.mk + +CFLAGSCXX += $(CPPUNIT_CFLAGS) + +.IF "$(OS)" == "IOS" +CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET) +.ENDIF + +SHL1IMPLIB = i$(SHL1TARGET) +SHL1OBJS = $(SLO)/test_binfilter.obj +SHL1RPATH = NONE +SHL1STDLIBS = $(TESTLIB) $(UNOTESTLIB) $(CPPULIB) $(CPPUNITLIB) $(SALLIB) +SHL1TARGET = test_binfilter +SHL1USE_EXPORTS = name +DEF1NAME = $(SHL1TARGET) + +SLOFILES = $(SHL1OBJS) + +.INCLUDE: target.mk + +.IF "$(OS)" == "WNT" +my_file = file:/// +.ELSE +my_file = file:// +.END + +ALLTAR: test + +test_components = \ + component/framework/util/fwk \ + component/sfx2/util/sfx \ + ucb1 \ + ucpfile1 + +#Make a services.rdb with the services we know we need to get up and running +$(MISC)/$(TARGET)/services.input : makefile.mk + $(MKDIRHIER) $(@:d) + echo \ + '$(test_components:^"":+".component")' \ + > $@ + +$(MISC)/$(TARGET)/services.rdb .ERRREMOVE : makefile.mk $(MISC)/$(TARGET)/services.input + $(MKDIRHIER) $(@:d) + $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@.tmp \ + $(SOLARENV)/bin/packcomponents.xslt $(MISC)/$(TARGET)/services.input + cat $(MISC)/$@.tmp | sed 's|/program/|/|g' | sed 's|BRAND_BASE_DIR|SOLVER_DIR|g' > $@ + +test_owncomponents = \ + bf_migratefilter \ + bf_wrapper + +$(MISC)/$(TARGET)/ownservices.input : makefile.mk + $(MKDIRHIER) $(@:d) + echo \ + '$(test_owncomponents:^"":+".component")' \ + > $@ + +$(MISC)/$(TARGET)/ownservices.rdb .ERRREMOVE : makefile.mk $(MISC)/$(TARGET)/ownservices.input + $(MKDIRHIER) $(@:d) + $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/ -o $@.tmp \ + $(SOLARENV)/bin/packcomponents.xslt $(MISC)/$(TARGET)/ownservices.input + cat $(MISC)/$@.tmp | sed 's|/program/|/|g' > $@ + +$(DLLDEST)/legacy_binfilters.rdb .ERRREMOVE : makefile.mk $(MISC)/legacy_binfilters.rdb + $(MKDIRHIER) $(@:d) + cat $(MISC)/legacy_binfilters.rdb | sed 's|/program/|/|g' > $@ + +#Tweak things so that we use the .res files in the solver +STAR_RESOURCEPATH:=$(PWD)/$(BIN)$(PATH_SEPERATOR)$(SOLARBINDIR) +.EXPORT : STAR_RESOURCEPATH + +test .PHONY: $(SHL1TARGETN) $(MISC)/$(TARGET)/services.rdb $(MISC)/$(TARGET)/ownservices.rdb $(DLLDEST)/legacy_binfilters.rdb + @echo ---------------------------------------------------------- + @echo - start unit test \#1 on library $(SHL1TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL1TARGETN) --headless --invisible \ + '-env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/udkapi.rdb $(my_file)$(SOLARBINDIR)$/types.rdb' \ + '-env:UNO_SERVICES=$(my_file)$(SOLARXMLDIR)/ure/services.rdb $(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb $(my_file)$(PWD)/$(MISC)/$(TARGET)/ownservices.rdb'\ + -env:URE_INTERNAL_LIB_DIR="$(my_file)$(SOLARSHAREDBIN)" \ + -env:SOLVER_DIR="$(my_file)$(SOLARSHAREDBIN)" \ + -env:BRAND_BASE_DIR="$(my_file)$(PWD)/$(DLLDEST)" diff --git a/binfilter/qa/cppunit/test_binfilter.cxx b/binfilter/qa/cppunit/test_binfilter.cxx new file mode 100644 index 000000000..abca4605e --- /dev/null +++ b/binfilter/qa/cppunit/test_binfilter.cxx @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Initial Developer of the Original Code is + * Caolán McNamara (Red Hat, Inc.) + * Portions created by the Initial Developer are Copyright (C) 2011 the + * Initial Developer. All Rights Reserved. + * + * Contributor(s): Caolán McNamara + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#include +#include +#include + +#include +#include + +using namespace ::com::sun::star; + +namespace +{ + class BinFilterTest + : public test::FiltersTest + , public test::BootstrapFixture + { + public: + BinFilterTest() : BootstrapFixture(true, true) {} + + virtual void setUp(); + + virtual bool load(const rtl::OUString &, + const rtl::OUString &rURL, const rtl::OUString &); + + void test(); + + CPPUNIT_TEST_SUITE(BinFilterTest); + CPPUNIT_TEST(test); + CPPUNIT_TEST_SUITE_END(); + private: + uno::Reference m_xFilter; + }; + + void BinFilterTest::setUp() + { + test::BootstrapFixture::setUp(); + + m_xFilter = uno::Reference< document::XFilter >(m_xSFactory->createInstance( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( + "com.sun.star.comp.office.BF_MigrateFilter"))), + uno::UNO_QUERY_THROW); + } + + bool BinFilterTest::load(const rtl::OUString &rFilter, + const rtl::OUString &rURL, const rtl::OUString &rUserData) + { + uno::Sequence< beans::PropertyValue > aDescriptor(3); + aDescriptor[0].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("URL")); + aDescriptor[0].Value <<= rURL; + aDescriptor[1].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UserData")); + uno::Sequence< rtl::OUString > aUserData(1); + aUserData[0] = rUserData; + aDescriptor[1].Value <<= aUserData; + aDescriptor[2].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FilterName")); + aDescriptor[2].Value <<= rFilter; + return m_xFilter->filter(aDescriptor); + } + + void BinFilterTest::test() + { + testDir(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StarWriter 5.0")), + getURLFromSrc("/binfilter/qa/cppunit/data/sdw/"), + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CSW5"))); + } + + CPPUNIT_TEST_SUITE_REGISTRATION(BinFilterTest); +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit