************************************************************************** * * * RAMSCH-RCS 1.0 * * * * by Rainer M. Schmid * * * ************************************************************************** 0. Allgemeines Dies ist ein fantastisches, unglaubliches, noch nie dagewesenes Resource-Construction-Set von einem unglaublichen Programmierer entworfen und geschrieben: MIR Noch unglaublicher und fantastischer ist, daž dieses Programm Public Domain ist und nix kostest und jeder es frei kopieren kann. (Dennoch will ich niemanden abhalten, mir eine kleine Spende zu spendieren). Es sollte in der mittleren und hohen Aufl”sung ohne Schwierigkeiten laufen (bei der niedrigen Aufl”sung gibt es Probleme, da die Dialogfelder zu grož sind). Sollten wider Erwarten dennoch Fehler auftreten schreiben Sie mir bitte m”glichst genau, wie, wann, unter welchen Umst„nden etc. der Fehler aufgetreten ist, so daž ich ihn zu Hause wiederholen kann (siehe auch Abschnitt Bugs). 1. Bedienung Da viele Funktionen des Programms selbterkl„rend sind, m”chte ich nur auf Besonderheiten der Bedienung eingehen. 1.1. Hinzufgen eines Trees Links neben dem Window ist ein Dialog zu sehen. Die Icons k”nnen ins Fenster gedraggt werden, um einen neuen Tree zu erzeugen. Die einzelnen Icons haben dabei folgende Bedeutung: MENUE: Ein Pulldown-Menue wird im Speicher erzeugt. DIALOG: Ein normales Dialogfeld wird erzeugt (dabei wird fr die Objekte ein Raster benutzt). FREE: Wie DIALOG, allerdings ohne Raster UNBEKANNT: Wie FREE, sollte man aus šbersichtlichkeit nicht verwenden; dient haupts„chlich dazu, wenn ein fremdes Resource geladen wird, das keine DEF-Datei besitzt, zu signalisieren, daž der Typ nicht erkannt werden konnte. Mit einem Doppelclick auf das jeweilige Icon im Fenster, kann es zur Bearbeitung ge”ffnet werden. Dabei „ndert sich auch der Inhalt des Dialogs, das jetzt die Objekte enth„lt, die man dem Tree hinzufgen kann. Das Hinzufgen erfolgt durch ein einfaches Draggen des Objekts an die Stelle, an der es Erscheinen soll. Die Verkettung wird so vorgenommen, daž das neue Objekt Sohn des Objekts ist, innerhalb dessen sich die linke obere Ecke des neuen Objekts sich befindet. Objekte k”nnen verschoben werden, indem man sie an die neue Position draggt. Dabei „ndert bzw. kann sich die Verkettung „ndern, wenn die linke obere Ecke des verschobenen Objekts sich in einem anderen Objekt befindet. (Dies alles gilt nicht fr Menues.) Bet„tigt man den Closer des Fensters (in dem "Tree-Bearbeitungs-Modus"), gelant man in den "Tree-hinzufgen-Modus" zurck. 1.2. Menue "RSC berladen" Entspricht dem normalen Laden, allerdings wird man nicht aufgefordert, ein File auszuw„hlen, sondern das bereits geladene Resource (Pfad und Name stehen in der Titelzeile des Fensters) wird geladen. Dabei gehen selbstverst„ndlich alle bisher gemachten Žnderungen verloren. 1.3. Menue "RSC anh„ngen" Tip: Sollten Sie Probleme mit einem Resource-File haben (d.h. es wird nicht korrekt geladen), dann sollten Sie es mal mit dieser Funktion versuchen zu laden. (Vorher aber noch ein im Speicher befindliches Resource mit "Neu" l”schen.) 1.4. Icon-Editor Das untersttzte Icon-Format entspricht dem von IconEdi (von Stefan Mnch) benutzten. Dieses Programm ist als Public-Domain erh„ltlich und jedem, der ”fters mit Icons arbeitet zu empfehlen. Da ich darauf verzichtet habe, einen Icon-Editor zu implementieren, kann man einen externen Icon-Editor aufrufen (dessen Pfad und Name muž erst mit dem Menue-Punkt "Icon-Eitor lokalisieren" festgelegt werden). 1.5. Klemmbrett Das Klemmbrett ist ein Speicher, in dem man einzelne Objekte (mit Kindern) und auch ganze Trees zwischenspeichern kann, um diese sp„ter wieder herunterzuholen. Dabei kann jeweils nur ein Objekt (d.h. Objekt, evtl. mit Kindern oder Tree) sich auf dem Klemmbrett befinden. Befand sich vorher schon eines darauf, so geht es verloren. "Ins Klemmbrett kopieren" kopiert das selektierte Objekt ins Klemmbrett. Das ursprngliche Objekt bleibt erhalten. "Ins Klemmbrett verschieben" entspricht der vorherigen Funktion, allerdings wird das ursprngliche Objekt gel”scht. "Von Klemmbrett holen" fgt das sich im Klemmbrett befindliche Objekt an der linken oberen Ecke der Root ein. (Bei Trees wird der Tree in die Treeliste aufgenommen). "Kopieren" fhrt gleichzeitig die Funktionen "Ins Klemmbrett kopieren" und "Von Klemmbrett holen" aus. Bei MENUEs funktionieren die Klemmbrett-Funktionen nicht. 1.6. Menue "Raster einstellen" Beim Typ DIALOG wird ein Raster benutzt (s.o.). Mit dieser Funktion kann man die Rastergr”že einstellen. 1.7. Menue "Bildschirmgr”že einstellen" Mit dieser Funktion kann man den maximalen x- und y-Bereich eines Dialogs in Pixeln angeben. 1.8. Menue "Sortieren" Die Kinder der ersten Generation des selektierten Objekts werden sortiert („ndert unter anderem auch die Reihenfolge, mit der sie angezeigt werden). Hierbei kann man zwischen physischen und logischen Sortieren w„hlen. Beim logischen Sortieren wird nur die Verkettung ge„ndert; die Objektnummern bleiben erhalten. Beim physischen Sortieren hingegen werden die Objekte direkt vertauscht. D.h. die Objektnummern „ndern sich und eine neue Compilierung des Programms wird notwendig. 1.9. Menue "Physisch verauschen mit..." Zuerst selektiert man ein Objekt, das man mit einem anderen physisch vertauschen will. Danach w„hlt man den Menue-Punkt an. Schliežlich selektiert man noch das Objekt, mit dem es vertauscht werden soll. Dabei „ndert sich die logische Struktur (Verkettung der Objekte untereinander) nicht, sondern nur die Objektnummern. Einen „hnlichen Effekt kann man erzielen, wenn man ein Objekt mit Doppelclick ”ffnet und dann im Eintrag Objekt-Nr diese „ndert. (Sofern diese Žnderung gltig ist wird sie auch ausgefhrt. D.h. die Objektnummern, und nur die Objektnummern, der beteiligten Objekte werden vertauscht. 1.10. Menue "Unhide" L”scht alle evtl. gesetzten Hide-Flags. 1.11. Menue "Profi-Modus" Normalerweise k”nnen die Flags "indirect" und "lastob" nicht ge„ndert werden. Diese Option erm”glicht es jedoch. (Sollte im Normalfall nicht benutzt werden, da es bei den meisten Žnderungen einen Systemabsturz hervorruft; es wurde aber der Vollst„ndigkeit halber hinzugefgt.) 1.12. Menue "Def-Liste drucken" Hiermit kann man die Namen der einzelnen Objekte ausdrucken. (Um die Wrikung der einzelnen Optionen herauszufinden, sollten sie am besten ausprobiert werden, falls die Bezeichnung nicht ganz klar ist.) 1.13. Menue "Icon-Editor lokalisieren" Mit dieser Funktion kann man den Pfad und den Namen des Programms festlegen, das bei der Funktion "Icon-Editor aufrufen" aufgerufen werden soll. 1.14. Menue "Status sichern" Diese Funktion speichert die Einstellungen fr die Suchpfade (bei RSC-Files und bei ICO-Files) und den Pfad und Namen des Icon-Editors. Ferner noch die Einstellungen der Funktionen "Bildschirmgr”že einstellen" und "Raster einstellen". Beim Programmstart werden diese automatisch geladen und benutzt. Existiert keine INF-Datei, so werden Default-Werte benutzt. 1.15. Einschr„nkungen Das Programm untersttzt den Objekttyp "G_IMAGE" nicht. Die Gesamtzahl von Trees ist auf 50 beschr„nkt. 2. Bugs "Program testing can be used very effectively to show the presence of bugs, but never to show their absenece!" (Dijkstra) Dieses Programm wurde zwar ausfhrlich getestet, Fehler k”nnen aber nicht ausgeschlossen werden, daher sollte man ”fters eine Sicherheitskopie von der Resource-Datei erstellen, um eventuellen Datenverlust zu vermeiden. Ferner bitte ich jeden, der einen Fehler entdeckt, mir dies mitzuteilen, und zwar m”glichst genau, damit ich ihn reproduzieren kann (m”glichst mit genauen Angaben des verwendeten Rechners, Betriebsystems, Erweiterungen etc.). 3. In eigener Sache Zuletzt noch ein paar Bemerkungen in eigener Sache: Ich bin gerne bereit, auf Fragen und sonstige Probleme zu antworten, allerdings sollte dann ein ausreichend frankierter Briefumschlag beigefgt werden; ansonsten kann ich nicht zurckschreiben. Fr Vorschl„ge, Wnsche, Beschwerden und destruktive Kritik bin ich dankbar und werde sie gerne in einer neuen Version aufnehmen (falls es eine geben wird, denn in einem solchen Programm steckt viel Arbeit und Zeit; und ich weiž noch nicht, ob ich noch mehr Arbeit hineinstecken soll und ob sich das lohnt). Wenn jemand das erweiterte RSC-Format (d.h. keine Beschr„nkung der L„nge des Resource auf 64K) kennt, w„re ich ihm dankbar, wenn er mir dieses mitteilen k”nnte. Auf der Diskette ist noch ein kleines Programm mit dem Namen "TEST.C" enthalten. Da ich bei einer neuen Version gerne eine Funktion implementieren wrde, die es erlaubt ein Resource als C-Quelltext in das Pogramm aufzunehmen, w„re es interressant zu erfahren, ob das Programm mit Ihrem Compiler zusammenarbeitet bzw. wie es zu modifizieren w„re, damit es l„uft. (Ein Problem k”nnte sich vieleicht beim String "str" in der Definition vom Objekt "o" ergeben.) In der mir zur Verfgung stehenden Literatur fand ich zwei verschiedene Formate fr die Iconblk-Struktur (eine mit der L„nge von 34 Bytes, die andere mit 36 Bytes). Ich habe diejenige mit 34 Bytes implementiert; es wrde mich aber interessieren, welche die gebr„uchliche ist. Aužerdem suche ich noch einen guten C-Compiler (z.B: Turbo-C, Pure-C etc.), da ich bis jetzt mit dem Public-Domain-Compiler Sozobon-C arbeite, und er doch recht langsam ist. Daher an alle, die einen C-Compiler billig abzugeben haben: MELDET EUCH!!! Als letztes noch meine Adresse, unter der ihr mich erreichen k”nnt: 4. Adresse Rainer Schmid Am Hagenweg 16 78259 Mhlhausen Tel: 07733/5521