**************************************************************************
*                                                                        *
*                          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


