Mit diesem Befehl laden Sie einen Dialog, den Sie zuvor gespeichert haben.
Datei
Dialog speichern
Mit diesem Befehl speichern Sie den aktiven Dialog in einer Datei.
Die Standardendung ist ".DLG".
Datei
laden
Mit diesem Befehl laden Sie eine Men
konstruktion aus einer Datei. Y
Das Speichern wird durch einen Knopf im Eigenschaften-Dialog des Men
balkens ausgel
st. O
Wenn bereits ein Men
balken editiert wird, ist dieser Befehl nicht verf
gbar.
Datei
Statuszeile laden
Dieser Befehl l
dt eine Statuszeile aus einer Datei. Y
Das Speichern wird durch einen Knopf im Eigenschaften-Dialog der Statuszeile ausgel
st. Q
Wenn bereits eine Statuszeile editiert wird, ist dieser Befehl nicht verf
gbar.
Datei
Text laden
Dieser Befehl l
dt eine Textdatei in ein Editorfenster. {
Der Dialog, in dem Sie die Datei ausw
hlen k
nnen, enth
lt au
erdem Schaltfl
chen zum L
schen und Umbenennen von Dateien.
Datei
Text speichern
Dieser Befehl speichert die Datei im aktuellen Editorfenster.
Datei
Text speichern als...
Dieser Befehl speichert die Datei im aktuellen Editorfenster unter einem anderen Namen.
Datei
Projekt
ffnen
Dieser Befehl l
t Sie ein Projekt
ffnen oder neu erstellen. R
Der Wizard wechselt automatisch in das Verzeichnis, in dem dieses Projekt liegt.
Projekte
Der Wizard sammelt Kommandokonstanten, Hilfekonstanten, Verkn
pfungen von Kommandos und Prozeduren, Typenbezeichner und die Eingaben im Hilfeeditor in EINER Datei, der Projektdatei. z
Diese wird also ben
tigt, um Zuweisungen von Konstantennamen richtig vornehmen zu k
nnen - was bedeutet, da
z.B. ein in einem anderen Projekt erstellter Dialog oder Men
balken zwar im Kontext eines neuen Projektes geladen werden kann und auch das gleiche Layout zeigt, alle Hilfskontexte und Kommandokonstanten aber sinnlose Ergebnisse liefern und
berarbeitet werden m
ssen. 7
Sie k
nnen immer nur ein Projekt zugleich bearbeiten.
Projekt
Sichern
Dieser Befehl sichert die
nderungen, die Sie im aktuellen Projekt vorgenommen haben.
Projekt
Sichern Als
Mit diesem Befehl k
nnen Sie das Projekt unter einem anderen Namen sichern.
Projekt
Schlie
Dieser Befehl schlie
t das aktuelle Projekt.
Datei
Verzeichnis wechseln
Mit diesem Befehl wechseln Sie in ein anderes Verzeichnis.
cmXXXX-Kommandokonstanten
Bei der Gestaltung von Men
s und Buttons wird von Ihnen die Eingabe des Namens einer Befehlskonstanten im Format "cmXXX" erwartet.
Die Namen sind (innerhalb der in Pascal g
ltigen Konventionen) frei w
hlbar, die Deklaration erfolgt durch den Wizard. (Siehe Quelltextdateien) I
Die Konstantenbezeichner werden w
hrend der Quelltexterzeugung benutzt. >
Die Wertezuweisung wird vom Wizard sehr einfach vorgenommen: |
Beginnend mit dem Wert, den die sog. cmXXX-Basis bei Programmbeginn hat, erh
lt jede Konstante einen um eins h
heren Wert.
Den Wert der Basis k
nnen Sie jederzeit im Men
punkt
Optionen
Einstellungen...
hen, um
berschneidungen zu vermeiden allerdings nicht erniedrigen.
hcXXX-Hilfekontext-Konstanten
Jeder Nachfahre von TView und alle Eintr
ge im Men
balken und in Untermen
s verf
ber ein Feld "HelpCtx" vom Typ Word, das den Hilfezusammenhang des Programms bestimmt, wenn das Objekt fokussiert ist.
Dieser Hilfezusammenhang ist ausschlaggebend f
r die Anzeige einer f
r diesen Kontext bereitgestellten Statuszeile und f
r die Auswahl der richtigen Hilfetafel.
Die Konstanten, deren Namen Sie an den entsprechenden Stellen im Programm eingeben k
nnen, werden vom Wizard selbst
ndig deklariert. (Siehe Quelltextdateien Die Wertezuweisung erfolgt dabei in
bereinstimmung mit der Vorgehensweise des Hilfecompilers TVHC. @
Wenn Sie im Men
punkt
Optionen
Einstellungen
die Option "Neue HelpCtx editieren" angekreuzt haben, so
ffnet sich f
r jeden neuen Hilfekontext ein Eingabefenster, in dem Sie die
Hinweistexte
Statuszeile, den Text einer Hilfetafel sowie die optionalen Eintr
ge im Inhaltsverzeichnis und Index vornehmen k
nnen. |
Sie k
nnen ein solches Fenster auch
ffnen, indem Sie den entsprechenden Eintrag in der Konstantenliste zweimal anklicken. U
-
TVHC
Der Hilfecompiler TVHC.EXE findet sich - im Quelltext - unter den Beispielen im Verzeichnis "TVDEMOS", Sie m
ssen ihn also zun
chst zu einer ausf
hrbaren Datei compilieren.
Er erzeugt aus einer Textdatei eine Hilfedatei mit der Endung ".HLP" und eine Unit, in der Hilfkontext-Konstanten deklariert werden.
Die einzelnen Abschnitte, die jeweils auf eigenen Tafeln angezeigt werden sollen, werden im Text durch das Schl
sselwort ".Topic" mit einem nachfolgenden Bezeichner eingeleitet. n
Diese Bezeichner finden sich, um die Buchstaben 'hc' erweitert, als Konstantenbezeichner in der Unit wieder.
Wenn man ihnen nicht direkt bei ihrer Einf
hrung im Hilfetext explizit einen bestimmten Wert zuweist (zB ".Topic Mytext=1000"), so erhalten sie automatisch einen Wert, der um eins
ber dem ihres Vorg
ngers liegt. l
Turbo Wizard erzeugt aus den Eingaben im Hilfeeditor einen ASCII-Text, der sich mit TVHC compilieren l
Falls Sie keine weiteren
nderungen vorhehmen, entsprechen die Wertezuweisungen, die TVHC vornimmt denen des Wizard.
Wenn Sie au
erhalb des Wizard Eintr
ge hinzuf
gen m
chten, so sollten Sie diese immer am Ende des Textes vornehmen, um diese Konsistenz weitestgehend aufrechzuerhalten.
Beachten Sie, da
die Hilfedateien, die mit TVHC aus der Turbo Vision Version 1.0 erzeugt wurden, NICHT mit denen der Version 2.0 kompatibel sind. V
-
Konstantenliste
Der Men
befehl
Projekt
Deklarationen...
gt Listboxen in den Desktop ein, in denen die bisher eingegebenen hcXXX- und cmXXX-Konstanten sowie die Prozeduren und die Typenbezeichner angezeigt werden.
Sie k
nnen mit der ENTF-Taste den fokussierten Eintrag aus der Liste l
schen und damit z.B. verhindern, da
eine Prozedur in das Programm aufgenommen oder der Hilfetext zu einem bestimmten Hilfekontext geschrieben wird.
Wenn Sie in der Hilfekontext-Liste einen Eintrag mit der Maus zweimal anklicken, so
ffnet sich der Hilfeeditor f
r diesen Kontext. u
Ein H
kchen hinter den Hilfenamen bedeutet, da
der Hilfetext schon einmal bearbeitet und mit "Ok" best
tigt wurde. t
Ein H
kchen hinter einem Prozedurnamen bedeutet, da
eine Dialog-Prozedur dieses Namens bereits geschrieben wurde.
Prozeduren
Bei Buttons und Men
befehlen werden Sie zur Eingabe eines Prozedurnamens aufgefordert, der der angegebenen Befehlskonstante zugeordnet wird. =
Die Auswertung dieser Angabe erfolgt auf verschieden Arten:
Bei Men
befehlen wird diese Prozedur in der Application.HandleEvent-Methode aufgerufen, die der Wizard durch den Befehl
Datei
Prototyp
erstellen
berschreibt. 0
Bei Buttons k
nnen Sie mit dem Schalter "Abarbeitung durch..." bestimmen, ob diese Prozedur in der HandleEvent-Methode eines neu zu deklarierenden Objekttypen aufgerufen werden soll, oder ob ein modaler Dialog sich beim Druck dieses Knopfes schlie
en und das Befehlsereignis an die Funktion "Desktop^.ExecView(Dialog)" bzw. (in der Turbo Vision Version 2.0) an "Application^.ExecuteDialog(Dialog, @NewData)"
bergeben soll. Das Ergebnis dieser Funktionen wird dann in einer Case-Anweisung ausgewertet, in der die entsprechende Prozedur dann aufgerufen wird.
Der Wizard merkt sich die Namen aller Prozeduren, die Sie so zugeordnet haben und vergleicht Sie bei der Vorbereitung eines Prototyps mit den Prozeduren, deren Quelltext im Verlauf der Arbeit an einem Projekt erzeugt wurden.
r die nicht implementierten Prozeduren wird eine Prozedur implementiert, die lediglich den Namen der Prozedur in einer MessageBox ausgibt, so da
der Prototyp trotzdem compiliert werden kann.
Der R
ckgabewert der Funktion Messagebox wird dabei
brigens nicht "verbraucht" - Sie m
ssen daher zur Compilierung den Compilerschalter $X+, "Extended Syntax" setzen. X
-
Projekt
Prototyp vorbereiten
Mit diesem Men
befehl l
sen Sie die Erzeugung bzw. Erg
nzung aller Dateien aus, die Sie zur Compilierung eines lauff
higen Prototypen ben
tigen. 5
Siehe auch Optionen
Erzeugung
eines
Prototyps. V
-
Prototypen
Der Wizard ist in der Lage, lauff
hige Prototypen zu erstellen. p
Der Quelltext wird auf mehrere Dateien verteilt, die Sie z.T getrennt voneinander aktualisieren lassen k
nnen. D
Um einen Prototypen zu erzeugen sind folgende Schritte notwendig: E
Aktivierung des Befehls "Prototyp vorbereiten" im Men
"Projekt".
Wenn Sie Dialoge
Ressourcen verwenden, m
ssen Sie vor dem Start des Programmes zun
chst das Programm "<Projektname>RES.PAS" compilieren und starten. Es erzeugt die Ressourcendatei <Projektname>.RES, in der der Prototyp die Objekte erwartet. 4
Alle Objekttypen, die Sie in Ressourcen verwenden, m
ssen mit RegisterType() registriert worden sein! F
r Dialog-Objekte wird dies in einer Prozedur vorgenommen, die in der Datei <ProjektName>REG.INC implementiert und automatisch in den Quelltext des Prototypen und des Ressourceneditors aufgenommen wird.
Sie k
nnen zu diesem Zeitpunkt bereits den Hilfecompiler TVHC benutzen, um aus der Textdatei <Projektname>HLP.TXT die Hilfedatei zu erzeugen. X
Nach diesen Vorbereitungen m
te sich der Prototyp compilieren und ausf
hren lassen...
Wenn Sie noch keinen Men
balken oder Statuszeile entworfen haben, werden Sie allerdings wenig von Ihrem Prototypen haben, da die geerbten Objekte nat
rlich keinen Befehl enthalten, den die
berschriebene HandleEvent- Methode der Application sinnvoll auswerten k
nnte. S
-
Die Prozedur RegisterType()
Zur Verwendung von Objekten in einem Stream - also z.B. auch in einer Ressourcendatei - ist es notwendig, den Objekttyp zuvor zu "registrieren". 4
Man erstellt dazu einen Record vom Typ TStreamRec:
R<Typ> : TStreamRec =
(ObjType: <Typen-ID>;
VMTLink: Ofs(TypeOf(<Typ>)^);
Load : @<Typ>.Load;
Store : @<Typ>.Store );
Jeder Typ braucht UNBEDINGT seine individuelle Typen-ID. <
Zu Programmbeginn ruft man dann Registertype(R<Type>) auf.
Dadurch wird es den Methoden TStream.Get und TStream.Put erm
glicht, unterschiedliche Objekte in einem Stream zu identifizieren und die passenden Load- bzw. Store-Methoden aufzurufen. T
-
Datei
Beenden
Mit diesem Befehl beenden Sie das Programm.
Objekte
In diesem Men
finden Sie die Befehle zum Einf
gen von Dialogen, Dialogelementen, Men
s und Statuszeilen.
Objekte
Dialog
Dieser Befehl f
gt ein neues Objekt vom Typ TWDialog in den Desktop ein und macht ihn zum aktiven Dialog.
TWDialog
Dieser direkte Nachfahre von TDialog verf
ber eine
berschriebene HandleEvent-Methode, die auf jedes Befehlsereignis durch den Aufruf der Prozedur EndModal(Event.Command) reagiert, sich also schlie
t und den Wert von Event.Command an die Funktion Desktop^.ExecView
bergibt.
Praktisch bedeutet das, da
der Dialog selbst auf keinen seiner Kn
pfe angemessen reagieren kann, sondern die Reaktion auf derartige Ereignisse in der aufrufenden Prozedur stattfinden mu
Objekte
StaticText
Dieser Befehl f
gt ein Objekt vom Typ TStaticText in den aktiven Dialog ein. S
Sie k
nnen f
r den Text mehrere Zeilen vorsehen, er wird automatisch umgebrochen.
TStaticText
TStatictext dient zur Ausgabe eines Strings, den Sie im Feld "Text" eingeben k
nnen.
Es ist ein unbenanntes Objekt ohne Eintrag in den Datenrecord, das direkt mit einer "Dialog^.Insert(New(PStatictext, Init..." - Anweisung eingef
gt wird. i
Wenn Sie ein mehrzeiliges Feld festlegen wird der Text automatisch innerhalb dieses Feldes umgebrochen. U
Die M
glichkeit der Verwendung abgeleiteter Objekte ist im Wizard nicht vorgesehen.
Type : PStaticText.
HelpCtx : immer hcNoContext.
Objekte
Label
Dieser Befehl f
gt ein Objekt vom Typ TLabel in den aktiven Dialog ein.
TLabel
TLabel dient zur Ausgabe einer
berschrift, die Sie im Feld "Text" eingeben k
nnen.
ber das Feld "Link-ID" k
nnen Sie es mit einem anderen Objekt verkn
pfen, das allerdings VOR dem Label eingef
gt werden mu
Dieses Objekt l
t sich dann
ber das Label selektieren. Zu diesem Zweck kann man einen Buchstaben des Textes -
hnlich wie bei Men
befehlen - in Tildezeichen (~..~) einfassen. Die Kombination dieser Taste mit der Alt-Taste selektiert dann das Label und das zugeh
rige Objekt. u
Das verkn
pfte Objekt l
t sich erst l
schen, wenn die Verkn
pfung wieder aufgehoben oder das Label gel
scht wurde.
Es wird als unbenanntes Objekt ohne Eintrag in den Datenrecord direkt mit einer "Dialog^.Insert(New(PLabel, Init..." - Anweisung eingef
Type : PLabel.
HelpCtx : immer hcNoContext. U
-
Objekte
InputLine
Dieser Befehl f
gt ein Objekt vom Typ TInputLine in den aktiven Dialog ein.
TInputLine
Ein benanntes Objekt vom - variablen - Typ TInputLine.
Felder:
RecordEntry und MaxLen: Bei der Initialisierung wird MaxLen, die erlaubte Eingabel
nge, auf die Gr
e des Eingabefeldes + 10 gesetzt, dementsprechend lautet der Eintrag "String[<MaxLen+10>]".
Wenn Sie die Eingabel
nge modifizieren wird der Recordeintrag automatisch angepa
t, solange Sie keinen anderen Typ als PInputLine angegeben haben.
Bei abgeleiteten Objekten wird diese Anpassung NICHT durchgef
hrt, hier m
ssen Sie selbst f
r eine
bereinstimmung mit den Get/SetData-Methoden sorgen. z
Wenn Sie ein Validatorobjekt vom Type TRangeValidator mit der Eingabezeile verbinden (und damit bestimmen, da
nur numerische Werte eines bestimmten Bereichs eingegeben werden k
nnen) wird der Recordeintrag automatisch auf "LongInt" gesetzt. Das Validatorobjekt
bernimmt dann den Datentransfer f
r die Eingabezeile, was Ihnen die Umwandlung in einen numerischen Wert erspart. h
Eine nachtr
gliche
nderung der Gr
e des Eingabefeldes hat KEINE Auswirkungen auf den Recordeintrag. X
Type : PInputLine.
ndern sie diesen immer in
bereinstimmung mit dem Record-Eintrag. U
-
Objekte
History
Dieser Befehl f
gt zun
chst ein Objekt vom Typ TInputLine, dann ein Objekt vom Typ THistory, das mit der Eingabezeile verkn
pft wird, in den aktiven Dialog ein.
THistory
Ein Objekt zur Anzeige einer Eingabeaufzeichnungsliste, mit dem ein Objekt vom Typ TInputLine (oder ein Nachfahre) verkn
pft ist m
THistory wird als unbenanntes Objekt direkt mit einer Anweisung "Dialog^.Insert(New(PHistory..." eingef
Eingabeaufzeichnungslisten werden in einem Block auf dem Heap gespeichert, dessen Gr
e - Standard ist 1k - in der Variablen HistorySize der Unit HistList gespeichert ist.
Dieser Bereich kann in verschiedene Listen aufgeteilt werden, die man
ber den Wert "HistoryID" referenziert, d.h. in der Praxis, da
THistoryobjekte mit der gleichen HistoryID auf die gleiche Sammlung von Eintr
gen zugreifen.
Die Initialisierung erfolgt im Constructor Application.Init. Wenn Sie die Puffergr
ndern wollen, so m
ssen Sie dies vor dem Aufruf dieses Constructors tun.
Die M
glichkeit des Gebrauchs abgeleiteter Objekte ist nicht vorgesehen, d.h. Sie haben (vor der Quelltextproduktion) keinen Einflu
auf die Felder Type und RecordEntry.
chlich ist das einzige Feld, auf das Sie im Wizard zugreifen k
nnen (und m
ssen) das Feld "HistoryID", das die Eingabeaufzeichnungsliste spezifiziert, mit der das Objekt verbunden wird. W
-
Objekte
Dieser Befehl f
gt ein Texteingabefeld vom Typ TMemo in den aktiven Dialog ein. i
Zuvor erfolgt eine Abfrage
ber die Ausstattung mit Rollbalken, die vor dem Memo-Feld eingef
gt werden.
TMemo
Ein benanntes Objekt vom Typ TMemo, in dem Sie wie in einem Editorfenster Text eingeben k
nnen. Ein TMemo-Objekt kann mit dem Clipboard kommunizieren. ~
Die L
nge des Textpuffers wird bei der Initialisierung auf 512 Byte gesetzt und kann im Eigenschaftendialog angepa
t werden. y
Der Recordeintrag besteht aus zwei Feldern, die der
bersichtlichkeit halber in einem eigenen
Record deklariert werden.
TMemoRec
TMemoRec=Record
TextLen: Word;
TextBuff: Array[1..MaxLen] of Char;
End;
Dabei ist TextLen die L
nge des Textes, der sich im Puffer befindet, MaxLen ist die Gr
e, die Sie f
r den Puffer vorgesehen haben. "
Siehe auch Records
Heap.
Rollbalken
Rollbalken k
nnen in der Entwicklungsoberfl
che des Wizard nicht alleine modifiziert, nur verschoben werden. J
Sie k
nnen nur mit dem Objekt, dem Sie zugeordnet sind, gel
scht werden. i
Ihr GrowMode-Feld wird ebenfalls in
bereinstimmung mit den Einstellungen des Besitzerobjektes gesetzt.
Das Feld GrowMode
Jedes TView-Objekt verf
ber ein Feld "GrowMode", das das Verhalten des Objektes bestimmt, wenn die Abmessungen der Gruppe, zu der das Objekt geh
rt, ge
ndert werden.
gfGrowLoX gfGrowHiX
gfGrowLoY gfGrowHiY
Objekte
Checkboxes
Dieser Befehl f
gt ein neues Schalterfeld vom Typ TCheckBoxes in den aktiven Dialog ein. }
Die Anzahl der Schalter bestimmt sich vorgabegem
direkt aus der y-Abmessung des Feldes, ist allerdings maximal gleich 16.
Wenn Sie beim Einf
gen die Strg-Taste niederhalten, w
hrend Sie die rechte Maustaste bet
tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe
ndern k
nnen. Turbo Vision plaziert die Schalter dann n
tigenfalls nebeneinander.
TCheckBoxes
Ein Objekt vom Typ TCheckBoxes. ]
Die Anzahl der Schalter bestimmen Sie beim Einf
gen direkt
ber die y-Abmessung des Feldes.
Wenn Sie beim Einf
gen die Strg-Taste niederhalten, w
hrend Sie die rechte Maustaste bet
tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe
ndern k
nnen. Turbo Vision plaziert die Schalter dann n
tigenfalls nebeneinander. {
Da jeder Schalter ein Bit im Feld Value anspricht, das vom Typ Word ist, sind allerdings maximal nur 16 Schalter m
glich.
Im Eigenschaftendialog k
nnen Sie die Beschriftungen der Schalter eingeben. Um eine
nderung wirksam werden zu lassen, m
ssen Sie sie mit ENTER best
tigen. Diese Eingabe l
dt sofort die Beschriftung des n
chsten Schalters in die Eingabezeile.
Record-Entry: Word.
HelpCtx: Frei w
hlbar.
Den tats
chlich vom Objekt ermittelten Hilfekontext f
r einen Schalter bestimmt die Summe aus den Feldern "HelpCtx" und "Sel", wobei "Sel" die Nummer des gerade selektierten Schalters bezeichnet. Somit kann man zu jedem Schalter eine eigene Hilfetafel bereitstellen. g
Der Wizard kommt dieser M
glichkeit nach, indem er die entsprechende Anzahl an Hilfekontexten anlegt. X
-
TMultiCheckBoxes
TMultiCheckboxes stellen Schalterfelder bereit, die mehr als zwei Zust
nde einnehmen k
nnen. Die Anzahl der unterschiedlichen Zust
nde bestimmt dabei zugleich die Anzahl
Schaltern in einem solchen Feld.
Wenn Sie nur zwei Zust
nde ben
tigen (' ' und 'X') erm
glicht ein TMultiCheckBoxes-Objekt die Einrichtung von bis zu 32 Schaltern, also doppelt so viele wie TCheckBoxes. u
Der Recordeintrag lautet abweichend von den anderen Schaltertypen "LongInt", ansonsten ist das Verhalten identisch.
Eigenschaftendialog
Als Eigenschaftendialog wird in dieser Hilfe der Dialog bezeichnet, der sich bei Objekten
ffnet, wenn man Sie mit der rechten Maustaste anklickt. P
In ihm k
nnen die grundlegenden Eigenschaften des Objektes modifiziert werden.
Objekte
RadioButtons
Dieser Befehl f
gt ein neues Feld von TRadioButtons in den aktiven Dialog ein. M
Die Anzahl der Schalter entspricht der y-Abmessung des vorgesehenen Feldes.
Wenn Sie beim Einf
gen die Strg-Taste niederhalten, w
hrend Sie die rechte Maustaste bet
tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe
ndern k
nnen. Turbo Vision plaziert die Schalter dann n
tigenfalls nebeneinander. &
Es sind maximal 32 Schalter erlaubt.
TRadioButtons
Ein Objekt vom Typ TRadioButtons. ]
Die Anzahl der Schalter bestimmen Sie beim Einf
gen direkt
ber die y-Abmessung des Feldes.
Wenn Sie beim Einf
gen die Strg-Taste niederhalten, w
hrend Sie die rechte Maustaste bet
tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe
ndern k
nnen. Turbo Vision plaziert die Schalter dann n
tigenfalls nebeneinander. &
Es sind maximal 32 Schalter erlaubt.
Im Eigenschaftendialog k
nnen Sie die Beschriftungen der Schalter eingeben. Um eine
nderung wirksam werden zu lassen, m
ssen Sie sie mit ENTER best
tigen. Diese Eingabe l
dt sofort die Beschriftung des n
chsten Schalters in die Eingabezeile.
Record-Entry: Word. _
HelpCtx: Frei w
hlbar. Den tats
chlich vom Objekt ermittelten Hilfecontext bestimmt die Summe aus den Feldern "HelpCtx" und "Sel", wobei "Sel" die Nummer des gerade selektierten Schalters bezeichnet. Somit kann man zu jedem Schalter eine eigene Hilfetafel bereitstellen. Der Wizard legt auch folgerichtig eine entsprechende Anzahl von Kontexten an. X
-
Objekte
ListBox
Dieser Befehl f
gt ein neues Objekt vom Typ TListBox in den aktiven Dialog ein. v
Zuvor erfolgt eine Abfrage, ob die Box mit einem vertikalen oder einem horizontalen Rollbalken versehen werden soll.
TListBox
Ein Objekt vom Typ TListBox. U
Vor dem Einf
gen k
nnen Sie die Spaltenzahl und die Lage des Rollbalkens festlegen.
RecordEntry: Das Objekt TListBox liefert zwei Eintr
ge in den Datenrecord: Einen 32-Bit-Zeiger vom Typ PCollection, der die mit der Listbox verbundene Kollektion referenziert, und den Index des gerade fokussierten Eintrags. 5
Der Wizard definiert hierzu den Record-Typ TBoxRec: D
TBoxRec = Record
List : PCollection;
Focus : Word;
End;
HelpCtx: Frei w
hlbar.
Objekte
Button
Dieser Befehl f
gt ein neues Objekt vom Typ TButton in den aktiven Dialog ein.
TButton
Ein unbenanntes Objekt vom Typ TButton. Die Verwendung abgeleiteter Objekte ist im Wizard nicht vorgesehen.
Eigenschaften:
Im Feld "Befehl" geben Sie den Namen der Befehlskonstanten im Format cmXXX an, die bei Bet
tigung des Buttons abgesetzt wird.
HelpCtx: Frei w
hlbar. G
Prozedur: Diese Prozedur wird dem Befehlsereignis zugeordnet (s.u.).
Flag: Die Schalter bezeichnen Optionen im Feld "Flag" des TButton-Objektes. Der Wert der Kombination dieser Schalter wird dem Constructor
bergeben:
bfDefault bfNormal
bfLeftJust bfBroadcast
"Abarbeitung durch..." L
Die Einstellung dieses Schalters entscheidet bei modalen Dialogen, ob die Befehls/Prozedur-Kombination in die HandleEvent-Methode des Dialoges aufgenommen werden soll, oder ob die Prozedur, die den Dialog mit "Result:=Desktop^.ExecView(Dialog)" einf
gt, die angegebene Prozedur aufrufen soll, wenn Result den Wert des Befehls hat.
Im zweiten Falle wird in die HandleEvent-Methode eines Dialog-Objektes eine Anweisung eingef
gt, die mit "EndModal(<Befehlskonstante>)" daf
r sorgt, da
ExecView genau diesen Wert erh
lt. @
Zeitpunkt der Bearbeitung relativ zum geerbten Event-Handler 1
Sie k
nnen hier bestimmen, ob der Befehl vor der geerbten HandleEvent- Methode des Dialoges bearbeitet werden soll, ob er danach an diese weitergereicht oder mit ClearEvent f
r vollst
ndig bearbeitet erkl
rt werden soll, oder ob (Voreinstellung) zun
chst der geerbte Eventhandler aufgerufen werden soll.
Die ersten beiden M
glichkeiten sind nat
rlich nur bei Befehlen wie "cmOk" oder "cmCancel" sinnvoll, die der Dialog auch versteht. V
-
Objekte
MenuBar
Dieser Befehl f
gt einen neuen, leeren Men
balken vom Typ TMenuBar in den Desktop ein. 3
Sie k
nnen immer nur einen Men
balken bearbeiten. V
Um Eintr
ge in den Balken vorzunehmen, klicken Sie ihn mit der rechten Maustaste an. {
Um in die so entstandenen Untermen
s Befehle oder Linien einzutragen, klicken Sie den jeweiligen Men
punkt mit rechts an.
TMenuBar
Der Men
balken des Programms.
Objekte
StatusLine
Mit diesem Befehl f
gen Sie eine neue Statuszeile in den Desktop ein. r
Um Eintr
ge vorzunehmen, den Kontextbereich zu
ndern etc. klicken Sie diese Zeile mit der rechten Maustaste an.
TStatusLine
Turbo Wizard unterst
tzt die Erstellung kontextabh
ngiger Statuszeilen. N
Die Organisation der Statuszeilen bei Turbo Vision sieht folgenderma
en aus: -
TStatusLine.
Felder: Items
Defs
Zeile1
Records vom Typ
Zeile2<
TStatusDef in
>Zeile3
einer verketteten
Zeile4<
Liste.
>Zeile5
Zeile6<
aktuelle Zeile:
>Zeile7
Zeile8<
In diesem Beispiel haben wir acht kontextsensitive Anzeigen vom Typ TStatusDef in einer verketteten Liste, auf deren Beginn das Feld "Defs" im Objekt TStatusLine zeigt.
Der Hilfekontext der Applikation steht zur Zeit im Bereich zwischen den Werten Min und Max der Zeile Nr 7, daher zeigt auch das Feld "Items" des Objektes TStatusLine auf das Feld "Items" der Zeile7 und bewirkt die Darstellung eben dieser Zeile.
Das Feld "Items" zeigt dabei auf eine verkettete Liste von Records vom Typ TStatusItem, in denen der Text, der Befehl und der damit verbundene Hotkey gespeichert wird.
Um eine solche Konstruktion aufzubauen, f
gen Sie mit dem Men
befehl "Men
Statuszeile" eine leere Statuszeile ein, die Sie durch Anklicken mit der rechten Maustaste modifizieren k
nnen. y
Die Reihenfolge, in der neue Statuszeilen vom Typ TStatusDef in die Zeigerordnung von DEFS eingef
gt wird, ist wichtig:
Beginnen Sie immer mit der Zeile, die am allgemeinsten ist, z.B. einer Zeile f
r die Kontexte "hcNoContext" bis "hcEveryContext", die als einzigen Eintrag den Befehl f
r die Hilfe, cmHelp enth
lt. i
Verkleinern Sie dann die Zust
ndigkeiten immer mehr, versuchen Sie dabei
berschneidungen zu vermeiden.
Zuletzt konstruieren Sie dann Statuszeilen, die nur f
r jeweils einen Kontext g
ltig sind, z.B. eine Zeile f
r "hcHelpWindow", die die Befehle cmHelp (zeigt den Inhalt der Hilfe), cmLastTopic (zeigt den zuletzt angezeigten Kontext) und cmZoom absetzten kann. z
Wenn Sie diese Reihenfolge nicht beachten kann es passieren, da
Sie bestimmte Statuszeilen niemals zu Gesicht bekommen. 7
Beachten Sie auch die Anmerkungen zur Function Hint. X
-
Optionen
In diesem Men
finden Sie Befehle zur Konfiguration des Wizard.
Optionen
Einstellungen
Dieser Befehl
ffnet einen Dialog, in dem Sie die Basis der hcXXX- und cmXXX-Konstanten, der Typen-ID und gewisse Optionen f
r den HilfeEditor einstellen k
nnen.
Basis der hcXXX-Konstanten
Die Basis der hcXXX-Konstanten bestimmt den Wert des n
chsten neuen Hilfekontextes.
Basis der cmXXX-Konstanten
Die Basis der cmXXX-Konstanten bestimmt den Wert der n
chsten neuen Kommandokonstanten.
Basis der Typen-ID
Die Basis der Typen-ID bestimmt, welcher Wert im TStreamRec des n
chsten Objekttypen f
r die Objekt-ID benutzt wird.
Desktop
Dieses Men
enth
lt Befehle zum Laden und Speichern des Desktops mit allen zur Zeit sichtbaren Objekten. Beachten Sie, da
ein Desktop nur innerhalb des Projektes, in dem er erstellt wurde geladen werden sollte.
Desktop
Laden
Mit diesem Befehl laden Sie einen Desktop, den Sie zuvor mit Desktop
Speichern abgespeichert haben.
Der Desktop sollte im Rahmen des gleichen Projektes gespeichert worden sein, da die Zuordnungen von Hilfe- und Kommandokonstanten ansonsten nicht definiert ist.
Desktop
Speichern
Mit diesem Befehl speichern Sie s
mtliche Elemente des Desktop in einer Datei. O
Sie k
nnen diese Datei dann sp
ter mit dem Befehl Desktop
Laden wieder laden.
Die Funktion Hint
Das Objekt TStatusLine verf
ber die "pseudo-abstrakte" virtuelle Function Hint (engl. hint: Hinweis), die, wenn nicht
berschrieben, einen leeren String zur
ckgibt.
Diese Funktion dient dazu, in der Statuszeile einen Hinweistext auszugeben, der eine Kurzinformation zum aktuellen Programmkontext gibt.
Der Wizard
berschreibt diese Function durch eine case-Anweisung, in der abh
ngig vom Programmkontext eine Meldung in der Statuszeile ausgegeben wird. -
Die Hinweise legen Sie im Hilfeeditor fest.
Quelltextdateien
Querverweis: Prozeduren
Typen
eigenen
Dateien
Die Quelltextdateien, die der Wizard w
hrend der Arbeit an einem Projekt erzeugt, werden, wenn bei der Erzeugung des Quelltextes nicht die Option "Eigene Dateien erzeugen" gew
hlt ist, nach folgendem Schema benannt: J
<Name> steht f
r die ersten f
nf Buchstaben des Namens der Projektdatei.
<ProjectName>.PAS
Die eigentliche Programmdatei. Sie enth
lt die Typendeklaration f
r den TApplication-Nachfahren "TWApplication", dessen Methoden InitMenubar, InitStatusline und HandleEvent in Includedateien
berschrieben werden.
<Name>RUN.PAS
Diese Unit enth
lt die Deklaration und Implementation des Dialogtyps "TWDialog", der Statuszeile "TWStatusLine", deren Methode Hint durch den Wizard
berschrieben wird, die TStreamRec-Records dieser Objekte sowie die Deklarationen aller von Ihnen gestalteten Dialoge und Prozeduren.
<Name>RES.PAS
Dies ist die Programmdatei des Ressourceneditors, der die Objekte, die aus einer Ressourcendatei ins Programm geladen werden sollen, erzeugt.
<Name>TYP.INC
Diese Datei enth
lt die Typendeklarationen von Objekten, deren Zeigertypen und TStreamRecs.
<Name>REC.INC
Diese Datei enth
lt die Deklarationen globaler Recordtypen.
<Name>PDC.INC
Diese Datei enth
lt die Vorausdeklarationen von Prozeduren, die einen mit dem Wizard gestalteten Dialog einf
gen.
<Name>DDC.INC
Diese Datei enth
lt die Deklarationen von Prozeduren die durch Men
- oder Buttonbefehle aufgerufen werden, aber noch nicht implementiert wurden.
<Name>PRC.INC
Diese Datei enth
lt den Code der Prozeduren, die Dialoge einf
gen, sowie die Constructor-, HandleEvent-, Load- und Store-Methoden von Dialogobjekten.
<Name>DMY.INC
Diese Datei enth
lt vorl
ufige Implementationen von Prozeduren, die einem Befehlerereignis zugeordnet, aber nicht als Dialog implementiert wurden. Diese Prozeduren geben in einer MessageBox ihren eigenen Namen aus.
<Name>CMX.INC
Diese Datei enth
lt die Deklarationen der Kommandokonstanten.
<Name>HCX.INC
Diese Datei enth
lt die Deklarationen der Hilfekontextkonstanten. Wenn Sie die Onlinehilfe vollst
ndig mit dem Wizard erstellt haben, so ist diese Datei konsistent mit der Unit, die der Hilfecompiler TVHC erzeugt. @
Wenn Sie den Hilfetext au
erhalb des Wizard um neue Topics erweitert haben m
ssen Sie die Include-Anweisung f
r diese Datei l
schen und statt dessen die von TVHC erzeugte Unit "uses" einbinden. Sie sollten neue Topics allerdings IMMER am Ende der Hilfedatei anf
gen, um eine gr
gliche
bereinstimmung zu erhalten.
<Name>HNT.INC
Die Funktion TWStatusLine.Hint.
<Name>EVH.INC
Die Methode TWApplication.HandleEvent.
<Name>MNU.INC
Die Methode TWApplication.InitMenuBar.
<Name>STL.INC
Die Methode TWApplication.InitStatusLine.
<Name>RES.INC
Die Prozeduren zur Erzeugung von Objekten in Ressourcen.
<Name>RRN.INC
Der Aufruf dieser Prozeduren in der Prozedur Run.
<Name>REG.INC
Diese Datei enth
lt die Implementation der Prozedur, die
ber den Aufruf der Prozedur RegisterType jeden w
hrend eines Projektes deklarierten Dialogobjekt-Typen registriert. O
Diese Methode wird sowohl im Prototypen als auch im Ressourceneditor benutzt.
<Name>HLP.TXT
Die Textdatei, in der die Hilfetexte niedergeschrieben werden. Sie mu
mit dem Turbo Vision Hilfecompiler TVHC zu einer verwendbaren Hilfedatei compiliert werden, um im Programm benutzt werden zu k
nnen. V
-
Hilfeeditor
Turbo Wizard bietet Ihnen mit seinem Hilfeeditor eine komfortable M
glichkeit, eine komplette Onlinehilfe zu erstellen. 2
In diesem Hilfeeditor haben Sie die M
glichkeit: 4
Einen Eintrag ins Inhaltsverzeichnis vorzunehmen.
Einen oder mehrere Eintr
ge in den Index vorzunehmen. Verschiedene Suchbegriffe m
ssen Sie durch ein '/' voneinander trennen.
Den Text der Hilfetafel einzugeben. Der Wizard erzeugt je nach Programmkontext eine
berschrift, die andeutet, ob es sich um einen Men
befehl, einen Button, eine Eingabezeile etc. handelt. e
Den Hinweistext spezifizieren, der in der Statuszeile zu diesem Hilfkontext angezeigt werden soll.
Neue Hilfkontexte deklarieren. Dazu gibt es eine Taste "Querverweis", die Sie zun
chst zur Eingabe eines Kontextnamens auffordert und dann einen neuen Hilfeeditor
ffnet. Wenn der Kontext bereits vorhanden war, so erscheint der alte Eintrag.
Der Hilfeeditor ist modal, und wie alle modalen Dialoge kann er sehr l
stig werden. Sie k
nnen daher im Men
Optionen
Einstellungen
angeben, ob Sie jeden neuen Hilfekontext sofort oder sp
ter mit
Optionen
Hilfe Bearbeiten
editieren m
chten.
Sie k
nnen weiterhin vorgeben, ob eine solche Bearbeitung alle Eintr
ge oder nur die noch nicht mit "Ok" best
tigten umfassen soll. ^
Ob ein Eintrag bereits best
tigt wurde erkennen Sie in der Konstantenliste an einem H
kchen. W
-
Das Hilfe-Inhaltsverzeichnis
Der erste Punkt in der Hilfedatei, die der Wizard erzeugt, ist das Inhaltsverzeichnis - eine alphabetisch geordnete Liste der Eintr
ge, die Sie im Hilfeeditor vorgenommen haben. :
Die Eintr
ge sind durch jeweils eine Leerzeile getrennt. f
Die alphabetische Ordnung ist nat
rlich nicht sinnvoll, zumindest aber sinnvoller als keine Ordnung.
Der Hilfe-Index
Der zweite Punkt in der Hilfedatei, die der Wizard erzeugt, ist der Index - eine alphabetisch geordnete Liste der Eintr
ge, die Sie im Hilfeeditor vorgenommen haben.
Eintrag im Inhalt
Steht der Hilfekontext des Progrmmes auf hcNoContext - z.B. wenn kein Objekt mit eigenem Hilfekontext fokussiert ist - erscheint eine Tafel mit einem Inhaltsverzeichnis der Online-Hilfe.
In dieser Eingabezeile k
nnen Sie bestimmen, ob und wie diese Hilfetafel als Hypertext-Link in dieses Inhaltsverzeichnis aufgenommen werden soll.
Eintrag im Index
Alle Eintr
ge in dieser Zeile werden vom Wizard als Hypertext-Link in einer alphabetisch sortierten Liste in der Hilfetafel "Index" aufgef
hrt.
Sie k
nnen in dieser Zeile mehrere Eintr
ge in diesen Index vornehmen, indem Sie sie mit '/' trennen, wie z.B. in "Wenig sinnvoll/Unsinn/Narretei". \
bertreiben Sie es aber nicht - TVHC kommt bei zu komplexen Dokumenten im Schwierigkeiten.
Hinweis in der Statuszeile
Hier k
nnen Sie eine kurzen Hinweistext eingeben, der durch die Funktion TWStatusLine.Hint(AHelpCtx) zu diesem Programmkontext in der Statuszeile ausgegeben werden soll.
Der Hilfetext
In diesem Feld k
nnen Sie einen Text eingeben, der zum aktuellen Hilfekontext in einer Hilfetafel angezeigt werden soll.
Diese Texte werden bei der Vorbereitung eines Prototyps in die Datei "<ProjectName>HLP.TXT"
bernommen, die sich mit dem Hilfecompiler TVHC.EXE zu einer Hilfedatei compilieren l
Um die L
nge der Textzeilen brauchen Sie sich dabei nicht zu k
mmern: alle Zeilen, die nicht mit einem Leerzeichen beginnen oder durch eine leere Zeile getrennt sind, werden als zusammenh
ngender Text behandelt und je nach Gr
e des Hilfefensters automatisch richtig umgebrochen. g
Zur Erinnerung hier die Tastaturcodes einiger Sonderzeichen, die f
berschriften gebr
uchlich sind: c
: ALT-218
: ALT-196
: ALT-191
: ALT-179
: ALT-192
: ALT-217
: ALT-201
: ALT-205
: ALT-187
: ALT-186
: ALT-200
: ALT-188
: ALT-220
: ALT-175
: ALT-223
: Alt-174
: Alt-221
: Alt222
-
hcnummer1
hcNummer2
hcNochEinEintrag
hcWieInteressant
hcHilfe
Wenn Sie einen dieser Konstantenbezeichner mit der Maus zweimal anklicken
ffnet sich der Hilfeeditor f
r diesen Kontext. E
Ein H
kchen deuten an, da
ein Eintrag schon einmal editiert wurde.
Abbruch
Mit diesem Knopf brechen sie den Befehl
Optionen
Hilfe bearbeiten
ab. ?
nderungen in der letzten Karte werden nicht gespeichert.
Querverweis
Mit diesem Knopf k
nnen Sie einen neuen Querverweis bzw. einen neuen Hilfekontext hinzuf
gen. Falls der Konstantenname schon existiert, wird der bereits vorgesehene Text angezeigt.
Im Eingabefeld selbst kennzeichnen Sie einen Querverweis durch das Einfassen des Kontextnamen (nat
rlich ohne das 'hc', das ja erst von TVHC hinzugef
gt wird) oder der Kombination <anzuzeigender Text>:<Kontextname> in geschweifte Klammern.
Projekt
Deklarationen...
Dieser Befehl f
gt Listen der Kommando- und Hilfekonstanten und der bisher deklarierten Prozeduren ein.
Ein H
kchen hinter den Bezeichnern deutet bei Prozeduren an, da
eine gleichnamige Prozedur bereits im Quelltext vorliegt, bei den Hilfekonstanten, da
die Eintragungen im Hilfeeditor f
r diesen Hilfekontext mit OK best
tigt wurden.
Wenn Sie in der Liste der Hilfekonstanten eine Konstante mit einem Doppelklick ausw
hlen, k
nnen Sie die Eintragungen des Hilfeeditors editieren.
Optionen
Hilfe bearbeiten
Dieser Befehl l
t Sie die bisherigen Eintragungen des Hilfeeditors sichten und bearbeiten.
Wenn in den Einstellungen die Option
Alle HelpCtx bearbeiten
hlt ist, werden hintereinander alle Eintragungen gezeigt, ansonsten nur die, die noch nicht mit "Ok" best
tigt wurden.
Bearbeiten
Dieses Men
enth
lt Befehle f
r die Arbeit mit Clipboard und Editor.
Bearbeiten
Dieser Befehl macht die letzte
nderung im Editor r
ngig. ^
Der Cursor mu
sich noch in der ge
nderten Zeile befinden und darf nicht bewegt worden sein.
Bearbeiten
Ausschneiden
Dieser Befehl l
scht den markierten Text im Editor und
bertr
gt ihn ins Clipboard, wo er f
r den n
chsten Einf
gen-Befehl zur Verf
gung steht.
Bearbeiten
Kopieren
Dieser Befehl kopiert den markierten Text ins Clipboard, wo er f
r den n
chsten Einf
gen-Befehl zur Verf
gung steht.
Bearbeiten
Dieser Befehl f
gt den zuletzt ins Clipboard
bertragenen Text an der aktuellen Cursorposition ein.
Suchen
Dieses Men
enth
lt Befehle zum Suchen und Ersetzen von Text.
Suchen
Finde
Dieser Befehl l
t Sie Text eingeben und im Editor suchen.
Suchen
Ersetzen
Mit diesem Befehl k
nnen Sie im Editor Text suchen und ersetzen.
Suchen
Erneut Suchen
Dieser Befehl wiederholt den letzten Suchen- oder Ersetzen-Befehl.
Hilfe
Dieses Men
enth
lt Befehle zum Anzeigen des Hilfesystems, des freien Speichers und des Copyrights.
Hilfe
Inhalt
Zeigt das Inhaltsverzeichnis des Hilfesystems an.
Hilfe
Index
Zeigt eine Stichw
rterliste an.
Hilfe
Schnelleinstieg
Gibt eine Einf
hrung in die Arbeit mit dem Wizard.
Hilfe
Freier Speicher
Dieser Befehl zeigt den aktuell freien Heap und den gr
ten zusammenh
ngenden Block auf dem Heap an. g
Er stellt keine Aussage
ber den Speicherverbrauch Ihres Programmes, sondern
ber den des Wizard dar.
Dieser Men
punkt ist ein Abfallprodukt der Programmentwicklung und diente der Suche nach "Speicherleichen". Wenn mal etwas
berhaupt nicht klappt k
nnen Sie hier eine m
gliche Ursache finden.
Dialog-Elemente
Alle Objekte, die Sie im Wizard verwenden k
nnen, sind Ihnen aus Turbo Vision 1.0 bekannt. Die genauen Laufzeiteigenschaften und die interne Struktur entnehmen Sie bitte Ihrer Turbo Vision Dokumentation bzw. der Turbo Pascal Online-Hilfe. ;
Beachten Sie bitte die Anmerkungen zum Programm THELP.COM "
Allgemein gilt f
r alle Objekte:
Sie k
nnen ein Objekt mit der Maus innerhalb seines Dialoges verschieben, wenn Sie beim Anklicken des Objektes mit der linken Maustaste die Ctrl-Taste gedr
ckt lassen.
Alle Objekte
ffnen ein Eingabefenster, wenn man sie mit der rechten Maustaste anklickt. In diesem Fenster lassen sich alle Parameter eingeben, die f
r die Quelltexterzeugung ben
tigt werden.
TWDialog
TStaticText
TLabel
TInputLine
THistory
TCheckBoxes
TMultiCheckBoxes
TRadioButtons
TListBox
TButton
TMemo
TValidator
-
Eigene Objekttypen
Die meisten Standardobjekte in Turbo Wizard lassen sich so modifizieren, da
sie Quellcode f
r unterschiedliche Objekttypen produzieren k
nnen, die dann allerdings das
ere Erscheinungsbild ihrer Vorfahren
bernehmen.
Zu diesem Zweck
ndern sie einfach im jeweiligen Eigenschaftendialog die Felder "Typ" auf einen Zeigertyp (!) Ihrer Wahl und passen ggf. den Eintrag im Datenrecord an. Q
Turbo Wizard wird allerdings weiterhin die gleiche Constructor-Syntax benutzen.
Sie k
nnen sich
ber den Men
befehl "Projekt
Warnungen" eine Liste der Dateien anzeigen lassen, in denen derart ge
nderte Type verwendet werden, um z.B. den Constructor abzu
ndern oder sicherzustellen, da
alle n
tigen Units eingebunden und die Objekttypen registriert werden. U
-
Datenrecord
Der Datenaustausch mit den Elementen eines Dialoges sollte niemals direkt, sondern immer unter Benutzung der Methden GetData bzw. SetData
ber einen Record erfolgen, dessen Eintr
ge allerdings in Reihenfolge und Gr
e genau auf die Elemente des Dialoges abgestimmt sein m
ssen. O
Durch diese Pufferung entledigt man sich einer ganzen Reihe m
glicher Fehler.
Bedenken Sie nur einmal, da
der Datenbereich einer Eingabezeile nur
ber einen Zeiger referenziert wird. Die Get/SetDat-Methoden kennen die erlaubte Stringl
nge - eine direkte Zuweisung eines Strings dagegen, der nur ein Zeichen zu lang ist, kann fatale Folgen haben.
Leider haben solche Zeigerfehler zudem noch die Eigenschaft, hartn
ckig verborgen zu bleiben bzw. erst beim Anwender aufzutreten.
Turbo Wizard erstellt diesen Datenrecord selbst
ndig, in Abh
ngigkeit von der "Eigenschaft" RecordEntry eines jeden Dialogelementes. J
Bei dieser Eigenschaft handelt es sich schlicht um den Ausdruck, der im Quellcode f
r ein Dialogelement in diesem Record vorgesehen ist. Dieser wird z.B. f
r ein RadioButton-Feld immer "Word" lauten, er ist aber bei TInputLine-Objekten je nach erlaubter Eingabel
nge variabel. (Hier lautet er n
mlich "String[<erlaubte L
nge>]") K
Mehr
ber die Standardvorgaben erfahren Sie unter den einzelnen Objekten.
Bei abgeleiteten Objekten, deren Get/SetData-Methoden von denen ihrer Vorfahren abweichen, k
nnen Sie im Eigenschaftendialog neben dem Typ auch das Feld "RecordEntry"
ndern. j
Die Eintr
ge im Datenrecord werden den gleichen Namen vorgenommen, die die Dialogelemente selbst tragen. [
Wenn Sie das Feld RecordEntry im Eigenschaftendialog l
schen, so unterbleibt ein Eintrag.
Stellen Sie aber bitte sicher, da
die Get/SetData- und die DataSize- Methoden zu den modifizierten Eintr
gen passen (bzw. da
Sie den Reset-Knopf Ihres Rechners bequem erreichen k
nnen). e
Turbo Wizard gibt Ihnen die M
glichkeit, den Recordtyp wahlweise lokal oder global zu deklarieren. *
Bei lokaler Deklaration findet sich eine -
TYPE <Name der Prozedur>Rec=Record ... End; y
Anweisung direkt in der Prozedur, die den Dialog aufruft. Die Instanz, die in der Prozedur benutzt wird, hei
t NewData. ]
Bei globaler Deklaration wird der Recordtyp in der Datei "<ProjectName>TYP.INC" deklariert. &
Die Instanz hei
t auch hier NewData.
Es besteht au
erdem die M
glichkeit, NewData nicht als lokale Variable auf dem Stack, sondern dynamisch in einer lokalen Zeigervariablen auf dem Heap einzurichten. T
-
THelp
Ein kleiner Tip: im Lieferumfang von Turbo Pascal befindet sich das Programm thelp.com. Es handelt sich hierbei um eine speicherresidente Online-Hilfe zu Turbo-Pascal, die sich - zumindest auf meinem System - auch in den oberen Speicher laden l
t. "Online" bedeutet, da
Sie tats
chlich die Information zum Turbo Pascal - Ausdruck bekommen, auf dem der Cursor gerade steht. Wenn Sie vor dem Start von TWizard dieses Programm mit W
"thelp /F<vollst
ndiger Pfad zur Datei turbo.hlp> /K0044"
bzw. "lh thelp ... "
laden, so steht Ihnen dieser Service bei Druck der F10-Taste zur Verf
gung.
Die beiden Programme scheinen gut miteinander auszukommen, trotzdem gelten nat
rlich alle Bedenken, die f
r den Einsatz residenter Programme bestehen.
Insbesondere sollten sie alle anderen Programme, die im Hintergrund auf einen speziellen Tastendruck lauern, zuvor aus dem Speicher entfernen. U
-
Der Editor
Das Editor-Fenster stellt einen Editor mit Clipboard zur Verf
gung, in dem Sie den Quelltext direkt
berpr
fen und modifizieren k
nnen. H
Die Funktionstasten entsprechen weitgehend denen der Turbo Pascal IDE. f
Mit F2 speichern sie die Datei im momentan aktiven Fenster, mit F3 k
nnen Sie eine neue Datei laden.
Schnelleinstieg
Wenn Sie den Wizard das erste Mal starten haben Sie im Datei-Men
chst nur die M
glichkeit, das Verzeichnis zu wechseln oder ein neues bzw. bereits bestehendes Projekt zu
ffnen.
Ein Projekt ist eine Datei, in der alle Informationen gesammelt werden, die der Wizard ben
tigt, um Eingaben bei der Quelltexterzeugung richtig interpretieren zu k
nnen oder einen Prototypen zu erstellen. Der tats
chliche Quelltext wird hier allerdings nicht gespeichert.
Wenn Sie nun ein Projekt
ffnen, so wird der Men
balken um ein paar neue Men
s erweitert, die Ihnen die eigentliche Arbeit erlauben. r
Im Men
"Projekt" k
nnen Sie das Projekt wieder schlie
en, abspeichern oder unter einem anderen Namen speichern. q
Im Men
Objekte finden Sie alle Befehle zum Einf
gen von Dialogen, Feldern in Dialogen, Men
s und Statuszeilen. d
Alle eingef
gten Objekte lassen sich bearbeiten, indem man sie mit der rechten Maustaste anklickt.
Objekte in Dialogen lassen sich mit der Maus verschieben, indem man sie bei gedr
ckter STRG-Taste mit der Maus anklickt und
ber den Bildschirm zieht. w
Dialoge, Men
s und Statuszeilen enthalten alle einen Knopf, mit dem sich die Erzeugung des Quelltextes ausl
sen l
Wenn Sie ein Projekt
ffnen, wird der Testmodus eingeschaltet, in dem der Wizard den Quelltext nicht in Dateien speichert, sondern in Fenstern auf dem Bildschirm ausgibt. Mit "Optionen
Ziel" k
nnen Sie den Modus umstellen. "SCREEN" bedeutet dabei Testmodus, "DISK" realen Arbeitsmodus. 8
Siehe dazu Die
Quelltextdateien und Quelltextoptionen. |
Bei Men
s und Buttons werden Sie zur Angabe einer cmXXX-Konstanten und einer damit zu verkn
pfenden Prozedur aufgefordert. U
Diese Konstanten werden bei der Vorbereitung eines Prototyps vom Wizard deklariert.
erdem k
nnen Sie f
r die meisten Objekte einen Hilfekontext spezifizieren und angepa
t an den Programmkontext Hilfen auf Tafeln und in der Statuszeile geben. n
Die Schalter im Men
Optionen
Einstellungen
bestimmen Sie, wie und wann Sie diese Hilfe editieren m
chten.
Um einen lauff
higen
Prototypen zu erhalten, aktivieren Sie den Men
befehl
Datei
Prototyp vorbereiten
, der, wenn Sie alle f
r einen Prototypen minimal n
tigen Arbeiten erf
llt haben, alle Dateien bereitstellt, um den Prototypen compilieren zu k
nnen. W
-
Quelltextoptionen
Bei der Erzeugung des Quelltextes f
r einen Dialog haben Sie eine Reihe von M
glichkeiten zur Anpassung, die Sie in einem Dialog einstellen k
nnen, der vor der tats
chlichen Quelltexterzeugung eingeblendet wird. n
Einige dieser Einstellungen k
nnen Sie kombinieren, wobei allerdings nicht alle Kombinationen sinnvoll sind.
Generelle Optionen:
Deklaration eines neuen Dialogobjekt-Typen
Sie erhalten IMMER: "
-Die Deklaration des Zeigertyps. 6
-Die Deklaration eines TStreamRec f
r dieses Objekt.
-Die Deklaration des Objekttyps, mit Feldern f
r alle Elemente des Dialoges, die Sie durch ein dem Namen vorangestelltes '!' daf
r vorgesehen haben. Q
-Die Deklaration und Implementation der Methode HandleEvent. Siehe dazu TButton B
-die Deklaration und Implementation der Methoden Store und Load.
Die Implementation ruft zun
chst TDialog.Store bzw. TDialog.Load auf und speichert dann die eben genannten Felder durch den Aufruf der Methoden PutSubViewPtr und GetSubViewPtr, so da
bei Objekten aus einem Stream tats
chlich auf diese Elemente zugegriffen werden kann. r
Sie k
nnen au
erdem bestimmen, ob der Dialog im Constructor oder in einer Prozedur zusammengesetzt werden soll. f
Im ersten Fall erstellt der Wizard einen Constructor Init, der alle Elemente in den Dialog einf
gt. Dieser Constructor hat eine von TDialog.Init unterschiedliche Syntax, indem er nur die Angabe eines Titels, nicht aber die eines TRect-Rechtecks erwartet. Die Ma
e des Dialoges werden durch die Konstruktion im Wizard mehr oder weniger endg
ltig vorgegeben.
Im zweiten Fall wird der Constructor von TDialog nicht
berschrieben, und die Elemente des Dialoges werden in einer "normalen" Prozedur NACH dem Aufruf dieses Constructors eingef
gt. Dies ist selten sinnvoll, der Vorteil liegt meist nur darin, da
der Quelltext des Programms zus
tzlich verk
rzt wird, wenn ein solcher Dialog im Ressourceneditor erzeugt wird. Die Gr
e der EXE-Datei und der verf
gbare Arbeitsspeicher werden durch einen Constructor Init, der nicht aufgerufen wird, weil der Dialog stattdessen aus einer Ressource geladen wird nicht negativ beeinflu
t. Der Linker von Pascal entfernt diesen toten Code automatisch. Eine andere Anwendung dieser Technik l
ge darin, von einem so gestalteten Dialog einen Nachfahren abzuleiten, der einige Methoden
bernimmt, aber ein anderes Erscheinungsbild aufweisen soll. Der geerbte Constructor w
rde diese Absicht nat
rlich unterlaufen. Hier ist es aber oft sinnvoller, zun
chst einen abstrakten Vorfahren ohne definiertes Erscheinungsbild zu deklarieren und von diesem dann beide Dialoge abzuleiten.
Implementation einer Prozedur
Die Darstellung der Dialogobjekte auf dem Desktop wird durch Prozeduren bewerkstelligt, die wahlweise einen modalen oder nichtmodalen Dialog einf
gen.
Der Constructor, der dabei verwendet wird, h
ngt nat
rlich davon ab, ob und wie Sie einen Objekttyp deklarieren. (Ressource, eigener Constructor etc.) Q
Den Namen der Prozedur bestimmen Sie im Eigenschaftendialog des Dialogobjektes.
Verwendung einer Ressourcendatei
Sie k
nnen in jedem Fall, egal ob Sie nur eine Prozedur, nur einen Objekttyp oder beides implementieren, den Dialog in einer Ressource speichern.
Der Wizard erzeugt dann zus
tzlich in der Datei <ProjectName>RES.INC eine Prozedur "Put<ProcedureName>", die den Dialog konstruiert und in der Ressource <ProjectName>.RES speichert. Q
Wenn Sie eine Prozedur implementieren, so verwendet diese den Constructor Load. A
Wenn Sie ein Objekt implementieren, sollten Sie die Einstellung *
"Objekt in Prozedur/Ressource erzeugen"
hlen, da Sie andernfalls den Code zur Konstruktion des Dialoges nicht in den Ressourceneditor auslagern.
Stack schonen
Wenn Sie diese Option w
hlen, werden alle Elemente des Dialoges au
er denen, die als Felder in einem Objekt vorgesehen sind, in einer Zeigervariablen "Control" vom Typ PView initialisiert. Das hat den Vorteil, den Stack zu entlasten, auf dem lokale Variable angelegt werden, der Quelltext wird allerdings weniger gut lesbar. ~
Ein anderer Nachteil besteht darin, das der Wizard nicht bestimmen kann, welches Element automatisch fokussiert werden soll. U
Normalerweise f
gt der Wizard den Befehl <ElementName>^.Select ein, wobei <ElementName> der Name des Objektes ist, das zum Zeitpumkt der Quelltexterzeugung selektiert ist. Wenn die Option "Stack schonen" gew
hlt ist funktioniert dies nat
rlich nur, wenn der Cursor auf einem Objekt steht, das als Feld in einem Dialogobjekt vorgesehen ist.
In jedem anderen Fall wird die Anweisung "SelectNext(False)" eingef
gt. Sie sorgt daf
r, da
dasjenige Element selektiert wird, das zuerst in den Dialog eingef
gt wurde. Arbeiten Sie also beim Einf
gen immer in der Reihenfolge, in der auch der Anwender arbeiten soll. T
-
Einrichten auf..
) Stack
Wenn dieser Schalter gew
hlt ist, wird die Recordvariable NewData wie gewohnt als lokale Variable auf dem Stack eingerichtet.
Siehe Records
Heap
Einrichten auf..
) Heap
Wenn dieser Schalter gew
hlt ist, wird die Recordvariable NewData als dynamische
Variable
Heap eingerichtet.
Erstelle...
[X] Procedure zum Einf
gen
Wenn diese Einstellung gew
hlt ist erzeugt der Wizard eine Prozedur, die den Dialog in den Desktop einf
Erstelle...
[X] Objekt mit eigenem Eventhandler
Wenn diese Option gew
hlt ist deklariert der Wizard diesen Dialogtyp als Nachfahren von TDialog und implementiert die Methoden Store, Load, HandleEvent und gegebenenfalls den Constructor Init.
) In Procedure/Ressource zusammensetzen
Wenn diese Option gew
hlt ist, wird zu diesem Objekt KEIN eigener Constructor Init implementiert.
Der Dialog wird statt dessen nach Aufruf des Constructors von TDialog in der einf
genden Prozedur oder im Ressourceneditor zusammengesetzt.
hlen Sie diese Option auf jeden Fall, wenn Sie den Dialog aus einer Ressource laden m
chten, Sie sparen dann den Constructor-Code im Hauptprogramm.
) Im Constructor.Init zusammensetzen
Wenn diese Option gew
hlt ist, erstellt der Wizard einen eigenen Constructor f
r diesen Dialogtyp, der den Dialog nach Ihrem Layout vollst
ndig zusammensetzt.
) Nichtmodaler Dialog
Wenn Sie diese Einstellung w
hlen wird der Dialog als nichtmodaler Dialog mit der Anweisung Desktop^.Insert(Dialog) bzw. Application^.InsertWindow(Dialog) (Turbo Vision 2.0) eingef
Nichtmodale sind im Vergleich zu modalen Dialoge "benutzerfreundlicher", da sie die anderen Elemente des Desktop nicht sperren und so ein Weiterarbeiten an anderer Stelle erm
glichen. &
Es ist allerdings gef
hrlich, sie zur Eingabe von Daten zu benutzen, die nicht ausschlie
lich durch die Methoden des Dialoges selbst bearbeitet werden, denn eine
bereinstimmung der angezeigten Werte mit Variablen, die durch eine Eingabe modifiziert werden sollen ist nicht unbedingt gegeben.
) Modaler Dialog
In dieser Einstellung erzeugt der Wizard den Quelltext einer Prozedur, die den Dialog mit Desktop^.ExecView bzw. Application^.ExecuteDialog (Turbo Vision 2.0) als modalen Dialog einf
gt und den R
ckgabewert dieser Funktion bearbeitet.
[X] Ressourcendatei verwenden
Wenn diese Option gew
hlt ist, wird der Dialog in einer Prozedur im Ressourceneditor erzeugt, in einer Ressourcendatei gespeichert und im Programm mit "ResFile.Get(..)" geladen.
Damit diese Konstruktion funktioniert m
ssen Sie vor Ausf
hrung des Programmes nat
rlich den Ressourceneditor compiliert und ausgef
hrt haben.
[X] Stack schonen
Wenn diese Option gew
hlt ist, werden die Elemente, die in den Dialog eingef
gt werden sollen, nicht einzeln unter ihrem Namen in die Variablenliste aufgenommen, sondern in EINER Zeigervariablen 'Control' vom Typ PView initialisiert.
Von dieser Regelung ausgenommen sind Scrollbars und nat
rlich Objekte, die als Felder in einem neuen Dialogtyp deklariert werden sollen.
Der Begriff "modal"
Ein Dialog wird als modal bezeichnet, wenn er als einziges Fenster auf dem Desktop Eingaben zul
t, und alle anderen Elemente mit Ausnahme der Statuszeile f
r die Laufzeit des Dialoges gesperrt sind. C
Modale Dialoge werden in Turbo Vision durch Aufruf der Funktionen i
Sie bleiben modal, bis ihre Prozedur EndModal(Command) aufgerufen wird. T
Der Wert in Command liefert das Funktionsergebnis von ExecView bzw. ExecuteDialog.
Bei Verwendung der Funktion ExecView mu
der Dialog (nachdem man mit GetData die Daten in den Record geholt hat) mit Dispose(Dialog, Done) wieder vom Heap entfernt werden, ExecuteDialog erledigt diese Arbeit von selbst. V
-
Registrierung
Turbo Wizard ist Shareware. Sie d
rfen dieses Programm 30 Tage lang unentgeltlich benutzen, um seine Brauchbarkeit f
r Ihre Zwecke zu testen.
Wenn Sie nach Ablauf dieser Frist weiter mit dem Wizard arbeiten m
chten, m
ssen Sie sich registrieren lassen. Schicken Sie dazu einen Scheck
ber DM 50,- an folgende Adresse: 2
Ulrich Albrecht
ThomashofStr 23
52070 Aachen
Sie erhalten f
r dieses Geld: '
Eine erweiterte Version des Wizard.
Diese l
uft im Protected Mode des 286ers, was z.B. eine Dosshell mit mehr als 500k Arbeitsspeicher und die Einbindung des Pascal-Kommandozeilencompilers und des Turbo Debuggers erm
glicht, und unterst
tzt einige Features und Erweiterungen von Turbo Vision 2.0, z.B. Validierungsobjekte f
r Eingabezeilen (TValidate und Nachfahren) und TMultiCheckBoxes. Diese Vollversion wird mit dem DPMI-Server RTM von Borland ausgeliefert und ist daher keine Shareware!
Die Prozedur Showhelp aus der Unit XHelp?? ist so ge
ndert, da
Sie einen eigenen Titel f
r das Hilfefenster angeben k
nnen. In der Shareware-Version lautet dieser immer "Turbo Wizard Hilfe". h
Sie erhalten das Recht auf telefonische oder schriftliche Beratung. Ich rufe allerdings nicht zur
ck. .
Eine erweiterte Dokumentation auf Diskette. K
Die Vollversion ist Gegenstand st
ndiger Verbesserung und
berarbeitung.
Die Prozedur Showhelp
Turbo Wizard stellt Ihren Programmen ein Hilfefenster zur Verf
gung, das gegen
ber dem Objekttypen THelpWindow aus der Unit Helpfile einige Verbesserungen aufweist. Dieser Fenstertyp stellt zugleich die einzige empfindliche Einschr
nkung der Sharewareversion des Wizard dar, da die Titelzeile des Hilfefensters immer "Turbo Wizard Hilfe" lautet.
Dieser Fenstertyp wird in der Unit XHELP60.TPU f
r Turbo Pascal 6.0, in den Units XHELP70.TPU bzw. XHELP70.TPP f
r Turbo bzw. Borland Pascal 7.0 implementiert. Diese Units sollten dem Wizard in kompilierter Form beiliegen.
Er wird allerdings in der Sharewareversion nicht zu Ihrer Verwendung aus dieser Unit exportiert, das Einf
gen des Fensters geschieht stattdessen durch die Prozedur "Showhelp", deren Syntax und Bedeutung weiter unten erl
utert wird. 9
Hier zun
chst die Ver
nderungen gegen
ber THelpWindow:
Korrigierte Farbpalette. Auf einigen Systemen (tats
chlich auf allen, die ich bisher gesehen habe) liefert der Palettenstring von THelpWindow, egal ob aus Turbo Vision 1.0 oder 2.0, nur M
Wie die Hilfefenster der Pascal-IDE erlaubt auch dieses Fenster die Suche nach Querverweisen durch Eingabe des ersten, zweiten, dritten etc. Buchstaben eines Suchbegriffes. Dies macht einen Index bedeutend funktioneller. 2
Das Fenster verf
ber eine zirkul
re Historyliste von 30 Eintr
gen, in der eine Hilfetafel vermerkt wird, von der aus zu einem Querverweis abgezweigt wurde. Durch Absetzen der Befehlskonstanten "cmLastTopic", die mit dem Wert 201 belegt ist, kann man in dieser Liste wieder einen Schritt zur
ckgehen.
Dem Fenster wird zus
tzlich zum aktuellen Hilfekontext ein Hilfekontext
bergeben, dessen Text angezeigt wird, wenn bei bereits aktivierter Hilfe erneut "cmHelp" abgesetzt wird. Dies wird im allgemeinen der Inhalt des Hilfesystems oder der Index sein.
Der Hilfekontext des Hilfefensters selbst (den Sie ja ben
tigen, um eine passende Statuszeile zuzuordnen) lautet "hcHelpWindow=4999" #
AHelpCtx ist der Wert des Programmkontextes, zu dem die Hilfetafel angezeigt werden soll.
ADefaultTopic ist der Wert des Programmkontextes, zu dem eine Hilfetafel angezeigt werden soll, wenn bei ge
ffneter Hilfe erneut "cmHelp" eintrifft. Dieser Wert stellt au
erdem die Vorbelegung der History-Liste dar. T
In der Vollversion ist diese Syntax um die Titelangabe f
r das Fenster erweitert. W
-
Was ist Turbo Wizard?
Turbo-Wizard ist ein Dialog-Editor, Men
- und Programmgenerator, der es dem Programmierer erm
glicht, interaktiv Turbo-Vision Dialoge, Men
s, Statuszeilen und sogar ganze Prototypen zu erstellen.
Das Programm erzeugt keinen ausf
hrbaren Code, sondern Turbo-Pascal Quelltext, der sich mit einem Borland- bzw Turbo-Pascal-Compiler, Version 6.0 oder h
her compilieren l
t. Es besteht die M
glichkeit, zwischen Quelltext f
r die Turbo Vision Versionen 1.0 oder 2.0 zu w
hlen.
Im Gegensatz zu vorcompilierten Toolboxen bleibt das Programm vollst
ndig transparent, und alle Objekte verhalten sich auf dem Bildschirm genau so, wie Sie es von Ihrer Entwicklungsumgebung her gewohnt sind. :
Neben der Unterst
tzung der in Turbo-Vision 1.0 und 2.0 f
r Dialoge bereits vordeklarierten Objekte bietet Turbo-Wizard auch die M
glichkeit, eigene
Nachfahren dieser Standardobjekte zu verwenden, die sich in ihrer GetData-Methode von ihren Vorfahren unterscheiden, z.B. spezialisierte Eingabefelder oder Listen. i
Turbo Wizard unterst
tzt die Erstellung eines komplexen Hilfesystems und die Verwendung von Ressourcen.
Hardwarevoraussetzungen:
Processor ab 80286. B
Sie ben
tigen eine Maus. Ohne Maus keine Zeile Quelltext, sorry. o
Turbo Wizard macht regen Gebrauch von Overlays und Ressourcen, daher ist eine Festplatte sehr empfehlenswert.
MS oder PC DOS ab Version 3.0.
Hinweise und "legal stuff":
TWIZARD.EXE wurde mit dem Programm LZEXE komprimiert, das dessen Autor Fabrice Bellard gro
gigerweise als Freeware ver
ffentlicht hat. t
Turbo Vision, Turbo Pascal sowie Borland Pascal sind eingetragene Warenzeichen von Borland International INC, USA.
Die Benutzung des Programms TURBO WIZARD erfolgt auf eigene Gefahr. Eine Garantie f
r die Funktionst
chtigkeit wird nicht gegeben, die Verantwortung f
r irgendwelche Sch
den oder Datenverluste, die durch den Gebrauch des Programmes entstehen weise ich laut schreiend von mir. *
Copyright (c) 1994 by Ulrich Albrecht. U
-
Die Verwendung von Ressourcen
Die Verwendung von Ressourcendateien ist eine elegante Methode, Speicher zu sparen, da man den gesamten Code, der den Dialog, den Men
balken oder die Statuszeile zusammensetzt, in ein anderes Programm - den Ressourceneditor - verlagert und f
r jedes Objekt dann nur noch den Speicher ben
tigt, den alle tats
chlich relevanten Methoden und Datenfelder ben
tigen. N
erdem kann man das Erscheinungsbild der Dialoge leicht
ndern, ohne eine Zeile Quelltext im eigentlichen Programm
ndern oder das Programm gar neu compilieren zu m
ssen - die Entkopplung zwischen der Oberfl
che und dem "funktionellen" Code wird verbessert, der eigentliche Programmquelltext BEDEUTEND k
rzer und besser zu warten.
Bei einer
nderung der Reihenfolge oder Anzahl der Dialogelemente mu
man allerdings eine Anpassung des Datenrecords vornehmen! O
Ressourcen speichert man in "Dateien", besser Objekten vom Typ TResourcefile. X
-
TResourcefile
Das Objekt TRessourcefile verwaltet einen Stream (i.a. einen TDosStream), dessen Objekte zum Laden und Speichern durch einen String eindeutig referenziert werden k
nnen. Sie m
ssen also zun
chst den Stream initialisieren und dessen Addresse an den Constructor der ResourceFile
bergeben.
Da der Destructor von TRessourceFile auch den Destructor des Streams aufruft ist es wohl am effektivsten, die Initialisierung mit H
eine Programmdatei zu erstellen, die ihre eigenen Ressourcen enth
lt. g
Im Programm mu
der Stream der Ressourcendatei dann mit dem Namen der Exe-Datei initialisiert werden.
Wenn Sie ein Programm zur Kompression von EXE-Dateien (wie z.B. LZEXE von Fabrice Bellard) benutzen, k
nnen Sie die Kompression vor dem Zusammenkopieren vornehmen, das Programm bleibt lauff
hig. W
-
TStream
Ein Stream ist ganz allgemein ein Objekt, das einen Speicherbereich (Arbeits-, Platten-, EMS-Speicher) referenziert und Methoden besitzt, um registrierte Nachfahren von TObject in diesem Bereich zu speichern oder daraus zu laden.
Die Speicherung erfolgt dabei auf eine Weise, die es erlaubt, bei einem Ladevorgang den Typ des Objektes festzustellen, ein passendes Objekt auf dem Heap zu initialisieren und mit den gespeicherten Datenfeldern zu laden.
Hotkey
In der Hotkey-Eingabezeile k
nnen Sie einen Hotkey angeben - indem Sie ihn einfach bet
tigen. 9
Der Wizard kennt alle Alt-Buchstaben- und Zahlenkombinationen, die Funktionstasten und deren Kombinationen mit der Alt-, Shift- und Ctrl-Taste, sowie noch ein Paar Sondertasten unter den Namen, unter denen sie in der Unit DRIVERS als Konstanten deklariert wurden, insgesamt 106 verschiedene Tastenkombinationen.
befehle
In dieser Liste k
nnen Sie einem Men
befehl einen Hotkey zuordnen, indem Sie den entsprechenden Befehl aussuchen und dann die Tastenkombination bet
tigen. 7
Mit der Taste ENTF k
nnen Sie eine Zuweisung l
schen. ;
Der Wizard verhindert eine Mehrfachzuweisung automatisch. 9
Der Wizard kennt alle Alt-Buchstaben- und Zahlenkombinationen, die Funktionstasten und deren Kombinationen mit der Alt-, Shift- und Ctrl-Taste, sowie noch ein Paar Sondertasten unter den Namen, unter denen sie in der Unit DRIVERS als Konstanten deklariert wurden, insgesamt 106 verschiedene Tastenkombinationen.
Die Eingabe in diesem Feld bestimmt sowohl den Namen des Objektes als auch den des entsprechenden Feldes im DatenRecord.
In der Quelletexteinstellung Objekt k
nnen Sie mit einem dem Namen vorangestellten Ausrufezeichen bestimmen, da
das Objekt als Feld im Dialogobjekt aufgef
hrt wird.
Der Eintrag, der linksb
ndig im Men
erscheint. Wenn Sie einen Buchstaben in Tildezeichen (~) einfassen, so erscheint dieser rot abgesetzt und dient zur Aktivierung des Men
befehls. k
Wenn Sie einen Hotkey eingeben, so erscheint ein entsprechender Hinweis automatisch rechtsb
ndig im Men
Der Eintrag, der im Men
balken erscheint. Wenn Sie einen Buchstaben in Tildezeichen (~) einfassen, so erscheint dieser rot abgesetzt und dient in Kombination mit der ALT-Taste zur Aktivierung des Men
Procedure
Hier geben Sie den Namen der Prozedur an, in der dieser Dialog in den Desktop eingef
gt wird. `
Dieser Ausdruck wird au
erdem (um "Rec" erweitert) f
r die Bezeichnung des Recordtyps benutzt.
In dieser Zeile k
nnen Sie einen anderen Typ spezifizieren, wenn Sie ein Objekt anderen Typs einf
gen m
chten. g
Der Wizard erzeugt allerdings den Quelltext eines Constructors mit der gleichen Syntax wie der Urtyp.
Bei der Deklaration eines neuen Dialogobjekt-Typs legt dieses Feld den Namen des abgeleiteten Typs fest. Y
Dabei gelten folgende Konventionen (die sich mit denen der Borland-Entwickler decken) : l
Wenn im Quelltext ein Zeigertyp gefordert wird, so wird dem Eintrag in diesem Feld ein "P" vorangestellt; Y
bei der Deklaration eines neuen Objekttypen wird diesem Eintrag ein "T" vorangestellt; l
bei der Deklaration des TStreamRec f
r einen neuen Objekttypen wird diesem Eintrag ein "R" vorangestellt.
Beispiel:
Wenn Sie hier "EingabeDlg" eintragen, so erhalten Sie ein Objekttyp "TEingabeDlg", einen Zeiger auf diesen Typ "PEingabeDlg" und eine TStreamRec des Namens "REingabeDlg". X
-
Record-Entry
In dieser Zeile spezifizieren Sie den TYP des Eintrages, den der Wizard im Datenrecord vornimmt. Der NAME des Eintrags folgt aus dem Namen, den Sie dem Objekt zugeordnet haben. w
Dieses Feld d
rfen Sie nur
ndern, wenn Sie den Eintrag im Feld "Type"
ndern, also ein abgeleitetes Objekt einf
gen.
Record-Entry
Ein Memo-Feld nimmt zwei Eintr
ge in den Dialog vor, die der
bersichtlichkeit halber in einem Record TMemoRec zusammengefa
t werden. N
Es handelt sich um die L
nge des Textes und um seine maximal m
gliche L
nge.
Record-Entry
Ein TListBox-Objekt nimmt zwei Eintr
ge in den Dialog vor, die der
bersichtlichkeit halber in einem Record TBoxRec zusammengefa
t werden.
TBoxRec
Dieser Recordtyp wird in PROTODEC.PAS deklariert, um den Eintrag von ListBoxen in den Datenrecord
bersichtlicher zu gestalten.
Syntax f
TBoxRec = Record
BoxList: PCollection;
Focused: Word;
End;
Record-Entry
Der Eintrag in den Datenrecord einer wird vom Wizard beim Zeigertyp PInputLine in
bereinstimmung mit dem Feld Maximale
nge vorgenommen. D
Bei abgeleiteten Objekten m
ssen Sie selbst f
r Konsistenz sorgen.
HelpCtx (hcXXX)
Geben Sie hier den Namen der Hilfekonstanten an. k
Diese Namen m
ssen mit 'hc' beginnen. Ist dies nicht der Fall, so f
gt der Wizard diese Buchstaben hinzu.
Befehlskonstante (cmXXX)
Geben Sie hier den Namen der Kommandokonstanten an.
HelpCtx (hcXXX)
In das Feld HelpCtx des Objektes wird dieser Wert eingetragen, der tats
chliche Hilfekontext des Programmes bestimmt sich bei Schaltern allerdings aus diesem Wert und der Nummer der fokussierten Schalters, wobei die Z
hlung bei 0 beginnt. `
Daher legt der Wizard bei Angabe eines Hilfekontextes eine entsprechende Anzahl von Topics an.
Maximale Eingabel
Bestimmen Sie hier, wie lang die Eingabe sein darf. D
Die Standardeinstellung errechnet sich aus der L
nge der Zeile+10. x
Wenn Sie den Typ PInputLine beibehalten, reicht eine
nderung dieses Feldes, um den Eintrag im Datenrecord anzupassen. B
Bei allen anderen Typen M
SSEN Sie selbst f
r Konsistenz sorgen.
Unterer HelpCtx
Hier geben Sie den Namen der Hilfekontext-Konstanten ein, die die untere Grenze der "Zust
ndigkeit" der aktuellen Statuszeile bestimmt.
Oberer HelpCtx
Hier geben Sie den Namen der Hilfekontext-Konstanten ein, die die obere Grenze der "Zust
ndigkeit" der aktuellen Statuszeile bestimmt. I
Die Vorgabe hcEveryContext bedeutet 65.535, den maximal m
glichen Wert.
Hier geben Sie den Text ein, unter dem der Befehl in der Statuszeile erscheint.
Wenn Sie in der Hotkey-Eingabezeile einen Hotkey spezifizieren, wird dessen Text in roter Farbe diesem Eintrag vorangestellt.
Sie k
nnen dieses Feld leer lassen und damit einen verborgenen Eintrag in der Statuszeile vornehmen, der zwar bei Bet
tigung eines Hotkeys einen Befehl absetzen, aber nicht in der Statuszeile angezeigt wird.
Titel
Die Titelzeile des Dialoges.
Geben Sie hier den Text ein. r
Wenn Sie mehrere Zeilen vorgesehen haben versucht Turbo Vision automatisch, den Text in diesem Feld umzubrechen.
Der Text des Labels.
Wenn Sie einen Buchstaben mit Tildezeichen (~) einfassen, so erscheint dieser gelb und dient in Verbindung mit der Alt-Taste zu Fokussierung des Labels und des damit verbundenen Objektes.
Link-ID
Die ID des Objektes, dem dieses Label zugeordnet werden soll. S
Das Objekt mu
bereits existieren, seine ID also kleiner sein als die des Labels.
Die Objekt-ID
Turbo Wizard verwaltet die Objekte eines Dialoges anhand einer individuellen Identifikationsnummer (ID). Q
Die ID eines Objektes erfahren Sie in der Titelzeile des Eigenschaftendialoges. 5
Diese ID ist nicht mit der Typen-ID zu verwechseln!
Die Typen-ID
Diese ID wird beim Speichern von Objekten in und beim Laden aus einem Stream ben
tigt, um die richtige Store- bzw Load-Methode zu benutzen.
Sie wird f
r ein Objekt - das Nachkomme von TObjekt sein mu
- in dessen individuellem "TStreamRec" eingetragen und mit RegisterType "registriert".
Sie k
nnen diesen Wert im Men
punkt "Optionen
Einstellungen ver
ndern", m
ssen aber darauf achten, da
jedes Objekt, da
Sie im gleichen Programm verwenden eine individuelle ID erh
Wenn Sie den Wert nur beim Beginn eines neuen Projektes
ndern, sind Sie einigerma
en auf der sicheren Seite, da der Wizard dann diesen Wert f
r jedes neue Objekt inkrementiert.
History-ID
Eingabeaufzeichnungslisten werden in einem Block auf dem Heap gespeichert, dessen Gr
e - Standard ist 1k - in der Variablen HistorySize der Unit HistList gespeichert ist. p
Dieser Bereich kann in verschiedene Listen aufgeteilt werden, die man
ber den Wert "History-ID" referenziert.
Das bedeutet in der Praxis, da
THistory-Objekte mit der gleichen History-ID auf die gleiche Sammlung von Eintr
gen zugreifen.
Spaltenzahl
Die Anzahl der Spalten, in denen die Eintr
ge in der Listbox angezeigt werden sollen.
Max. Eingabel
Die Gr
e des Puffers, die f
r dieses Texteingabefeld reserviert wird. |
Sie wird dem Constructor des Memo-Feldes
bergeben und findet sich auch in der Deklaration des TMemoRec dieses Memofeldes. "
Siehe auch Records
Heap.
Records auf dem Heap
Bei umfangreichen Datenrecords, insbesondere aber beim Gebrauch von TMemo-Objekten, kann es zu einem Stack
berlauf kommen, wenn man die Recordvariable "NewData" als "normale" lokale Variable auf dem Stack anlegt.
Sie k
nnen daher im Eigenschaftendialog eines Dialoges bestimmen, ob sie NewData auf dem Stack oder als dynamische Variable auf dem Heap einrichten wollen. `
Die Aufrufe von Set/Getdata werden zu "SetData(NewData^)" bzw. "GetData(NewData^)" abge
ndert.
Beachten Sie, da
TURBO "SetData(NewData)" ebenso klaglos akzeptieren w
rde (mit fatalen Folgen, da "NewData" als Zeigervariable ja nun leider nur vier Byte gro
ist).
Wenn Sie nun allerdings bei der Bearbeitung des Ergebnisses eines modalen Dialoges Speicher f
r weitere dynamische Variablen reservieren, sollten Sie NewData zuvor wieder freigeben, da sonst der Heap unn
tigerweise fragmentiert wird. W
-
Box 1
In dieser Box finden Sie die Beschriftungen
Box 2
der Schalter. Um sie zu
ndern, m
ssen Sie
Box 3
die Eingabe mit [Enter] best
tigen.
Box 4
Dadurch wird der n
chste Eintrag automatisch
Box 5
in die Eingabezeile geladen.
Wenn Sie einen der Buchstaben mit Tildezeichen (~) einfassen, so erscheint dieser Buchstabe gelb und dient in Verbindung mit der Alt-Taste zur Auswahl dieser Option.
[X] Vertikal
Vertikalen Rollbalken einf
gen. R
Der Rollbalken wird am rechten Rand innerhalb der bestimmten Fl
che installiert.
[X] Horizontal
Horizontalen Rollbalken einf
gen. R
Der Rollbalken wird am unteren Rand innerhalb der bestimmten Fl
che installiert.
) keiner
In dieser Stellung f
gt der Wizard eine Listbox ohne Rollbalken ein.
) Vertikal
Wenn diese Option gew
hlt ist, wird an der rechten Kante der ListBox ein vertikaler Rollbalken eingef
) Horizontal
Wenn diese Option gew
hlt ist, wird an der unteren Kante der ListBox ein horizontaler Rollbalken eingef
[X] Alle neuen HelpCtx editieren
Ist diese Option gew
hlt, so wird jedesmal, wenn Sie einen neuen Hilfekontext eingeben, der Hilfeeditor ge
ffnet, um die Hilfetafeln, den Hinweistext etc. zu editieren.
Ist sie nicht gew
hlt, unterbleibt diese direkte Eingabe, und die Eintr
ge werden zwar gespeichert, aber als unbest
tigt markiert. B
Sie k
nnen die Hilfe dann zu einem sp
teren Zeitpunkt erstellen.
[X] Alle HelpCtx bearbeiten
Wenn diese Option gew
hlt ist, werden durch den Befehl
Optionen
Hilfe bearbeiten
ALLE Hilfeeintr
ge in der Reihenfolge der Deklaration der hcXXX-Konstanten angezeigt.
Ist sie deaktiviert, werden nur die Hilfekonstanten editiert, deren Eintr
ge noch nicht ge
ndert, also mit "Ok" best
tigt wurden. a
Ob ein Hilfekontext bereits best
tigt wurde erkennen Sie an dem H
kchen in der Konstantenliste.
[X] Ressourcendatei verwenden
Wenn diese Option gew
hlt ist, so wird die Konstruktion des Men
s bzw. der Statuszeile im Ressourceneditor vorgenommen, die Objekte werden in der Ressourcendatei <ProjektName>.RES gespeichert und durch die Methoden "TWApplication.InitMenuBar" bzw. "TWApplication.InitStatusLine" mit einer "ResFile.Get"-Anweisung aus der Ressource geladen.
Der Quelltext der Methoden "MakeStatusLine" und "MakeMenuBar" findet sich dann in den Dateien MAKESTAT.INR bzw. MAKEMENU.INR.
Wenn sie nicht gew
hlt ist, erzeugt der Wizard den Code f
r die Konstruktion dieser Objekte direkt in diesen Methoden - was das Programm vergr
ert und Speicherplatz kostet, allerdings eine Ressourcendatei unn
tig macht.
Aufschrift
Die Aufschrift des Knopfes. Wenn Sie einen Buchstaben mit Tildezeichen (~) einfassen, so wird dieser gelb dargestellt und dient zusammen mit der ALT-Taste als Hotkey.
Siehe bfLeftJust.
Befehl (cmXXXX)
Der Name der Befehlskonstanten, die bei Bet
tigung des Knopfes abgesetzt wird.
Siehe bfBroadcast.
Prozedur
In dieser Eingabezeile geben Sie den Namen
Prozedur ein, die durch das Befehlsereignis aufgerufen werden soll.
Eine entsprechende Zuweisung wird in der HandleEvent-Methode des Dialoges bzw. in der Auswertung des Ergebnisses eines modalen Dialoges vorgenommen.
Siehe dazu
Abarbeitung
durch
Prozedur
Abarbeitung
durch
Objekt
Prozedur
In dieser Eingabezeile geben Sie den Namen
Prozedur ein, die durch das Befehlsereignis aufgerufen werden soll. [
Eine entsprechende Zuweisung wird in der HandleEvent-Methode der Application vorgenommen.
) Lokal
Wenn diese Option gew
hlt ist UND Sie die Quelltextart auf "Procedure" gesetzt haben, wird der Typ des Datenrecords f
r den Datenaustausch mit dem Dialog lokal innerhalb der Prozedur deklariert.
) Global
Wenn diese Option gew
hlt ist, wird der Typ des Datenrecords f
r den Datenaustausch mit dem Dialog global unter dem Namen <Name>Rec deklariert.
) bfNormal
Diese Option ist das Gegenst
ck zu bfDefault. y
Schalter mit dieser Einstellung m
ssen erst mit der Tab-Taste angew
hlt werden, ehe sie auf die Eingabetaste reagieren.
) bfDefault
Diese Option ist das Gegenst
ck zu bfNormal. i
Bei Schaltern mit dieser Einstellung simuliert eine Bet
tigung der Eingabetaste das Dr
cken des Button.
[X] bfLeftJust
Ist diese Option gew
hlt, wird die Aufschrift des Knopfes statt zentriert linksb
ndig ausgegeben.
[X] bfBroadcast
bfBroadcast legt fest, ob TButton-Objekte
ber die Methode PutEvent oder die Funktion Message Ereignisse erzeugen sollen.
Ist bfBroadcast gel
scht, erzeugt ein TButton-Objekt mit PutEvent immer dann ein Ereignis vom Typ evCommand, wenn der Schalter gedr
ckt wird: h
Event.What := evCommand;
Event.Command := Command;
Event.InfoPtr := @Self;
PutEvent(Event);
Ist bfBroadcast gesetzt, sendet das TButton-Objekt mit der Funktion Message eine evBroadcast-Meldung an die
bergeordnete View Owner: 0
Message(Owner, evBroadcast, Command, @Self);
Dadurch wird ein Rundrufereignis ausgel
st, d.h. da
der Dialog, zu dem der Button geh
rt, diese Message an alle seine Subviews versendet. B
Dadurch k
nnen Befehle an andere Dialogelemente gesendet werden. U
-
Abarbeitung...
) ...durch aufrufende Proz.
Wenn diese Option gew
hlt ist, wird die Befehls/Prozedur-Zuweisung nicht in den EventHandler eines zu deklarierenden Dialogtypen aufgenommen. M
Statt dessen bewirkt der Befehl den Aufruf der Methode EndModal(<Command>).
Wenn Sie bei der Quelltextproduktion des Dialoges die Option "Modaler Dialog" gew
hlt haben, wird die dem Button zugeordnete Prozedur nach dem Schlie
en des Dialoges innerhalb der Prozedur aufgerufen, die den Dialog in den Desktop eingef
gt hat. &
Siehe auch Abarbeitung
durch
Objekt
Abarbeitung...
) ...durch Objekt
Wenn Sie diese Option gew
hlt haben, wird die Prozedur, die Sie diesem Button zugeordnet haben, durch die Methode HandleEvent des Dialoges aufgerufen, wenn Sie diesen Knopf dr
cken. '
Siehe auch Abarbeitung
durch
Prozedur
Ok
Ein Druck auf diesen Knopf akzeptiert die Eingabe und schlie
t den Dialog.
Abbruch
Ein Druck auf diesen Knopf verwirft die
nderungen und schlie
t den Dialog.
schen
Ein Druck auf diesen Knopf l
scht das Objekt, bei ListBoxen und Memo-Feldern auch deren Rollbalken.
schen
Ein Druck auf diesen Knopf l
scht den Men
balken.
schen
Ein Druck auf diesen Knopf l
scht das gesamte Untermen
schen
Ein Druck auf diesen Knopf l
scht die gesamte Konstruktion der Statuszeile.
Quelltext schreiben
Dieser Knopf l
st die Erzeugung des Quelltextes f
r dieses Dialogobjekt aus.
Schreiben
Dieser Knopf l
st die Quelltextproduktion der Methode TWApplication.InitMenuBar aus. :
Das Ergebnis ist abh
ngig von der Stellung des Schalters
Ressourcendatei
verwenden
Speichern
Mit diesem Knopf k
nnen Sie den Men
balken in einer Datei speichern, deren Namen Sie in einem Dialog bestimmen k
nnen. 8
Das Laden erfolgt mit dem Men
befehl Datei
laden.
Linie
Mit diesem Knopf f
gen Sie eine Linie in das Men
ein.
chster Eintrag
Dieser Knopf akzeptiert die Eingaben, erstellt einen Men
befehl und leert die Maske zur n
chsten Eingabe. Z
Er wird bei Bet
tigung der Eingabetaste gedr
ckt und erm
glicht so ein z
giges Arbeiten.
Eintrag...
Mit diesem Knopf
ffnen Sie den Dialog, in dem Sie die Befehlseintr
ge in die aktuelle Statuszeile vornehmen k
nnen.
chste
Mit diesem Knopf bl
ttern Sie zwischen den Statuszeilen.
Schreiben
Dieser Knopf l
st die Produktion des Quelltext der Methode TWApplication.InitStatusLine aus. :
Das Ergebnis ist abh
ngig von der Stellung des Schalters !
Ressourcendatei
verwenden.
Neue Zeile
Dieser Schalter erzeugt eine neue, leere Statuszeile vom Typ TStatusDef.
TStatusDef
Dieser Recordtyp speichert die f
r einen bestimmten Kontextbereich festgelegte Statuszeile.
Syntax: _
TStatusDef = record
Next: PStatusDef;
Min, Max: Word;
Items: PStatusItem;
end;
TStatusItem
Dieser Record-Typ speichert einen Befehls-Eintrag in der Statuszeile.
Syntax: n
TStatusItem = record
Next: PStatusItem;
Text: PString;
KeyCode: Word;
Command: Word;
end;
Speichern
Dieser Knopf speichert die gesamte Konstruktion der Statuszeile in einer Datei, deren Namen Sie in einem Dialog ausw
hlen k
nnen. -
Die Standardendung der Datei lautet ".STL". @
Das Laden erfolgt mit dem Men
befehl
Datei
Statuszeile
laden.
chster Eintrag
Dieser Knopf akzeptiert die Eintragungen, erzeugt einen Eintrag in die Statuszeile und leert die Eingabemaske f
r den n
chsten Eintrag. _
Er wird durch die Bet
tigung der Eingabetaste gew
hlt und erm
glicht so ein z
giges Arbeiten.
Befehl (cmXXX)
Der Name der Befehlskonstanten, die bei Wahl dieses Men
befehls abgesetzt wird. e
Die Eingabe ist obligatorisch, Men
befehle ohne einen Eintrag in diesem Feld werden nicht erstellt.
Wenn Sie dieser Konstanten eine Prozedur zuordnen, wird diese Verkn
pfung in die TWApplication.HandleEvent-Methode aufgenommen.
[X] gfGrowLoX
Wenn dieser Schalter aktiviert ist, beh
lt die linke Kante des Objektes konstanten Abstand zur rechten Kante des Dialoges, wenn Sie diesen vergr
ern oder verkleinern.
[X] gfGrowLoY
Wenn dieser Schalter aktiviert ist, beh
lt die obere Kante des Objektes konstanten Abstand zur unteren Kante des Dialoges, wenn Sie diesen vergr
ern oder verkleinern.
[X] gfGrowHiX
Wenn dieser Schalter aktiviert ist, beh
lt die rechte Kante des Objektes konstanten Abstand zur rechten Kante des Dialoges, wenn Sie diesen vergr
ern oder verkleinern.
[X] gfGrowHiY
Wenn dieser Schalter aktiviert ist, beh
lt die untere Kante des Objektes konstanten Abstand zur unteren Kante des Dialoges, wenn Sie diesen vergr
ern oder verkleinern.
[X] Hilfekonstanten speichern
Wenn dieser Schalter aktiviert ist, werden alle hcXXX-Konstanten in der Include-Datei '<ProjektName>HCX.INC' deklariert. <
Eine
ltere Version dieser Datei wird dabei
berschrieben.
[X] Kommandokonstanten speichern
Wenn dieser Schalter aktiviert ist, werden alle cmXXX-Kommandokonstanten in der Include-Datei <ProjektName>CMX.INC deklariert. <
Eine
ltere Version dieser Datei wird dabei
berschrieben.
[X] Prozeduren deklarieren, "Dummys" schreiben
Wenn dieser Schalter aktiviert ist, werden alle Prozeduren, deren Quelltext Sie
ber einen Dialog erzeugt haben, in der Includedatei <ProjektName>PDC.INC f
r ihren Gebrauch in der Unit <ProjektName>RUN vorausdeklariert.
Alle Prozeduren, deren Namen Sie bei der Zuordnung zu einer Befehlskonstanten verwendet haben, die aber nicht
ber einen Dialog implementiert wurden, werden in der Datei <ProjektName>DDC.INC deklariert und in der Datei <ProjektName>DMY.INC als Messageboxen implementiert. 6
Alle drei Dateien
berschreiben eine
ltere Version.
[X] TWApplication.HandleEvent
berschreiben
Wenn dieser Schalter aktiviert ist, erzeugt der Wizard den Quelltext der TWApplication.HandleEvent-Methode in der Datei <ProjektName>EVH.INC. )
Eine
ltere Version wird
berschrieben.
[X] Hilfetext schreiben
Wenn dieser Schalter aktiviert ist produziert der Wizard die Textdatei <ProjektName>HLP.TXT, die den mit TVHC zu compilierenden Hilfetext enth
lt, und erzeugt den Quelltext der Function TWStatusLine.Hint in der Datei <ProjektName>HNT.INC. e
Wenn bereits eine Hilfedatei existiert fragt der Wizard Sie zun
chst nach einem anderen Dateinamen. @
<ProjektName>HNT.INC dagegen
berschreibt eine
ltere Version.
[X] Objekttypen registrieren lassen
Wenn dieser Schalter aktiviert ist implementiert der Wizard in der Datei <ProjektName>REG.INC eine Prozedur, die alle Dialogobjekttypen eines Projektes mit RegisterType zur Verwendung in einem Stream registriert. r
Der Name der Prozedur richtet sich nach dem Namen
Unit, in der die Objekte und Prozeduren deklariert werden. 3
Eine
ltere Version der Datei wird
berschrieben.
[X] Programm- und Unit-Quelltext schreiben
Wenn dieser Schalter gew
hlt ist, schreibt der Wizard folgende Dateien: c
-Die Programmdatei, die den gleichen Namen wie die Projektdatei, allerding die Endung .PAS tr
-Die Unit, in der alle Dialoge und Prozeduren implementiert werden. Ihr Namen ergibt sich aus den ersten f
nf Buchstaben des Projektnamens und der Silbe "RUN".
-Die Programmdatei des Ressourceneditors. Ihr Namen ergibt sich aus den ersten f
nf Buchstaben des Projektnamens und der Silbe "RES". =
Existierende Versionen dieser Dateien werden
berschrieben.
Optionen zur Erzeugung eines Prototyps
Sie k
nnen den Befehl
Projekt
Prototyp vorbereiten
in einem Dialog konfigurieren, um nur bestimmte Vorg
nge durchf
hren zu lassen. 1
Hilfekonstanten Kommandokonstanten
Prozeduren
Dummys TWApplication.HandleEvent
Hilfetexte
Hints Objekttypen
registrieren
( X ; Y)
Mit diesem K
stchen k
nnen Sie die Ausma
e des neuen Objektes bestimmen. Ein Druck auf die rechte Maustaste plaziert das Objekt auf dem Bildschirm, [ESC] bricht den Vorgang ab. @
Um die Gr
e zu
ndern ziehen Sie an der rechten unteren Ecke.
Das K
stchen k
nnen Sie verschieben, indem sie es in der oberen Zeile anklicken und bei gedr
ckter Maustaste
ber den Bildschirm ziehen. P
Die Zahlen in der rechten unteren Ecke informieren Sie
ber die x- und y-Ma
Beim Einf
gen von Checkboxes oder Radiobuttons bestimmt die y-Abmessung die Anzahl der einzuf
genden Schalter. Sie k
nnen diese Vorgabe allerdings in einem Eingabedialog modifizieren, indem Sie beim Druck der rechten Maustaste die Strg-Taste dr
cken. Turbo Vision plaziert die Schalter dann n
tigenfalls nebeneinander. =
Es sind maximal 16 Checkboxes bzw. 32 Radiobuttons erlaubt. U
-
Suchpfade
Sie k
nnen die Suchpfade zum Compiler und Debugger in einem Dialog bestimmen.
Compiler
Geben Sie hier den vollst
ndigen Pfad zum einzubindenden Kommandozeilen-Compiler ein, inklusive Dateinamen und erweiterung.
Units
Geben Sie hier den Pfad zu den Turbo Vision Units ein.
Debugger
Geben Sie hier den kompletten Suchpfad zum einzubindenden Debugger ein, inklusive Dateinamen und Erweiterung.
Geben Sie hier den kompletten Pfad zum Hilfecompiler TVHC ein, inklusive Dateinamen und Erweiterung.
Compiler-Optionen
Geben Sie hier die Parameter f
r die Kommandozeile des Compilers ein.
Projekt
Compilieren
Dieser Befehl ruft den Kommandozeilencompiler BPC bzw. TPC und den Hilfecompiler TVHC auf, um den Prototypen, den Ressourceneditor und den Hilfetext zu compilieren. Y
Die Suchpfade zu diesen Programmen m
ssen Sie unter "Optionen
Suchpfade..." einstellen.
Dieser Befehl ist nur in der registrierten Vollversion verf
gbar, die im 286-Protected Mode l
uft und daher gen
gend Speicher f
r diese Programme zur Verf
gung stellen kann.
Projekt
Dieser Befehl startet zun
chst den Ressourceneditor, dann bei fehlerfreiem Ablauf den Prototypen.
Dieser Befehl ist nur in der registrierten Vollversion verf
gbar, die im 286-Protected Mode l
uft und daher gen
gend Speicher f
r diese Programme zur Verf
gung stellen kann.
Projekt
Debug
Dieser Befehl startet den Turbo Debugger mit dem Prototypen. V
Den Suchpfad zu diesem Programm m
ssen Sie unter "Optionen
Suchpfade..." einstellen.
Dieser Befehl ist nur in der registrierten Vollversion verf
gbar, die im 286-Protected Mode l
uft und daher gen
gend Speicher f
r dieses Programm zur Verf
gung stellen kann.
) Version 1.0
Wenn Dieser Schalter gew
hlt ist erzeugt der Wizard Quelltext f
r die Verwendung mit der Turbo Vision Version 1.0, die zum Umfang von Turbo Pascal 6.0 geh
Siehe auch Version
) Version 2.0
Wenn Dieser Schalter gew
hlt ist erzeugt der Wizard Quelltext f
r die Verwendung mit der Turbo Vision Version 2.0, die zum Umfang von Turbo bzw. Borland Pascal 7.0 geh
Modale Dialoge werden nicht mit der Funktion "ExecView()" sondern mit "ExecuteDialog()", nicht-modale Dialoge nicht mit "DeskTop^.Insert()" sondern mit "Application^.InsertWindow()" eingef
Diese Schalterstellung erm
glicht (in der Vollversion) au
erdem die Verwendung von TValidator-Objekten zusammen mit Eingabezeilen und von Schalterfeldern des Typs TMultiCheckBoxes.
[X] x-Zentriert
Wenn dieser Schalter gew
hlt ist, wird das Bit ofCenterX im Feld Options gesetzt und der Dialog beim Einf
gen in x-Richtung zentriert.
[X] y-Zentriert
Wenn dieser Schalter gew
hlt ist, wird das Bit ofCenterY im Feld Options gesetzt und der Dialog beim Einf
gen in y-Richtung zentriert.
Fehlermeldungen
Beim Compilieren eines Prototypen kann es zu Fehlern kommen, wenn bestimmte Dateien nicht geschrieben wurden, die in den Programmdateien
ber Include-Anweisungen eingebunden werden, oder Prozeduren doppelt geschrieben wurden.
Hier die h
ufigsten Ursachen:
<ProjektName>TYP.INC fehlt, wenn kein neuer Dialog-Objekttyp oder globaler Recordtyp deklariert wurde. L
schen Sie einfach die Includeanweisungen oder besser: f
gen Sie zwischen der geschweiften Klammer und dem $I ein Leerzeichen ein. q
<ProjektName>MNU.INC oder <ProjektName>STL.INC fehlen, da kein Men
bzw. keine Statuszeile konstruiert wurden. D
Sie sollten diese Konstruktionen allerdings unbedingt durchf
hren!
Sie haben zwei verschiedene Men
balken oder zwei verschiedene Statuszeilen im Ressourceneditor konstruiert. F
r Men
s kann dies durchaus sinnvoll sein - Turbo Wizard selbst f
hrt die Verwendung mehrerer Men
balken vor - allerdings m
ssen Sie selbst in der Datei <ProjektName>RES.INC daf
r sorgen, da
die Prozedur "MakeMenuBar" bzw. "MakeStatusLine" nicht zweimal unter dem gleichen Namen auftaucht - und die Objekte unter unterschiedlichen Namen in der Ressource gespeichert werden. V
-
TValidator
Turbo Vision 2.0 f
hrt TValidator-Objekte (und ein paar Nachfahren) ein, die mit einer Eingabezeile verbunden werden k
nnen und Methoden besitzen, um die G
ltigleit einer Eingabe zu
berpr
fen.
Der Wizard unterst
tzt alle bereits in TV 2.0 deklarierten Typen und erlaubt au
erdem die Angabe eines eigenen Typbezeichners. P
Sie installieren einen Validator vom Eigenschaftendialog der Eingabezeile aus. +
TFilterValidator TRangeValidator
TPXPictureValidator TStringLookupValidator
Selbstdefinierte
Typen
-
) keiner
In dieser Schalterstellung wird kein Validatorobjekt installiert. Sie k
nnen diese Stellung auch benutzen, um ein Validierungsobjekt zu l
schen.
) TFilterValidator
Ein TFilterValidator erlaubt die Angabe einer einer Menge von erlaubten Zeichen. Alle anderen Eingaben werden nicht akzeptiert.
Die Eingabe der erlaubten Zeichen erfolgt im Wizard in einem einfachen Dialog, in dem Sie gem
den Pascal-Konventionen eine Menge spezifizieren. Dabei k
nnen Sie auch die Mengenoperatoren '+', '-' und '*' benutzen.
Beispiele: *
['0'..'9'] ['a'..'z', 'A'..'Z']
['A'..'z']+['
[#32..#166]
Der TFilterValidator ist im Gegensatz zu allen anderen Validatoren innerhalb des Wizard nicht funktional. U
-
) TRangeValidator
Ein TRangeValidator erlaubt lediglich die Eingabe ganzer Zahlen und
berpr
ft, ob die eingegebene Zahl innerhalb der spezifizierten Grenzen liegt.
Dieses Validator-Objekt kann den Datentransfer f
r die Eingabezeile
bernehmen, wenn im Feld TRangeValidator.Options das Bit "voTransfer" gesetzt wird. Dadurch erspart man sich die Umwandlung eines Strings in eine Zahl und vice versa.
Der Wizard erzeugt den entsprechenden Quelltext, um diese Option zu nutzen und
ndert den Eintrag im Datenrecord f
r die Eingabezeile auf "LongInt".
) TPXPictureValidator
Ein TPXPictureValidator vergleicht die Eingabe mit einer Maske, deren Elemente den Maskenelementen der relationalen Datenbank Paradox von Borland entsprechen.
) TStringLookupValidator
Dieser Validatortyp
berpr
ft die Eingabe auf Enthaltensein in einer Liste von Strings.
Der Wizard l
t Sie diese Strings eingeben und erzeugt den entsprechenden Quelltext. Dieser ist zugegebenerma
en ein wenig kryptisch, da er ein bis zwei Typumwandlungen enth
) Selbstdefinierter Typ
hlen Sie diese Einstellung, wenn Sie einen direkt von TValidator abgeleiteten Typen installieren m
chten.
Spezifizieren Sie den Typ in der Eingabezeile "Typangabe" und erg
nzen Sie im Quelltext die Parameter f
r den Constructor Init.
Paradox Maskenelemente
Platzhalter
# : akzeptiert nur eine Ziffer
? : akzeptiert nur einen Buchstaben
& : akzeptiert nur einen Buchstaben, der in
einen Gro
buchstaben umgewandelt wird
Zeichen N
! : akzeptiert jedes Zeichen und wandelt
kleine in gro
e Buchstaben um
Sonderzeichen X
; :
bernimmt das n
chste Zeichen unver
ndert
* : Wiederholungsz
[] : Option
Alle anderen Zeichen werden unver
ndert
bernommen. v
Wenn die Option "AutoFill" gew
hlt ist, werden solche Zeichen (z.B. Trennstriche oder Punkte) automatisch eingef
gt. U
-
[X] Autofill
Wenn dieser Schalter aktiviert ist, werden F
llzeichen wie z.B. Datumspunkte, Trennstriche oder auch ganze W
rter automatisch eingef
gt, sobald der ihnen vorhergehende Teil der Maske vollst
ndig ausgef
llt wurde.
Typangabe
Geben Sie hier den Zeigertyp an, wenn Sie einen abgeleiteten Typen installieren m
chten.
Der vom Wizard benutzte Constructor h
ngt davon ab, welchen Ausgangstypen Sie im Schalterfeld der Validatortypen markiert haben.
[X] Eigene Dateien anlegen
Wenn diese Option gew
hlt ist, werden bei der Quelltexterzeugung NICHT die Standarddateien <ProjektName>PRC.INC, <ProjektName>RES.INC und <ProjektName>TYP.INC genutzt.
Stattdessen legt der Wizard abh
ngig davon, ob Sie eine Ressource verwenden m
chten und einen neuen Dialogtypen deklarieren, bis zu vier Dateien neu an (bzw.
berschreibt existierende Versionen) deren Namen sich nach dem Prozedurnamen bzw. dem Typenbezeichner richten.
Diese Schalterstellung ist hilfreich und sinnvoll, wenn die M
glichkeit besteht, da
Sie das Layout oder andere Eigenschaften des Dialoges nachtr
glich ver
ndern m
ssen. Da alle Dateien neu erzeugt werden, wird die Gefahr eines "Duplicate Identifier"-Compilerfehlers verringert.
Andererseits werden nat
rlich auch alle
nderungen, die Sie selbst in einer solchen Datei vornehmen,
berschrieben, und die Zahl der in ein Projekt eingebundenen, z.T. sehr kleinen Dateien kann betr
chtlich ansteigen.
Dateinamen bei Dialogen mit eigenen Dateien
r Dialoge, deren Quelltext mit der Option "Eigene Dateien erstellen" erzeugt wird, legt der Wizard folgende Dateien neu an: @
<ProzedurName>.INP : Die Prozedur, die den Dialog einf
<ProzedurName>.INR : Die Prozedur, die die Ressource erzeugt.
<DialogTyp>.INT : Die Deklaration des Objekttypen.
<DialogTyp>.INO : Die Implementation der Methoden eines neuen Typen.
Dadurch ist es einerseits m
glich, Dialoge und Prozeduren zu
berschreiben, ohne selbst in den "Sammeldateien" die alten Versionen l
schen zu m
ssen.
Andererseits kann die Anzahl der an einem Projekt beteiligten Dateien stark steigen, was zu Un
bersichtlichkeiten f
hren kann und zus
tzlichen Festplattenspeicher kostet.
nde (States)
Geben Sie hier die Zeichen ein, die die unterschiedlichen Zust
nde der Schalter markieren sollen. i
Der Wizard nimmt daraufhin alle notwendigen internen Einstellungen f
r das TMultiCheckboxes-Objekt vor: A
Das Feld States (PString) wird mit diesem String aktualisiert. =
Das Feld SelRange (Byte) wird auf Length(States^) gesetzt. y
Das Feld Flags (Word) wird mit derjenigen cfXXXX-Konstante belegt, die der Zahl der angeforderten Zust
nde entspricht. 7
Die Zahl
Schalter wird direkt von der Anzahl der Zust
nde beeinflusst. Sie k
nnen direkt kontrollieren, ob Sie innerhalb des erlaubten Bereiches sind, indem Sie den letzten Schalter bet
tigen. Falls Sie zuviele Schalter installiert haben, wird sich diese Aktion gleich auf mehrere Schaltfl
chen auswirken.
cfXXXX-Konstanten
Die cfXXXX-Konstanten stellen Bitmasken dar, die die Interpretation des Datenfeldes eines TMultiCheckBoxes-Objektes bestimmen. Sie werden im Feld Flags gespeichert.
Ihr Wert bestimmt, wieviele Bits zur Auswertung eines Schalters herangezogen werden, und legt damit sowohl die Anzahl von Schaltern als auch die Zahl der erlaubten Zust
nde fest.
cfOneBit : 32 Schalter, 2 Zust
cfTwoBits : 16 Schalter, 4 Zust
cfFourBits : 8 Schalter, 16 Zust
cfEightBits: 4 Schalter, 255 Zust
Projekt
Datei
bersicht...
Dieser Men
befehl ruft einen nichtmodalen Dialog auf, der Listen der in einem Projekt verwendeten Includedateinen enth
lt. V
Sie k
nnen hier einzelne Dateien l
schen, die Sie aus dem Projekt entfernen m
chten.
Projekt
Warnungen
Wenn Sie bei einem Dialogelement einen anderen (eigenen) Typ spezifizieren, als vom Wizard vorgegeben, so wird dieses Vorkommen in eine Warnliste aufgenommen, sobald Sie den Quelltext f
r diesen Dialog in einer Datei erzeugen.
Mit diesem Men
befehl k
nnen Sie sich eine Liste dieser Vorkommen anzeigen lassen und somit
berpr
fen, welche Units Sie noch in das Projekt aufnehmen m
ssen um eine fehlerfreie Compilierung durchf
hren zu lassen.
Objekte
MultiCheckBoxes
Mit diesem Befehl f
gen Sie ein neues Feld vom Typ TMultiCheckBoxes in den aktiven Dialog ein.
Wie bei allen anderen Schaltertypen auch k
nnen Sie die Zahl der Schalter, die sich zun
chst aus der H
he des Feldes bestimmt,
ndern, indem Sie beim Einf
gen (Dr
cken der rechten Maustaste) die STRG-Taste niederhalten.
Objekte
ListViewer
Mit diesem Befehl f
gen Sie ein neues Objekt vom Typ TListViewer in den aktiven Dialog ein. D
Im Gegensatzt zu TListBox unterst
tzt TListViewer zwei Rollbalken.
TListViewer
TListViewer ist ein Basisobjekt, da
lediglich ein paar grunds
tzliche Methoden f
r spezialisiertere Nachkommen zur Verf
gung stellt. C
Sie werden den Typ des einzuf
genden Objektes i.a.
ndern m
ssen. D
Im Gegensatzt zu TListBox unterst
tzt TListViewer zwei Rollbalken.
Objekte
Application
Dieser Befehl l
t Sie die TWApplication.HandleEvent-Methode modifizieren. p
Die M
glichkeiten, Befehls/Prozedurzuweisungen vorzunehmen und zu konfigurieren sind
hnlich wie bei Dialogen.
Optionen
Ziel SCREEN/DISK
Mit diesem Befehl k
nnen Sie bestimmen, ob Sie die Quelltexterzeugung "endg
ltig" in einer Datei vornehmen oder zun
chst probeweise auf den Bildschirm umleiten lassen wollen. ]
Die Einstellung SCREEN erlaubt Ihnen eine einfache und schnelle Kontrolle des Ergebnisses.
Optionen
Turbo Vision V 1.0/2.0
Dieser Schalter gibt vor, ob der Wizard Quelltext f
r die Turbo Vision Version 1.0 (Turbo Pascal 6.0) oder 2.0 (Turbo bzw. Borland Pascal 7.0) erzeugen soll. y
Turbo Vision 1.0 Quelltext kann von den 7er Compilerversionen benutzt werden, andersherum besteht keine Kompatibilit
TValidator und Nachfahren sowie TMultiCheckBoxes stehen nur f
r Version 2.0 zur Verf
gung.
Optionen
Laden...
Mit diesem Befehl k
nnen Sie eine Konfigurationsdatei (*.CFG) laden. x
Eine solche Datei enth
lt Informationen
ber das Projekt sowie die wichtigsten Einstellungen der Entwicklungsumgebung.
Optionen
Speichern...
Mit diesem Befehl k
nnen Sie die aktuellen Einstellungen in einer Konfigurationsdatei speichern (*.CFG). x
Eine solche Datei enth
lt Informationen
ber das Projekt sowie die wichtigsten Einstellungen der Entwicklungsumgebung.
Optionen
Hotkeys editieren...
Mit diesem Befehl k
nnen Sie den Men
befehlen Tastenk
rzel zuweisen und so den Wizard nach Ihren eigenen Vorlieben konfigurieren. :
Diese Funktion ist nur in der Vollversion implementiert.
Optionen
Hotkeys laden...
Mit diesem Befehl k
nnen Sie die Zuweisungen von Tastenk
rzeln an Men
befehle aus einer Datei laden. :
Diese Funktion ist nur in der Vollversion implementiert.
Optionen
Hotkeys speichern...
Mit diesem Befehl k
nnen Sie die Zuweisungen von Tastenk
rzeln an Men
befehle in einer Datei speichern. :
Diese Funktion ist nur in der Vollversion implementiert.
Bearbeiten
Clipboard zeigen
Mit diesem Befehl k
nnen Sie sich den Inhalt der Zwischenablage anzeigen lassen, um zuvor kopierte Textpassagen erneut ausw
hlen zu k
nnen.
Desktop
Fenster nebeneinander
Dieser Befehl ordnet alle Textfenster des Desktops nebeneinander an.
Desktop
berlappend
Dieser Befehl ordnet alle Textfenster f
cherartig hintereinander an.
Prozeduren
Diese Dateien enthalten die Implementationen von Prozeduren, die Dialoge in den Desktop einf
gen. v
Sie k
nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
schen, um ihre Aufnahme ins Projekt zu verhindern.
Objekte
Diese Dateien enthalten die Implementationen der zu
berschreibenden Objektmethoden Load, Store, Init und HandleEvent. v
Sie k
nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
schen, um ihre Aufnahme ins Projekt zu verhindern.
Deklarationen
Diese Dateien enthalten die Deklarationen von neuen Dialogtypen, global deklarierten Records und Prozeduren. v
Sie k
nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
schen, um ihre Aufnahme ins Projekt zu verhindern.
Ressourcen
Diese Dateien enthalten die Implementationen der Prozeduren, die im Ressourcenediteor Dialogobjekte erzeugen und zur sp
teren Verwendung im Programm in einer Ressourcendatei speichern. v
Sie k
nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
schen, um ihre Aufnahme ins Projekt zu verhindern.
Validator installieren...
Durch Bet
tigung dieses Knopfes gelangen Sie in das Auswahlmen
r Validatoren, die Sie direkt mit dieser Eingabezeile verbinden k
nnen.
Kommandokonstanten/Prozedurzuweisungen editieren
Dieser Knopf
ffnet einen Dialog, der alle zur Zeit f
r den aktuellen Dialog relevanten Eintr
ge in die HandleEvent-Methode auflistet.
Eintr
In dieser Liste sehen Sie alle aktuellen Kommando-Prozedur- Zuweisungen, wie sie in der HandleEvent-Methode aufgef
hrt werden. K
Sie k
nnen mit der ENTF-Taste einzelne Eintr
ge aus dieser Liste l
schen. W
Wenn Sie eine Zuweisung editieren m
chten m
ssen Sie zun
chst diesen Eintrag l
schen.
Neuen Befehl
bernehmen
Dieser Knopf
bernimmt die letzte Eingabe in den Event-Handler und schlie
t den Dialog.
) nur vorher
Wenn dieser Schalter gesetzt ist, wird das Kommando vor der geerbten HandleEvent-Methode abgefangen und der Eventrecord mit ClearEvent als bereits bearbeitet markiert.
) beide Methoden
Wenn diese Schalterstellung gew
hlt ist wir das Kommando vor der geerbten HamdleEvent-Methode bearbeitet, der Eventrecord aber nicht mit ClearEvent(Event) als bearbeitet markiert, so da
auch die geerbte HandleEvent- Methode das Kommando bearbeiten kann.
) nur nachher
Diese Schalterstellung bewirkt, da
das Kommando nach Aufruf der geerbten HandleEvent-Methode bearbeitet wird.
Minimalwert
Der Wert, den die Eingabe nicht unterschreiten darf.
Maximalwert
Der Wert, den die Eingabe nicht
berschreiten darf.
Strings
In dieser Eingabezeile k
nnen Sie die Strings eingeben, sie in dieser Zeile eingegeben werden d
rfen. Um einen String zu
bernehmen mu
er mit RETURN best
tigt werden.
Strings
Diese Liste enth
lt die erlaubten Strings. Sie k
nnen einen String mit RETURN zur Bearbeitung in die Eingabezeile laden und mit ENTF l
schen.
Eigene Units einbinden...
Der Men
befehl "Projekt
Units..." erzeugt einen Dialog, der Ihnen die Einbindung eigener Units in die Unit <ProjectName>RUN.PAS oder das Programm <ProjectName>.PAS, den eigentlichen Prototypen erlaubt.
Unit <ProjectName>RUN
Der String in dieser Eingabezeile wird in die "uses"-Anweisung im Interface der Unit <ProjectName>RUN.PAS aufgenommen. 1
Trennen Sie mehrere Units durch ein Komma, z.B. !
OwnProcs, MyProcs, MyFunctions
Programm <ProjectName>
Der String in dieser Eingabezeile wird in die "uses"-Anweisung im Interface des Programmes <ProjectName>.PAS aufgenommen. 1
Trennen Sie mehrere Units durch ein Komma, z.B. !
OwnProcs, MyProcs, MyFunctions
Procedures
In dieser Liste werden alle Prozedurnamen aufgef
hrt, die Sie bisher deklariert haben.
Prozeduren, die mit einem H
kchen markiert sind, wurden bereits als Prozeduren implementiert, die einen Dialog in den Desktop einf
gen. o
Prozeduren, die Sie aus einer eigenen
Unit importieren m
chten, werden mit "EXT" f
r "extern" gekennzeichnet. j
Sie k
nnen in dieser Liste eine Prozedur als externe Prozedur kennzeichnen, indem Sie den Bezeichner ausw
hlen und [ALT-Leertaste] bet
tigen. Wenn Sie nun einen Prototypen vorbereiten lassen, unterbleibt f
r derartig gekennzeichnete Prozeduren eine Dummy-Deklaration. Dies ist nat
rlich nur f
r bisher nicht implementierte Prozeduren ("ohne H
kchen") sinnvoll.
Wenn Sie in dieser Liste eine Prozedur anw
hlen und die ENTF-Taste bet
tigen, wird diese Prozedur und alle Bezugnamen auf diese Prozedur in der HandleEvent-Methode der Application gel
scht.
Handelt es sich um eine bereits implementierte Prozedur, so werden durch den n
chsten Aufruf von "Prototyp vorbereiten" auch die entsprechenden Includedateien aus dem Quelltext entfernt. T
-
Datei
DOS aufrufen
Dieser Befehl bringt Sie zur Eingabeaufforderung des Betriebssystems, dem gef