.\\\ 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