FBHF7.''9 Kurzbeschreibung TVPascalForm
 Version 1.00 - Mär. 1993
E
alle Rechte bei: Jeanette Winzenburg Arndtstr. 12, W-1000 Berlin 61 ₧
Testen Sie das Programm nach Herzenslust, aber denken Sie daran, daß es sich um eine Shareware-Version handelt: wenn Sie es regelmäßig benutzen, spätestens aber nach Ablauf der Testzeit von 3 Monaten, müssen Sie eine registrierte Version (zum fairen Preis von 30,00 DM bei Vorkasse; bei Nachnahme + 6,- DM) erwerben. Die Datei REGFORM.TXT enthält ein Registrierungsformular, bereit zum Ausdrucken und Abschicken. -
 Eine Registrierung bringt einige Vorteile:
╓- Sie erhalten 50% Rabatt auf das nächste Update. - Sie erhalten den vollständigen Quelltext. - Sie können in den Genuß von immer besseren Programmiertools kommen, weil Sie die weitere Programmentwicklung fördern. -


 Inhalt                                  

 Programmidee                     
 Optik                                 
 Funktionsübersicht         
 Die Funktionen im Einzelnen      
 Fehlerbehandlung               
 Grenzen - was TVPascalForm nicht kann/können will   
 Ein Kessel Buntes - Hinweise
	
 weiter
ΘOΩrδÜ∞╖±┌≥√≤EΘP' Programmidee
₧
TVPascalForm ist eine Turbo Vision Applikation, mit der komfortabel alle Bezeichner in Pascal-Quelltexten in eine einheitliche Schreibweise gebracht werden. ╧
Die Leitidee bei der Programmentwicklung war, die Konvertierung so automatisch wie möglich - und das für ALLE Bezeichner - ablaufen zu lassen. Die ProgrammiererIn soll möglichst vollständig von der lästigen Aufgabe des Wortlisten-Tippens verschont bleiben. Als Folge davon fordert TVPascalForm für jeden gefundenen unbekannten Bezeichner eine verbindliche Schreibweise an - und merkt sich die Antwort für künftige Anwendungen in einer selbstadaptierenden Liste. 
 weiter     zurück
Ω~Φë' Optik
√
Nach dem Start zeigt sich TVPascalForm im gewohnten TurboVision-Look mit Menüzeile, Desktop und Statuszeile - das Hinweisfenster erinnert Sie daran, daß Sie eine Shareware-Version testen. Der Datei-Dialog zur Auswahl eines Quelltextes ist aktiviert. ô
In der Statuszeile werden die wichtigsten Befehle angezeigt, zusätzlich ist rechts unten der freie Heap eingeblendet, bei < 80k in roter Schrift. 
 weiter     zurück
φ╔δÿΘú' Funktionsübersicht
]
Mit den unter TurboVision üblichen Mittel - Menüauswahl, Hotkey, Mausclick - wird ein Quelltext ausgewählt und gleichzeitig die Konvertierung aller darin enthaltenen Bezeichner in eine einheitliche Schreibweise gestartet. Diese Bearbeitungsfunktion ist nach dem Programmstart und nach jeder erfolgreich abgeschlossenen Textkonvertierung aktiviert. ≈
Findet die Applikation einen ihr bisher unbekannten Bezeichner, fordert sie in einem Dialogfenster die Festlegung seiner Schreibweise an. Die gültige Schreibweise wird in eine interne Liste eingefügt; die Liste wird bei Programmende gespeichert. å
Nach Ende der Schönheitsoperation wird die geliftete Datei gespeichert, der Ausgangstext steht als Backup auch weiter zur Verfügung. ┤
Daneben können die Referenzlisten editiert, ausgewechselt und auch - obwohl das der Programmidee zuwiderläuft! - aus ASCII-Listen importiert / zu ASCII- Listen exportiert werden. 
 weiter zurück
φ·∩+∩∞ÑΩ¼' Die Funktionen im Einzelnen
Æ
Als TurboVision Applikation hält sich die Programmbedienung an die von Pascal 6.0 gewohnten IDE- Konventionen, die hier nicht wiederholt werden. *
Die Menüzeile hat folgende Auswahlmenüs: ] Bearbeiten Textkonvertierung, Dateioperationen
 Wortlisten Funktionen an den Referenzlisten

 weiter    zurück
φ█
∩
φ9δC' Der Menüpunkt Bearbeiten
É
Er enthält die Funktionen zur Auswahl und Bearbeitung des Quelltextes, zum Verzeichniswechsel, zur Programmunterbrechung und zum Programmende. 

 Bearbeiten
Q
öffnet einen Datei-Dialog mit dem ein Pascal-Quelltext zur Bearbeitung ausgewählt werden kann. Bei fehlerfreiem Öffnen wird die Textkonvertierung gestartet - ein Hinweis "Bitte warten ..." erinnert Sie daran. Jedes Wort des Quelltextes wird mit den Referenzlisten abgeglichen; ist es nicht enthalten, erscheint auf dem Desktop ein Dialogfenster, in dem die Schreibweise festgelegt werden kann. Gleichzeitig wird die gesamte gerade bearbeitete Zeile zur besseren Orientierung eingeblendet. Bei Abbruch des Dialogs wird nach Bestätigung die gesamte Bearbeitung abgebrochen, die Ausgangsdatei ist unverändert. Nach erfolgreicher Bearbeitung wird die geschönte Datei gespeichert, die Ausgangsdatei steht als Backup mit der Dateikennung ".JBK" zur Verfügung. Dieser Menüpunkt ist automatisch nach dem Programmstart und nach jeder Bearbeitung aktiviert. 
 weiter     zurück
ε∞' Verzeichnis wechseln

öffnet einen ChangeDirDialog. 
 DOS-Shell
]
wechselt zur DOS-Ebene, wenn der Arbeitsspeicher ausreicht; Rückkehr wie üblich mit "Exit". 
 Exit
U
Programmende; wurde die interne Wortliste geändert, wird Speicherung vorgeschlagen. 
 weiter     zurück
∩²φ' Der Menüpunkt Wortlisten
û
Er enthält die Funktionen zum Editieren und Auswechseln der Referenzlisten. Daneben gibt es eine Funktion zum Import/Export von reinen ASCII-Listen. _
Intern verwaltet TVPascalForm drei Wortlisten, die in dieser Reihenfolge abgearbeitet werden: J
- Reservierte Liste: Sie enthält die reservierten Bezeichner von TP 6.0. C
- Standard-Liste: Sie enthält die Standard-Bezeichner von TP 6.0. h
- Individual-Liste: Sie enthält die selbstadaptierende Liste, in die neue Bezeichner eingefügt werden. ⌠
Beim Programmstart liest TVPascalForm die drei Listen aus dem Dateien ResWort.JLT, Standard.JLT und MeinWort.JLT aus dem Verzeichnis, in dem das Programm gespeichert ist: die Listen sind als NachfolgeObjekte von TStringCollection gespeichert. /

 Reservierte, Standard, Individual editieren
∞
öffnet ein Dialogfenster, in dem Listeneinträge geändert bzw. neue Bezeichner eingefügt werden können. Es enthält eine Listbox mit der Wortliste, eine Eingabezeile und die Aktionsschalter Ersetze (Default), Neu, Speichern und Abbruch. 
 Listbox:
qdurch Selektion eines Bezeichners wird dieser in die Eingabezeile übertragen und steht dort zur Änderung bereit. 
 Ersetze:
íder Text in der Eingabezeile ersetzt den fokussierten Listeneintrag; insbesondere wird der Eintrag gelöscht, wenn die Eingabezeile leer ist. (s. auch: Hinweise) 
 Neu:
7der Text der Eingabezeile wird in die Liste eingefügt. 

 Speichern:
hder Dialog wird beendet, die geänderte Liste wird mit einem Backup der Dateikennung ".JBK" gespeichert. 
 Abbruch:
8der Dialog wird beendet, die Wortliste ist unverändert. 

 Listeninfo
P
die Dateinamen der aktuellen Referenzlisten werden in einem Fenster angezeigt. 1

 Reservierte, Standard, Individual auswechseln
╘
öffnet einen Datei-Dialog, mit dem eine Datei zum Lesen einer neuen Liste ausgewählt werden kann. Bei Erfolg ersetzt die neue Liste die bisher gültige. Die aktuelle Individual-Liste wird mit Backup gespeichert. 
 weiter  zurück
≤2≡ùεƒ' als ASCII
(
öffnet einen Datei-Dialog, mit dem eine Datei zum Lesen einer Referenzliste ausgewählt werden kann. Bei Erfolg wird eine daraus erstellte ASCII-Liste (mit einem Wort pro Zeile) in einer Datei mit Kennung ".JXT" gespeichert. Existiert bereits eine Datei dieses Namens, so wird sie überschrieben. 
 als Resource
N
öffnet einen Datei-Dialog, mit dem eine Datei zum Lesen einer ASCII-Liste (in der jeweils ein Bezeichner pro Zeile erwartet wird) ausgewählt werden kann. Bei Erfolg wird eine daraus erstellte Referenzliste in einer Datei mit der Dateikennung ".JLT" gespeichert. Existiert bereits eine Datei dieses Namens, so wird sie überschrieben. 
 weiter    zurück
±ô∩¥' Fehlerbehandlung
▓
Tritt bei der Ausführung einer Funktion ein Fehler auf, stellt TVPascalForm so weit wie möglich den Zustand vor dem Aufruf der Funktion wieder her und zeigt eine Fehlermeldung. 
 weiter   zurück
≥╟∩╨'	 Grenzen
%
-    TVPascalForm ist für fehlerfrei kompilierbare Pascal-Quelltexte konzipiert. Bei beliebigen Texten kann eine Bearbeitung auch funktionieren - Stringkonstanten oder Wortanfänge, die keine gültigen Pascal-Wortanfänge (z. B. Ziffern, Umlaute ...) sind, können dann aber zu Problemen führen. A
-    Eine Sonderbehandlung für Kommentare ist nicht vorgesehen. 
 weiter  zurück
≤r±z' Hinweise - ein Kessel Buntes
6
-    Stringkonstanten werden unverändert übernommen. a
-    Einzelbuchstaben und Hexadezimalzahlen werden grundsätzlich in Großbuchstaben konvertiert. ²
-    Im Dialogfenster zum Bearbeiten von Wortlisten wird der fokussierte Eintrag der Listbox nur ersetzt, wenn die Eingabezeile selektiert ist: die Idee dabei ist, das Wort nicht unbeabsichtigt zu verändern. Als unschöne Folge kann der Schalter "Ersetze" nicht mit der Maus, sondern nur über die Tastatur bedient werden. Sorry: das ist ein klarer Verstoß gegen TV-Prinzipien, hat sich in der Praxis aber als sinnvoll herausgestellt. Für Vorschläge zu einer prinzipientreuen Lösung bin ich jederzeit offen... ┤
-    In der - auch in TVPascalForm eingesetzten - TV Unit Stddlg ist im TFiledialog ein Bug, der das Programm sang- und klanglos abstürzen läßt, wenn auf einem Diskettenlaufwerk beim Öffnen des Filedialogs keine Datei mit dem übergebenen Dateinamen zu finden ist. Als "quick and dirty"-Lösung legt TVPascalForm deshalb eine Datei "DUMMY" + aktuelle Dateikennung an, wenn er im aktuellen Verzeichnis keine passende Datei findet. Sorry! p
-    TV übernimmt die Fehlerbehandlung bei Disk-Errors: in der Statuszeile erscheint dann eine - englische - Fehlermeldung. Wie schon in der TV-Dokumentation erwähnt, muß man dann in der Regel mehrfach Esc bzw Enter drücken. Eventuell ist auch die dann folgende Messagebox unpassend. Nun aber nicht die Nerven verlieren, sondern Fehler beheben und nochmal probieren! 	
 zurück
≥┘'ⁿ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ¿S	
r¡αΓñô/!                                