home *** CD-ROM | disk | FTP | other *** search
/ TopWare Tools / TOOLS.iso / tools / top1309 / twizard.hlp (.txt) < prev    next >
Encoding:
Borland Turbo Vision Help  |  1994-02-21  |  125.3 KB  |  2,595 lines

  1.  Inhalt
  2. Turbo
  3. Wizard?
  4.  Registrierung
  5. warum...
  6.  Schnelleinstieg
  7.  Projekte
  8.  Erstellung
  9. Programm-Prototypen
  10. Quelltextdateien
  11.  Dialog-Elemente
  12. Verwendung
  13. abgeleiteter
  14. Typen
  15.  Optionen
  16. Quelltexterzeugung
  17. Datenrecord
  18.  Statuszeilen
  19. balken
  20. Verwendung
  21. Ressourcen
  22.  Hilfekontext
  23. Hilfeeditor
  24. Hilfecompiler
  25. Prozedur
  26. ShowHelp
  27.  Kommandos
  28.  Prozeduren
  29.  Eigene
  30. Units
  31. einbinden...
  32. Editor
  33. Programm
  34. THELP.COM
  35.                                                                               -
  36.  Datei
  37. Dialog laden
  38. Mit diesem Befehl laden Sie einen Dialog, den Sie zuvor gespeichert haben. 
  39.  Datei
  40. Dialog speichern
  41. Mit diesem Befehl speichern Sie den aktiven Dialog in einer Datei.  
  42. Die Standardendung ist ".DLG". 
  43.  Datei
  44.  laden
  45. Mit diesem Befehl laden Sie eine Men
  46. konstruktion aus einer Datei. Y
  47. Das Speichern wird durch einen Knopf im Eigenschaften-Dialog des Men
  48. balkens ausgel
  49. st. O
  50. Wenn bereits ein Men
  51. balken editiert wird, ist dieser Befehl nicht verf
  52. gbar. 
  53.  Datei
  54. Statuszeile laden
  55. Dieser Befehl l
  56. dt eine Statuszeile aus einer Datei. Y
  57. Das Speichern wird durch einen Knopf im Eigenschaften-Dialog der Statuszeile ausgel
  58. st. Q
  59. Wenn bereits eine Statuszeile editiert wird, ist dieser Befehl nicht verf
  60. gbar. 
  61.  Datei
  62. Text laden
  63. Dieser Befehl l
  64. dt eine Textdatei in ein Editorfenster. {
  65. Der Dialog, in dem Sie die Datei ausw
  66. hlen k
  67. nnen, enth
  68. lt au
  69. erdem Schaltfl
  70. chen zum L
  71. schen und Umbenennen von Dateien. 
  72.  Datei
  73. Text speichern
  74. Dieser Befehl speichert die Datei im aktuellen Editorfenster. 
  75.  Datei
  76. Text speichern als...
  77. Dieser Befehl speichert die Datei im aktuellen Editorfenster unter einem anderen Namen. 
  78.  Datei
  79. Projekt 
  80. ffnen
  81. Dieser Befehl l
  82. t Sie ein Projekt 
  83. ffnen oder neu erstellen. R
  84. Der Wizard wechselt automatisch in das Verzeichnis, in dem dieses Projekt liegt. 
  85.  Projekte
  86. Der Wizard sammelt Kommandokonstanten, Hilfekonstanten, Verkn
  87. pfungen von Kommandos und Prozeduren, Typenbezeichner und die Eingaben im Hilfeeditor in EINER Datei, der Projektdatei. z
  88. Diese wird also ben
  89. tigt, um Zuweisungen von Konstantennamen richtig vornehmen zu k
  90. nnen - was bedeutet, da
  91.  z.B. ein in einem anderen Projekt erstellter Dialog oder Men
  92. 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 
  93. berarbeitet werden m
  94. ssen. 7
  95. Sie k
  96. nnen immer nur ein Projekt zugleich bearbeiten. 
  97.  Projekt
  98. Sichern
  99. Dieser Befehl sichert die 
  100. nderungen, die Sie im aktuellen Projekt vorgenommen haben. 
  101.  Projekt
  102. Sichern Als
  103. Mit diesem Befehl k
  104. nnen Sie das Projekt unter einem anderen Namen sichern. 
  105.  Projekt
  106. Schlie
  107. Dieser Befehl schlie
  108. t das aktuelle Projekt. 
  109.  Datei
  110. Verzeichnis wechseln
  111. Mit diesem Befehl wechseln Sie in ein anderes Verzeichnis. 
  112.  cmXXXX-Kommandokonstanten
  113. Bei der Gestaltung von Men
  114. s und Buttons wird von Ihnen die Eingabe des Namens einer Befehlskonstanten im Format "cmXXX" erwartet. 
  115. Die Namen sind (innerhalb der in Pascal g
  116. ltigen Konventionen) frei w
  117. hlbar, die Deklaration erfolgt durch den Wizard. (Siehe Quelltextdateien) I
  118. Die Konstantenbezeichner werden w
  119. hrend der Quelltexterzeugung benutzt. >
  120. Die Wertezuweisung wird vom Wizard sehr einfach vorgenommen: |
  121. Beginnend mit dem Wert, den die sog. cmXXX-Basis bei Programmbeginn hat, erh
  122. lt jede Konstante einen um eins h
  123. heren Wert. 
  124. Den Wert der Basis k
  125. nnen Sie jederzeit im Men
  126. punkt 
  127. Optionen
  128. Einstellungen...
  129. hen, um 
  130. berschneidungen zu vermeiden allerdings nicht erniedrigen. 
  131.  hcXXX-Hilfekontext-Konstanten
  132. Jeder Nachfahre von TView und alle Eintr
  133. ge im Men
  134. balken und in Untermen
  135. s verf
  136. ber ein Feld "HelpCtx" vom Typ Word, das den Hilfezusammenhang des Programms bestimmt, wenn das Objekt fokussiert ist. 
  137. Dieser Hilfezusammenhang ist ausschlaggebend f
  138. r die Anzeige einer f
  139. r diesen Kontext bereitgestellten Statuszeile und f
  140. r die Auswahl der richtigen Hilfetafel. 
  141. Die Konstanten, deren Namen Sie an den entsprechenden Stellen im Programm eingeben k
  142. nnen, werden vom Wizard selbst
  143. ndig deklariert. (Siehe Quelltextdateien Die Wertezuweisung erfolgt dabei in 
  144. bereinstimmung mit der Vorgehensweise des Hilfecompilers TVHC. @
  145. Wenn Sie im Men
  146. punkt 
  147. Optionen
  148. Einstellungen
  149.  die Option "Neue HelpCtx editieren" angekreuzt haben, so 
  150. ffnet sich f
  151. r jeden neuen Hilfekontext ein Eingabefenster, in dem Sie die
  152. Hinweistexte
  153. Statuszeile, den Text einer Hilfetafel sowie die optionalen Eintr
  154. ge im Inhaltsverzeichnis und Index vornehmen k
  155. nnen. |
  156. Sie k
  157. nnen ein solches Fenster auch 
  158. ffnen, indem Sie den entsprechenden Eintrag in der Konstantenliste zweimal anklicken. U
  159.                                                                               -
  160.  TVHC
  161. Der Hilfecompiler TVHC.EXE findet sich - im Quelltext - unter den Beispielen im Verzeichnis "TVDEMOS", Sie m
  162. ssen ihn also zun
  163. chst zu einer ausf
  164. hrbaren Datei compilieren. 
  165. Er erzeugt aus einer Textdatei eine Hilfedatei mit der Endung ".HLP" und eine Unit, in der Hilfkontext-Konstanten deklariert werden. 
  166. Die einzelnen Abschnitte, die jeweils auf eigenen Tafeln angezeigt werden sollen, werden im Text durch das Schl
  167. sselwort ".Topic" mit einem nachfolgenden Bezeichner eingeleitet. n
  168. Diese Bezeichner finden sich, um die Buchstaben 'hc' erweitert, als Konstantenbezeichner in der Unit wieder. 
  169. Wenn man ihnen nicht direkt bei ihrer Einf
  170. hrung im Hilfetext explizit einen bestimmten Wert zuweist (zB ".Topic Mytext=1000"), so erhalten sie automatisch einen Wert, der um eins 
  171. ber dem ihres Vorg
  172. ngers liegt. l
  173. Turbo Wizard erzeugt aus den Eingaben im Hilfeeditor einen ASCII-Text, der sich mit TVHC compilieren l
  174. Falls Sie keine weiteren 
  175. nderungen vorhehmen, entsprechen die Wertezuweisungen, die TVHC vornimmt denen des Wizard. 
  176. Wenn Sie au
  177. erhalb des Wizard Eintr
  178. ge hinzuf
  179. gen m
  180. chten, so sollten Sie diese immer am Ende des Textes vornehmen, um diese Konsistenz weitestgehend aufrechzuerhalten. 
  181. Beachten Sie, da
  182.  die Hilfedateien, die mit TVHC aus der Turbo Vision Version 1.0 erzeugt wurden, NICHT mit denen der Version 2.0 kompatibel sind. V
  183.                                                                               -
  184.  Konstantenliste
  185. Der Men
  186. befehl 
  187. Projekt
  188. Deklarationen...
  189. gt Listboxen in den Desktop ein, in denen die bisher eingegebenen hcXXX- und cmXXX-Konstanten sowie die Prozeduren und die Typenbezeichner angezeigt werden. 
  190. Sie k
  191. nnen mit der ENTF-Taste den fokussierten Eintrag aus der Liste l
  192. schen und damit z.B. verhindern, da
  193.  eine Prozedur in das Programm aufgenommen oder der Hilfetext zu einem bestimmten Hilfekontext geschrieben wird. 
  194. Wenn Sie in der Hilfekontext-Liste einen Eintrag mit der Maus zweimal anklicken, so 
  195. ffnet sich der Hilfeeditor f
  196. r diesen Kontext. u
  197. Ein H
  198. kchen hinter den Hilfenamen bedeutet, da
  199.  der Hilfetext schon einmal bearbeitet und mit "Ok" best
  200. tigt wurde. t
  201. Ein H
  202. kchen hinter einem Prozedurnamen bedeutet, da
  203.  eine Dialog-Prozedur dieses Namens bereits geschrieben wurde. 
  204.  Prozeduren
  205. Bei Buttons und Men
  206. befehlen werden Sie zur Eingabe eines Prozedurnamens aufgefordert, der der angegebenen Befehlskonstante zugeordnet wird. =
  207. Die Auswertung dieser Angabe erfolgt auf verschieden Arten: 
  208. Bei Men
  209. befehlen wird diese Prozedur in der Application.HandleEvent-Methode aufgerufen, die der Wizard durch den Befehl 
  210. Datei
  211. Prototyp
  212. erstellen
  213. berschreibt. 0
  214. Bei Buttons k
  215. 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
  216. en und das Befehlsereignis an die Funktion "Desktop^.ExecView(Dialog)" bzw. (in der Turbo Vision Version 2.0) an "Application^.ExecuteDialog(Dialog, @NewData)" 
  217. bergeben soll. Das Ergebnis dieser Funktionen wird dann in einer Case-Anweisung ausgewertet, in der die entsprechende Prozedur dann aufgerufen wird. 
  218. 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. 
  219. r die nicht implementierten Prozeduren wird eine Prozedur implementiert, die lediglich den Namen der Prozedur in einer MessageBox ausgibt, so da
  220.  der Prototyp trotzdem compiliert werden kann. 
  221. Der R
  222. ckgabewert der Funktion Messagebox wird dabei 
  223. brigens nicht "verbraucht" - Sie m
  224. ssen daher zur Compilierung den Compilerschalter $X+, "Extended Syntax" setzen. X
  225.                                                                               -
  226.  Projekt
  227. Prototyp vorbereiten
  228. Mit diesem Men
  229. befehl l
  230. sen Sie die Erzeugung bzw. Erg
  231. nzung aller Dateien aus, die Sie zur Compilierung eines lauff
  232. higen Prototypen ben
  233. tigen. 5
  234. Siehe auch Optionen
  235. Erzeugung
  236. eines
  237. Prototyps. V
  238.                                                                               -
  239.  Prototypen
  240. Der Wizard ist in der Lage, lauff
  241. hige Prototypen zu erstellen. p
  242. Der Quelltext wird auf mehrere Dateien verteilt, die Sie z.T getrennt voneinander aktualisieren lassen k
  243. nnen. D
  244. Um einen Prototypen zu erzeugen sind folgende Schritte notwendig: E
  245. Aktivierung des Befehls "Prototyp vorbereiten" im Men
  246.  "Projekt". 
  247. Wenn Sie Dialoge
  248. Ressourcen verwenden, m
  249. ssen Sie vor dem Start des Programmes zun
  250. chst das Programm "<Projektname>RES.PAS" compilieren und starten. Es erzeugt die Ressourcendatei <Projektname>.RES, in der der Prototyp die Objekte erwartet. 4
  251. Alle Objekttypen, die Sie in Ressourcen verwenden, m
  252. ssen mit RegisterType() registriert worden sein! F
  253. 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. 
  254. Sie k
  255. nnen zu diesem Zeitpunkt bereits den Hilfecompiler TVHC benutzen, um aus der Textdatei <Projektname>HLP.TXT die Hilfedatei zu erzeugen. X
  256. Nach diesen Vorbereitungen m
  257. te sich der Prototyp compilieren und ausf
  258. hren lassen... 
  259. Wenn Sie noch keinen Men
  260. balken oder Statuszeile entworfen haben, werden Sie allerdings wenig von Ihrem Prototypen haben, da die geerbten Objekte nat
  261. rlich keinen Befehl enthalten, den die 
  262. berschriebene HandleEvent- Methode der Application sinnvoll auswerten k
  263. nnte. S
  264.                                                                               -
  265.  Die Prozedur RegisterType()
  266. Zur Verwendung von Objekten in einem Stream - also z.B. auch in einer Ressourcendatei - ist es notwendig, den Objekttyp zuvor zu "registrieren". 4
  267. Man erstellt dazu einen Record vom Typ TStreamRec: 
  268.  R<Typ> : TStreamRec =
  269.           (ObjType: <Typen-ID>;
  270.            VMTLink: Ofs(TypeOf(<Typ>)^);
  271.            Load   : @<Typ>.Load;
  272.            Store  : @<Typ>.Store );
  273. Jeder Typ braucht UNBEDINGT seine individuelle Typen-ID. <
  274. Zu Programmbeginn ruft man dann Registertype(R<Type>) auf. 
  275. Dadurch wird es den Methoden TStream.Get und TStream.Put erm
  276. glicht, unterschiedliche Objekte in einem Stream zu identifizieren und die passenden Load- bzw. Store-Methoden aufzurufen. T
  277.                                                                               -
  278.  Datei
  279. Beenden
  280. Mit diesem Befehl beenden Sie das Programm. 
  281.  Objekte
  282. In diesem Men
  283.  finden Sie die Befehle zum Einf
  284. gen von Dialogen, Dialogelementen, Men
  285. s und Statuszeilen. 
  286.  Objekte
  287. Dialog
  288. Dieser Befehl f
  289. gt ein neues Objekt vom Typ TWDialog in den Desktop ein und macht ihn zum aktiven Dialog. 
  290.  TWDialog
  291. Dieser direkte Nachfahre von TDialog verf
  292. ber eine 
  293. berschriebene HandleEvent-Methode, die auf jedes Befehlsereignis durch den Aufruf der Prozedur EndModal(Event.Command) reagiert, sich also schlie
  294. t und den Wert von Event.Command an die Funktion Desktop^.ExecView 
  295. bergibt. 
  296. Praktisch bedeutet das, da
  297.  der Dialog selbst auf keinen seiner Kn
  298. pfe angemessen reagieren kann, sondern die Reaktion auf derartige Ereignisse in der aufrufenden Prozedur stattfinden mu
  299.  Objekte
  300. StaticText
  301. Dieser Befehl f
  302. gt ein Objekt vom Typ TStaticText in den aktiven Dialog ein. S
  303. Sie k
  304. nnen f
  305. r den Text mehrere Zeilen vorsehen, er wird automatisch umgebrochen. 
  306.  TStaticText
  307. TStatictext dient zur Ausgabe eines Strings, den Sie im Feld "Text" eingeben k
  308. nnen. 
  309. Es ist ein unbenanntes Objekt ohne Eintrag in den Datenrecord, das direkt mit einer "Dialog^.Insert(New(PStatictext, Init..." - Anweisung eingef
  310. gt wird. i
  311. Wenn Sie ein mehrzeiliges Feld festlegen wird der Text automatisch innerhalb dieses Feldes umgebrochen. U
  312. Die M
  313. glichkeit der Verwendung abgeleiteter Objekte ist im Wizard nicht vorgesehen. 
  314. Type : PStaticText. 
  315. HelpCtx : immer hcNoContext. 
  316.  Objekte
  317. Label
  318. Dieser Befehl f
  319. gt ein Objekt vom Typ TLabel in den aktiven Dialog ein. 
  320.  TLabel
  321. TLabel dient zur Ausgabe einer 
  322. berschrift, die Sie im Feld "Text" eingeben k
  323. nnen. 
  324. ber das Feld "Link-ID" k
  325. nnen Sie es mit einem anderen Objekt verkn
  326. pfen, das allerdings VOR dem Label eingef
  327. gt werden mu
  328. Dieses Objekt l
  329. t sich dann 
  330. ber das Label selektieren. Zu diesem Zweck kann man einen Buchstaben des Textes - 
  331. hnlich wie bei Men
  332. befehlen - in Tildezeichen (~..~) einfassen. Die Kombination dieser Taste mit der Alt-Taste selektiert dann das Label und das zugeh
  333. rige Objekt. u
  334. Das verkn
  335. pfte Objekt l
  336. t sich erst l
  337. schen, wenn die Verkn
  338. pfung wieder aufgehoben oder das Label gel
  339. scht wurde. 
  340. Es wird als unbenanntes Objekt ohne Eintrag in den Datenrecord direkt mit einer "Dialog^.Insert(New(PLabel, Init..." - Anweisung eingef
  341. Type : PLabel. 
  342. HelpCtx : immer hcNoContext. U
  343.                                                                               -
  344.  Objekte
  345. InputLine
  346. Dieser Befehl f
  347. gt ein Objekt vom Typ TInputLine in den aktiven Dialog ein. 
  348.  TInputLine
  349. Ein benanntes Objekt vom - variablen - Typ TInputLine.     
  350. Felder: 
  351. RecordEntry und MaxLen: Bei der Initialisierung wird MaxLen, die erlaubte Eingabel
  352. nge, auf die Gr
  353. e des Eingabefeldes + 10 gesetzt, dementsprechend lautet der Eintrag "String[<MaxLen+10>]". 
  354. Wenn Sie die Eingabel
  355. nge modifizieren wird der Recordeintrag automatisch angepa
  356. t, solange Sie keinen anderen Typ als PInputLine angegeben haben. 
  357. Bei abgeleiteten Objekten wird diese Anpassung NICHT durchgef
  358. hrt, hier m
  359. ssen Sie selbst f
  360. r eine 
  361. bereinstimmung mit den Get/SetData-Methoden sorgen. z
  362. Wenn Sie ein Validatorobjekt vom Type TRangeValidator mit der Eingabezeile verbinden (und damit bestimmen, da
  363.  nur numerische Werte eines bestimmten Bereichs eingegeben werden k
  364. nnen) wird der Recordeintrag automatisch auf "LongInt" gesetzt. Das Validatorobjekt 
  365. bernimmt dann den Datentransfer f
  366. r die Eingabezeile, was Ihnen die Umwandlung in einen numerischen Wert erspart. h
  367. Eine nachtr
  368. gliche 
  369. nderung der Gr
  370. e des Eingabefeldes hat KEINE Auswirkungen auf den Recordeintrag. X
  371. Type : PInputLine. 
  372. ndern sie diesen immer in 
  373. bereinstimmung mit dem Record-Eintrag. U
  374.                                                                               -
  375.  Objekte
  376. History
  377. Dieser Befehl f
  378. gt zun
  379. chst ein Objekt vom Typ TInputLine, dann ein Objekt vom Typ THistory, das mit der Eingabezeile verkn
  380. pft wird, in den aktiven Dialog ein. 
  381.  THistory
  382. Ein Objekt zur Anzeige einer Eingabeaufzeichnungsliste, mit dem ein Objekt vom Typ TInputLine (oder ein Nachfahre) verkn
  383. pft ist m
  384. THistory wird als unbenanntes Objekt direkt mit einer Anweisung "Dialog^.Insert(New(PHistory..." eingef
  385. Eingabeaufzeichnungslisten werden in einem Block auf dem Heap gespeichert, dessen Gr
  386. e - Standard ist 1k - in der Variablen HistorySize der Unit HistList gespeichert ist. 
  387. Dieser Bereich kann in verschiedene Listen aufgeteilt werden, die man 
  388. ber den Wert "HistoryID" referenziert, d.h. in der Praxis, da
  389.  THistoryobjekte mit der gleichen HistoryID auf die gleiche Sammlung von Eintr
  390. gen zugreifen. 
  391. Die Initialisierung erfolgt im Constructor Application.Init. Wenn Sie die Puffergr
  392. ndern wollen, so m
  393. ssen Sie dies vor dem Aufruf dieses Constructors tun. 
  394. Die M
  395. glichkeit des Gebrauchs abgeleiteter Objekte ist nicht vorgesehen, d.h. Sie haben (vor der Quelltextproduktion) keinen Einflu
  396.  auf die Felder Type und RecordEntry. 
  397. chlich ist das einzige Feld, auf das Sie im Wizard zugreifen k
  398. nnen (und m
  399. ssen) das Feld "HistoryID", das die Eingabeaufzeichnungsliste spezifiziert, mit der das Objekt verbunden wird. W
  400.                                                                               -
  401.  Objekte
  402. Dieser Befehl f
  403. gt ein Texteingabefeld vom Typ TMemo in den aktiven Dialog ein. i
  404. Zuvor erfolgt eine Abfrage 
  405. ber die Ausstattung mit Rollbalken, die vor dem Memo-Feld eingef
  406. gt werden. 
  407.  TMemo
  408. Ein benanntes Objekt vom Typ TMemo, in dem Sie wie in einem Editorfenster Text eingeben k
  409. nnen. Ein TMemo-Objekt kann mit dem Clipboard kommunizieren. ~
  410. Die L
  411. nge des Textpuffers wird bei der Initialisierung auf 512 Byte gesetzt und kann im Eigenschaftendialog angepa
  412. t werden. y
  413. Der Recordeintrag besteht aus zwei Feldern, die der 
  414. bersichtlichkeit halber in einem eigenen
  415. Record deklariert werden. 
  416.  TMemoRec
  417.  TMemoRec=Record
  418.    TextLen: Word;
  419.    TextBuff: Array[1..MaxLen] of Char;
  420.  End;
  421. Dabei ist TextLen die L
  422. nge des Textes, der sich im Puffer befindet, MaxLen ist die Gr
  423. e, die Sie f
  424. r den Puffer vorgesehen haben. "
  425. Siehe auch Records
  426. Heap. 
  427.  Rollbalken
  428. Rollbalken k
  429. nnen in der Entwicklungsoberfl
  430. che des Wizard nicht alleine modifiziert, nur verschoben werden. J
  431. Sie k
  432. nnen nur mit dem Objekt, dem Sie zugeordnet sind, gel
  433. scht werden. i
  434. Ihr GrowMode-Feld wird ebenfalls in 
  435. bereinstimmung mit den Einstellungen des Besitzerobjektes gesetzt. 
  436.  Das Feld GrowMode
  437. Jedes TView-Objekt verf
  438. ber ein Feld "GrowMode", das das Verhalten des Objektes bestimmt, wenn die Abmessungen der Gruppe, zu der das Objekt geh
  439. rt, ge
  440. ndert werden. 
  441.  gfGrowLoX     gfGrowHiX
  442.  gfGrowLoY     gfGrowHiY
  443.  Objekte
  444. Checkboxes
  445. Dieser Befehl f
  446. gt ein neues Schalterfeld vom Typ TCheckBoxes in den aktiven Dialog ein. }
  447. Die Anzahl der Schalter bestimmt sich vorgabegem
  448.  direkt aus der y-Abmessung des Feldes, ist allerdings maximal gleich 16. 
  449. Wenn Sie beim Einf
  450. gen die Strg-Taste niederhalten, w
  451. hrend Sie die rechte Maustaste bet
  452. tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe 
  453. ndern k
  454. nnen. Turbo Vision plaziert die Schalter dann n
  455. tigenfalls nebeneinander. 
  456.  TCheckBoxes
  457. Ein Objekt vom Typ TCheckBoxes. ]
  458. Die Anzahl der Schalter bestimmen Sie beim Einf
  459. gen direkt 
  460. ber die y-Abmessung des Feldes. 
  461. Wenn Sie beim Einf
  462. gen die Strg-Taste niederhalten, w
  463. hrend Sie die rechte Maustaste bet
  464. tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe 
  465. ndern k
  466. nnen. Turbo Vision plaziert die Schalter dann n
  467. tigenfalls nebeneinander. {
  468. Da jeder Schalter ein Bit im Feld Value anspricht, das vom Typ Word ist, sind allerdings maximal nur 16 Schalter m
  469. glich. 
  470. Im Eigenschaftendialog k
  471. nnen Sie die Beschriftungen der Schalter eingeben. Um eine 
  472. nderung wirksam werden zu lassen, m
  473. ssen Sie sie mit ENTER best
  474. tigen. Diese Eingabe l
  475. dt sofort die Beschriftung des n
  476. chsten Schalters in die Eingabezeile. 
  477. Record-Entry: Word. 
  478. HelpCtx: Frei w
  479. hlbar. 
  480. Den tats
  481. chlich vom Objekt ermittelten Hilfekontext f
  482. 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
  483. Der Wizard kommt dieser M
  484. glichkeit nach, indem er die entsprechende Anzahl an Hilfekontexten anlegt. X
  485.                                                                               -
  486.  TMultiCheckBoxes
  487. TMultiCheckboxes stellen Schalterfelder bereit, die mehr als zwei Zust
  488. nde einnehmen k
  489. nnen. Die Anzahl der unterschiedlichen Zust
  490. nde bestimmt dabei zugleich die Anzahl
  491. Schaltern in einem solchen Feld. 
  492. Wenn Sie nur zwei Zust
  493. nde ben
  494. tigen (' ' und 'X') erm
  495. glicht ein TMultiCheckBoxes-Objekt die Einrichtung von bis zu 32 Schaltern, also doppelt so viele wie TCheckBoxes. u
  496. Der Recordeintrag lautet abweichend von den anderen Schaltertypen "LongInt", ansonsten ist das Verhalten identisch. 
  497.  Eigenschaftendialog
  498. Als Eigenschaftendialog wird in dieser Hilfe der Dialog bezeichnet, der sich bei Objekten 
  499. ffnet, wenn man Sie mit der rechten Maustaste anklickt. P
  500. In ihm k
  501. nnen die grundlegenden Eigenschaften des Objektes modifiziert werden. 
  502.  Objekte
  503. RadioButtons
  504. Dieser Befehl f
  505. gt ein neues Feld von TRadioButtons in den aktiven Dialog ein. M
  506. Die Anzahl der Schalter entspricht der y-Abmessung des vorgesehenen Feldes. 
  507. Wenn Sie beim Einf
  508. gen die Strg-Taste niederhalten, w
  509. hrend Sie die rechte Maustaste bet
  510. tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe 
  511. ndern k
  512. nnen. Turbo Vision plaziert die Schalter dann n
  513. tigenfalls nebeneinander. &
  514. Es sind maximal 32 Schalter erlaubt. 
  515.  TRadioButtons
  516. Ein Objekt vom Typ TRadioButtons. ]
  517. Die Anzahl der Schalter bestimmen Sie beim Einf
  518. gen direkt 
  519. ber die y-Abmessung des Feldes. 
  520. Wenn Sie beim Einf
  521. gen die Strg-Taste niederhalten, w
  522. hrend Sie die rechte Maustaste bet
  523. tigen, so erscheint eine Eingabezeile, in der Sie diese Vorgabe 
  524. ndern k
  525. nnen. Turbo Vision plaziert die Schalter dann n
  526. tigenfalls nebeneinander. &
  527. Es sind maximal 32 Schalter erlaubt. 
  528. Im Eigenschaftendialog k
  529. nnen Sie die Beschriftungen der Schalter eingeben. Um eine 
  530. nderung wirksam werden zu lassen, m
  531. ssen Sie sie mit ENTER best
  532. tigen. Diese Eingabe l
  533. dt sofort die Beschriftung des n
  534. chsten Schalters in die Eingabezeile. 
  535. Record-Entry: Word. _
  536. HelpCtx: Frei w
  537. hlbar. Den tats
  538. 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
  539.                                                                               -
  540.  Objekte
  541. ListBox
  542. Dieser Befehl f
  543. gt ein neues Objekt vom Typ TListBox in den aktiven Dialog ein. v
  544. Zuvor erfolgt eine Abfrage, ob die Box mit einem vertikalen oder einem horizontalen Rollbalken versehen werden soll. 
  545.  TListBox
  546. Ein Objekt vom Typ TListBox. U
  547. Vor dem Einf
  548. gen k
  549. nnen Sie die Spaltenzahl und die Lage des Rollbalkens festlegen. 
  550. RecordEntry: Das Objekt TListBox liefert zwei Eintr
  551. 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
  552. Der Wizard definiert hierzu den Record-Typ TBoxRec: D
  553.  TBoxRec = Record
  554.    List   : PCollection;
  555.    Focus  : Word;
  556.  End;
  557. HelpCtx: Frei w
  558. hlbar. 
  559.  Objekte
  560. Button
  561. Dieser Befehl f
  562. gt ein neues Objekt vom Typ TButton in den aktiven Dialog ein. 
  563.  TButton
  564. Ein unbenanntes Objekt vom Typ TButton. Die Verwendung abgeleiteter Objekte ist im Wizard nicht vorgesehen. 
  565. Eigenschaften: 
  566. Im Feld "Befehl" geben Sie den Namen der Befehlskonstanten im Format cmXXX an, die bei Bet
  567. tigung des Buttons abgesetzt wird. 
  568. HelpCtx: Frei w
  569. hlbar. G
  570. Prozedur: Diese Prozedur wird dem Befehlsereignis zugeordnet (s.u.). 
  571. Flag: Die Schalter bezeichnen Optionen im Feld "Flag" des TButton-Objektes. Der Wert der Kombination dieser Schalter wird dem Constructor 
  572. bergeben: 
  573.  bfDefault        bfNormal
  574.  bfLeftJust       bfBroadcast
  575. "Abarbeitung durch..." L
  576. 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
  577. gt, die angegebene Prozedur aufrufen soll, wenn Result den Wert des Befehls hat. 
  578. Im zweiten Falle wird in die HandleEvent-Methode eines Dialog-Objektes eine Anweisung eingef
  579. gt, die mit "EndModal(<Befehlskonstante>)" daf
  580. r sorgt, da
  581.  ExecView genau diesen Wert erh
  582. lt. @
  583. Zeitpunkt der Bearbeitung relativ zum geerbten Event-Handler 1
  584. Sie k
  585. 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
  586. r vollst
  587. ndig bearbeitet erkl
  588. rt werden soll, oder ob (Voreinstellung) zun
  589. chst der geerbte Eventhandler aufgerufen werden soll. 
  590. Die ersten beiden M
  591. glichkeiten sind nat
  592. rlich nur bei Befehlen wie "cmOk" oder "cmCancel" sinnvoll, die der Dialog auch versteht. V
  593.                                                                               -
  594.  Objekte
  595. MenuBar
  596. Dieser Befehl f
  597. gt einen neuen, leeren Men
  598. balken vom Typ TMenuBar in den Desktop ein. 3
  599. Sie k
  600. nnen immer nur einen Men
  601. balken bearbeiten. V
  602. Um Eintr
  603. ge in den Balken vorzunehmen, klicken Sie ihn mit der rechten Maustaste an. {
  604. Um in die so entstandenen Untermen
  605. s Befehle oder Linien einzutragen, klicken Sie den jeweiligen Men
  606. punkt mit rechts an. 
  607.  TMenuBar
  608. Der Men
  609. balken des Programms. 
  610.  Objekte
  611. StatusLine
  612. Mit diesem Befehl f
  613. gen Sie eine neue Statuszeile in den Desktop ein. r
  614. Um Eintr
  615. ge vorzunehmen, den Kontextbereich zu 
  616. ndern etc. klicken Sie diese Zeile mit der rechten Maustaste an. 
  617.  TStatusLine
  618. Turbo Wizard unterst
  619. tzt die Erstellung kontextabh
  620. ngiger Statuszeilen. N
  621. Die Organisation der Statuszeilen bei Turbo Vision sieht folgenderma
  622. en aus: -
  623.  TStatusLine.
  624.   Felder:     Items
  625.          Defs
  626. Zeile1
  627.    Records vom Typ
  628.                    
  629.                   
  630. Zeile2<
  631.    TStatusDef in
  632.                    
  633.                   
  634. >Zeile3
  635.    einer verketteten
  636.                    
  637.                   
  638. Zeile4<
  639.    Liste.
  640.                    
  641.                   
  642. >Zeile5
  643.                    
  644.                   
  645. Zeile6<
  646.                    
  647. aktuelle Zeile:
  648. >Zeile7
  649.                                       
  650. Zeile8<
  651.                                       
  652. 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. 
  653. 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. 
  654. 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. 
  655. Um eine solche Konstruktion aufzubauen, f
  656. gen Sie mit dem Men
  657. befehl "Men
  658. Statuszeile" eine leere Statuszeile ein, die Sie durch Anklicken mit der rechten Maustaste modifizieren k
  659. nnen. y
  660. Die Reihenfolge, in der neue Statuszeilen vom Typ TStatusDef in die Zeigerordnung von DEFS eingef
  661. gt wird, ist wichtig: 
  662. Beginnen Sie immer mit der Zeile, die am allgemeinsten ist, z.B. einer Zeile f
  663. r die Kontexte "hcNoContext" bis "hcEveryContext", die als einzigen Eintrag den Befehl f
  664. r die Hilfe, cmHelp enth
  665. lt. i
  666. Verkleinern Sie dann die Zust
  667. ndigkeiten immer mehr, versuchen Sie dabei 
  668. berschneidungen zu vermeiden. 
  669. Zuletzt konstruieren Sie dann Statuszeilen, die nur f
  670. r jeweils einen Kontext g
  671. ltig sind, z.B. eine Zeile f
  672. r "hcHelpWindow", die die Befehle cmHelp (zeigt den Inhalt der Hilfe), cmLastTopic (zeigt den zuletzt angezeigten Kontext) und cmZoom absetzten kann. z
  673. Wenn Sie diese Reihenfolge nicht beachten kann es passieren, da
  674.  Sie bestimmte Statuszeilen niemals zu Gesicht bekommen. 7
  675. Beachten Sie auch die Anmerkungen zur Function Hint. X
  676.                                                                               -
  677.  Optionen
  678. In diesem Men
  679.  finden Sie Befehle zur Konfiguration des Wizard. 
  680.  Optionen
  681. Einstellungen
  682. Dieser Befehl 
  683. ffnet einen Dialog, in dem Sie die Basis der hcXXX- und cmXXX-Konstanten, der Typen-ID und gewisse Optionen f
  684. r den HilfeEditor einstellen k
  685. nnen. 
  686. Basis der hcXXX-Konstanten
  687.                                   
  688. Die Basis der hcXXX-Konstanten bestimmt den Wert des n
  689. chsten neuen Hilfekontextes. 
  690. Basis der cmXXX-Konstanten
  691.                                   
  692. Die Basis der cmXXX-Konstanten bestimmt den Wert der n
  693. chsten neuen Kommandokonstanten. 
  694. Basis der Typen-ID
  695.                                   
  696. Die Basis der Typen-ID bestimmt, welcher Wert im TStreamRec des n
  697. chsten Objekttypen f
  698. r die Objekt-ID benutzt wird. 
  699.  Desktop
  700. Dieses Men
  701.  enth
  702. lt Befehle zum Laden und Speichern des Desktops mit allen zur Zeit sichtbaren Objekten. Beachten Sie, da
  703.  ein Desktop nur innerhalb des Projektes, in dem er erstellt wurde geladen werden sollte. 
  704.  Desktop
  705. Laden
  706. Mit diesem Befehl laden Sie einen Desktop, den Sie zuvor mit Desktop
  707. Speichern abgespeichert haben. 
  708. Der Desktop sollte im Rahmen des gleichen Projektes gespeichert worden sein, da die Zuordnungen von Hilfe- und Kommandokonstanten ansonsten nicht definiert ist. 
  709.  Desktop
  710. Speichern
  711. Mit diesem Befehl speichern Sie s
  712. mtliche Elemente des Desktop in einer Datei. O
  713. Sie k
  714. nnen diese Datei dann sp
  715. ter mit dem Befehl Desktop
  716. Laden wieder laden. 
  717.  Die Funktion Hint
  718. Das Objekt TStatusLine verf
  719. ber die "pseudo-abstrakte" virtuelle Function Hint (engl. hint: Hinweis), die, wenn nicht 
  720. berschrieben, einen leeren String zur
  721. ckgibt. 
  722. Diese Funktion dient dazu, in der Statuszeile einen Hinweistext auszugeben, der eine Kurzinformation zum aktuellen Programmkontext gibt. 
  723. Der Wizard 
  724. berschreibt diese Function durch eine case-Anweisung, in der abh
  725. ngig vom Programmkontext eine Meldung in der Statuszeile ausgegeben wird. -
  726. Die Hinweise legen Sie im Hilfeeditor fest. 
  727.  Quelltextdateien
  728. Querverweis: Prozeduren
  729. Typen
  730. eigenen
  731. Dateien 
  732. Die Quelltextdateien, die der Wizard w
  733. hrend der Arbeit an einem Projekt erzeugt, werden, wenn bei der Erzeugung des Quelltextes nicht die Option "Eigene Dateien erzeugen" gew
  734. hlt ist, nach folgendem Schema benannt: J
  735. <Name> steht f
  736. r die ersten f
  737. nf Buchstaben des Namens der Projektdatei. 
  738. <ProjectName>.PAS
  739. Die eigentliche Programmdatei. Sie enth
  740. lt die Typendeklaration f
  741. r den TApplication-Nachfahren "TWApplication", dessen Methoden InitMenubar, InitStatusline und HandleEvent in Includedateien 
  742. berschrieben werden. 
  743. <Name>RUN.PAS
  744. Diese Unit enth
  745. lt die Deklaration und Implementation des Dialogtyps "TWDialog", der Statuszeile "TWStatusLine", deren Methode Hint durch den Wizard 
  746. berschrieben wird, die TStreamRec-Records dieser Objekte sowie die Deklarationen aller von Ihnen gestalteten Dialoge und Prozeduren. 
  747. <Name>RES.PAS
  748. Dies ist die Programmdatei des Ressourceneditors, der die Objekte, die aus einer Ressourcendatei ins Programm geladen werden sollen, erzeugt. 
  749. <Name>TYP.INC
  750. Diese Datei enth
  751. lt die Typendeklarationen von Objekten, deren Zeigertypen und TStreamRecs. 
  752. <Name>REC.INC
  753. Diese Datei enth
  754. lt die Deklarationen globaler Recordtypen. 
  755. <Name>PDC.INC
  756. Diese Datei enth
  757. lt die Vorausdeklarationen von Prozeduren, die einen mit dem Wizard gestalteten Dialog einf
  758. gen. 
  759. <Name>DDC.INC
  760. Diese Datei enth
  761. lt die Deklarationen von Prozeduren die durch Men
  762. - oder Buttonbefehle aufgerufen werden, aber noch nicht implementiert wurden. 
  763. <Name>PRC.INC
  764. Diese Datei enth
  765. lt den Code der Prozeduren, die Dialoge einf
  766. gen, sowie die Constructor-, HandleEvent-, Load- und Store-Methoden von Dialogobjekten. 
  767. <Name>DMY.INC
  768. Diese Datei enth
  769. lt vorl
  770. ufige Implementationen von Prozeduren, die einem Befehlerereignis zugeordnet, aber nicht als Dialog implementiert wurden. Diese Prozeduren geben in einer MessageBox ihren eigenen Namen aus. 
  771. <Name>CMX.INC
  772. Diese Datei enth
  773. lt die Deklarationen der Kommandokonstanten. 
  774. <Name>HCX.INC
  775. Diese Datei enth
  776. lt die Deklarationen der Hilfekontextkonstanten. Wenn Sie die Onlinehilfe vollst
  777. ndig mit dem Wizard erstellt haben, so ist diese Datei konsistent mit der Unit, die der Hilfecompiler TVHC erzeugt. @
  778. Wenn Sie  den Hilfetext au
  779. erhalb des Wizard um neue Topics erweitert haben m
  780. ssen Sie die Include-Anweisung f
  781. r diese Datei l
  782. schen und statt dessen die von TVHC erzeugte Unit "uses" einbinden. Sie sollten neue Topics allerdings IMMER am Ende der Hilfedatei anf
  783. gen, um eine gr
  784. gliche 
  785. bereinstimmung zu erhalten. 
  786. <Name>HNT.INC
  787. Die Funktion TWStatusLine.Hint. 
  788. <Name>EVH.INC
  789. Die Methode TWApplication.HandleEvent. 
  790. <Name>MNU.INC
  791. Die Methode TWApplication.InitMenuBar. 
  792. <Name>STL.INC
  793. Die Methode TWApplication.InitStatusLine. 
  794. <Name>RES.INC
  795. Die Prozeduren zur Erzeugung von Objekten in Ressourcen. 
  796. <Name>RRN.INC
  797. Der Aufruf dieser Prozeduren in der Prozedur Run. 
  798. <Name>REG.INC
  799. Diese Datei enth
  800. lt die Implementation der Prozedur, die 
  801. ber den Aufruf der Prozedur RegisterType jeden w
  802. hrend eines Projektes deklarierten Dialogobjekt-Typen registriert. O
  803. Diese Methode wird sowohl im Prototypen als auch im Ressourceneditor benutzt. 
  804. <Name>HLP.TXT
  805. Die Textdatei, in der die Hilfetexte niedergeschrieben werden. Sie mu
  806.  mit dem Turbo Vision Hilfecompiler TVHC zu einer verwendbaren Hilfedatei compiliert werden, um im Programm benutzt werden zu k
  807. nnen. V
  808.                                                                               -
  809.  Hilfeeditor
  810. Turbo Wizard bietet Ihnen mit seinem Hilfeeditor eine komfortable M
  811. glichkeit, eine komplette Onlinehilfe zu erstellen. 2
  812. In diesem Hilfeeditor haben Sie die M
  813. glichkeit: 4
  814. Einen Eintrag ins Inhaltsverzeichnis vorzunehmen. 
  815. Einen oder mehrere Eintr
  816. ge in den Index vorzunehmen. Verschiedene Suchbegriffe m
  817. ssen Sie durch ein '/' voneinander trennen. 
  818. Den Text der Hilfetafel einzugeben. Der Wizard erzeugt je nach Programmkontext eine 
  819. berschrift, die andeutet, ob es sich um einen Men
  820. befehl, einen Button, eine Eingabezeile etc. handelt. e
  821. Den Hinweistext spezifizieren, der in der Statuszeile zu diesem Hilfkontext angezeigt werden soll. 
  822. Neue Hilfkontexte deklarieren. Dazu gibt es eine Taste "Querverweis", die Sie zun
  823. chst zur Eingabe eines Kontextnamens auffordert und dann einen neuen Hilfeeditor 
  824. ffnet. Wenn der Kontext bereits vorhanden war, so erscheint der alte Eintrag. 
  825. Der Hilfeeditor ist modal, und wie alle modalen Dialoge kann er sehr l
  826. stig werden. Sie k
  827. nnen daher im Men
  828. Optionen
  829. Einstellungen
  830.  angeben, ob Sie jeden neuen Hilfekontext sofort oder sp
  831. ter mit 
  832. Optionen
  833. Hilfe Bearbeiten
  834.  editieren m
  835. chten. 
  836. Sie k
  837. nnen weiterhin vorgeben, ob eine solche Bearbeitung alle Eintr
  838. ge oder nur die noch nicht mit "Ok" best
  839. tigten umfassen soll. ^
  840. Ob ein Eintrag bereits best
  841. tigt wurde erkennen Sie in der Konstantenliste an einem H
  842. kchen. W
  843.                                                                               -
  844.  Das Hilfe-Inhaltsverzeichnis
  845. Der erste Punkt in der Hilfedatei, die der Wizard erzeugt, ist das Inhaltsverzeichnis - eine alphabetisch geordnete Liste der Eintr
  846. ge, die Sie im Hilfeeditor vorgenommen haben. :
  847. Die Eintr
  848. ge sind durch jeweils eine Leerzeile getrennt. f
  849. Die alphabetische Ordnung ist nat
  850. rlich nicht sinnvoll, zumindest aber sinnvoller als keine Ordnung. 
  851.  Der Hilfe-Index
  852. Der zweite Punkt in der Hilfedatei, die der Wizard erzeugt, ist der Index - eine alphabetisch geordnete Liste der Eintr
  853. ge, die Sie im Hilfeeditor vorgenommen haben. 
  854. Eintrag im Inhalt
  855.                            
  856. 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. 
  857. In dieser Eingabezeile k
  858. nnen Sie bestimmen, ob und wie diese Hilfetafel als Hypertext-Link in dieses Inhaltsverzeichnis aufgenommen werden soll. 
  859. Eintrag im Index
  860.                           
  861. Alle Eintr
  862. ge in dieser Zeile werden vom Wizard als Hypertext-Link in einer alphabetisch sortierten Liste in der Hilfetafel "Index" aufgef
  863. hrt. 
  864. Sie k
  865. nnen in dieser Zeile mehrere Eintr
  866. ge in diesen Index vornehmen, indem Sie sie mit '/' trennen, wie z.B. in "Wenig sinnvoll/Unsinn/Narretei". \
  867. bertreiben Sie es aber nicht - TVHC kommt bei zu komplexen Dokumenten im Schwierigkeiten. 
  868. Hinweis in der Statuszeile
  869.                                           
  870. Hier k
  871. nnen Sie eine kurzen Hinweistext eingeben, der durch die Funktion TWStatusLine.Hint(AHelpCtx) zu diesem Programmkontext in der Statuszeile ausgegeben werden soll. 
  872.  Der Hilfetext
  873. In diesem Feld k
  874. nnen Sie einen Text eingeben, der zum aktuellen Hilfekontext in einer Hilfetafel angezeigt werden soll. 
  875. Diese Texte werden bei der Vorbereitung eines Prototyps in die Datei "<ProjectName>HLP.TXT" 
  876. bernommen, die sich mit dem Hilfecompiler TVHC.EXE zu einer Hilfedatei compilieren l
  877. Um die L
  878. nge der Textzeilen brauchen Sie sich dabei nicht zu k
  879. mmern: alle Zeilen, die nicht mit einem Leerzeichen beginnen oder durch eine leere Zeile getrennt sind, werden als zusammenh
  880. ngender Text behandelt und je nach Gr
  881. e des Hilfefensters automatisch richtig umgebrochen. g
  882. Zur Erinnerung hier die Tastaturcodes einiger Sonderzeichen, die f
  883. berschriften gebr
  884. uchlich sind: c
  885.   : ALT-218   
  886.  : ALT-196   
  887.  : ALT-191
  888.   : ALT-179
  889.   : ALT-192                 
  890.  : ALT-217
  891.   : ALT-201   
  892.  : ALT-205   
  893.  : ALT-187
  894.   : ALT-186
  895.   : ALT-200                 
  896.  : ALT-188
  897.   : ALT-220                 
  898.  : ALT-175
  899.  : ALT-223                 
  900.  : Alt-174
  901. : Alt-221                 
  902.  : Alt222
  903.                                                                               -
  904. hcnummer1 
  905.               
  906. hcNummer2                
  907. hcNochEinEintrag 
  908.        
  909. hcWieInteressant         
  910. hcHilfe                  
  911. Wenn Sie einen dieser Konstantenbezeichner mit der Maus zweimal anklicken 
  912. ffnet sich der Hilfeeditor f
  913. r diesen Kontext. E
  914. Ein H
  915. kchen deuten an, da
  916.  ein Eintrag schon einmal editiert wurde. 
  917.    Abbruch    
  918. Mit diesem Knopf brechen sie den Befehl 
  919. Optionen
  920. Hilfe bearbeiten
  921.  ab. ?
  922. nderungen in der letzten Karte werden nicht gespeichert. 
  923.    Querverweis   
  924. Mit diesem Knopf k
  925. nnen Sie einen neuen Querverweis bzw. einen neuen Hilfekontext hinzuf
  926. gen. Falls der Konstantenname schon existiert, wird der bereits vorgesehene Text angezeigt. 
  927. Im Eingabefeld selbst kennzeichnen Sie einen Querverweis durch das Einfassen des Kontextnamen (nat
  928. rlich ohne das 'hc', das ja erst von TVHC hinzugef
  929. gt wird) oder der Kombination <anzuzeigender Text>:<Kontextname> in geschweifte Klammern. 
  930.  Projekt
  931. Deklarationen...
  932. Dieser Befehl f
  933. gt Listen der Kommando- und Hilfekonstanten und der bisher deklarierten Prozeduren ein. 
  934. Ein H
  935. kchen hinter den Bezeichnern deutet bei Prozeduren an, da
  936.  eine gleichnamige Prozedur bereits im Quelltext vorliegt, bei den Hilfekonstanten, da
  937.  die Eintragungen im Hilfeeditor f
  938. r diesen Hilfekontext mit OK best
  939. tigt wurden. 
  940. Wenn Sie in der Liste der Hilfekonstanten eine Konstante mit einem Doppelklick ausw
  941. hlen, k
  942. nnen Sie die Eintragungen des Hilfeeditors editieren. 
  943.  Optionen
  944. Hilfe bearbeiten
  945. Dieser Befehl l
  946. t Sie die bisherigen Eintragungen des Hilfeeditors sichten und bearbeiten. 
  947. Wenn in den Einstellungen die Option 
  948. Alle HelpCtx bearbeiten
  949. hlt ist, werden hintereinander alle Eintragungen gezeigt, ansonsten nur die, die noch nicht mit "Ok" best
  950. tigt wurden. 
  951.  Bearbeiten
  952. Dieses Men
  953.  enth
  954. lt Befehle f
  955. r die Arbeit mit Clipboard und Editor. 
  956.  Bearbeiten
  957. Dieser Befehl macht die letzte 
  958. nderung im Editor r
  959. ngig. ^
  960. Der Cursor mu
  961.  sich noch in der ge
  962. nderten Zeile befinden und darf nicht bewegt worden sein. 
  963.  Bearbeiten
  964. Ausschneiden
  965. Dieser Befehl l
  966. scht den markierten Text im Editor und 
  967. bertr
  968. gt ihn ins Clipboard, wo er f
  969. r den n
  970. chsten Einf
  971. gen-Befehl zur Verf
  972. gung steht. 
  973.  Bearbeiten
  974. Kopieren
  975. Dieser Befehl kopiert den markierten Text ins Clipboard, wo er f
  976. r den n
  977. chsten Einf
  978. gen-Befehl zur Verf
  979. gung steht. 
  980.  Bearbeiten
  981. Dieser Befehl f
  982. gt den zuletzt ins Clipboard 
  983. bertragenen Text an der aktuellen Cursorposition ein. 
  984.  Suchen
  985. Dieses Men
  986.  enth
  987. lt Befehle zum Suchen und Ersetzen von Text. 
  988.  Suchen
  989. Finde
  990. Dieser Befehl l
  991. t Sie Text eingeben und im Editor suchen. 
  992.  Suchen
  993. Ersetzen
  994. Mit diesem Befehl k
  995. nnen Sie im Editor Text suchen und ersetzen. 
  996.  Suchen
  997. Erneut Suchen
  998. Dieser Befehl wiederholt den letzten Suchen- oder Ersetzen-Befehl. 
  999.  Hilfe
  1000. Dieses Men
  1001.  enth
  1002. lt Befehle zum Anzeigen des Hilfesystems, des freien Speichers und des Copyrights. 
  1003.  Hilfe
  1004. Inhalt
  1005. Zeigt das Inhaltsverzeichnis des Hilfesystems an. 
  1006.  Hilfe
  1007. Index
  1008. Zeigt eine Stichw
  1009. rterliste an. 
  1010.  Hilfe
  1011. Schnelleinstieg
  1012. Gibt eine Einf
  1013. hrung in die Arbeit mit dem Wizard. 
  1014.  Hilfe
  1015. Freier Speicher
  1016. Dieser Befehl zeigt den aktuell freien Heap und den gr
  1017. ten zusammenh
  1018. ngenden Block auf dem Heap an. g
  1019. Er stellt keine Aussage 
  1020. ber den Speicherverbrauch Ihres Programmes, sondern 
  1021. ber den des Wizard dar. 
  1022. Dieser Men
  1023. punkt ist ein Abfallprodukt der Programmentwicklung und diente der Suche nach "Speicherleichen". Wenn mal etwas 
  1024. berhaupt nicht klappt k
  1025. nnen Sie hier eine m
  1026. gliche Ursache finden. 
  1027.  Dialog-Elemente
  1028. Alle Objekte, die Sie im Wizard verwenden k
  1029. 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. ;
  1030. Beachten Sie bitte die Anmerkungen zum Programm THELP.COM "
  1031. Allgemein gilt f
  1032. r alle Objekte: 
  1033. Sie k
  1034. nnen ein Objekt mit der Maus innerhalb seines Dialoges verschieben, wenn Sie beim Anklicken des Objektes mit der linken Maustaste die Ctrl-Taste gedr
  1035. ckt lassen. 
  1036. Alle Objekte 
  1037. ffnen ein Eingabefenster, wenn man sie mit der rechten Maustaste anklickt. In diesem Fenster lassen sich alle Parameter eingeben, die f
  1038. r die Quelltexterzeugung ben
  1039. tigt werden. 
  1040.  TWDialog
  1041.  TStaticText
  1042.  TLabel
  1043.  TInputLine
  1044.  THistory
  1045.  TCheckBoxes
  1046.  TMultiCheckBoxes
  1047.  TRadioButtons
  1048.  TListBox
  1049.  TButton
  1050.  TMemo
  1051.  TValidator
  1052.                                                                               -
  1053.  Eigene Objekttypen
  1054. Die meisten Standardobjekte in Turbo Wizard lassen sich so modifizieren, da
  1055.  sie Quellcode f
  1056. r unterschiedliche Objekttypen produzieren k
  1057. nnen, die dann allerdings das 
  1058. ere Erscheinungsbild ihrer Vorfahren 
  1059. bernehmen. 
  1060. Zu diesem Zweck 
  1061. ndern sie einfach im jeweiligen Eigenschaftendialog die Felder "Typ" auf einen Zeigertyp (!) Ihrer Wahl und passen ggf. den Eintrag im Datenrecord an. Q
  1062. Turbo Wizard wird allerdings weiterhin die gleiche Constructor-Syntax benutzen. 
  1063. Sie k
  1064. nnen sich 
  1065. ber den Men
  1066. befehl "Projekt
  1067. Warnungen" eine Liste der Dateien anzeigen lassen, in denen derart ge
  1068. nderte Type verwendet werden, um z.B. den Constructor abzu
  1069. ndern oder sicherzustellen, da
  1070.  alle n
  1071. tigen Units eingebunden und die Objekttypen registriert werden. U
  1072.                                                                               -
  1073.  Datenrecord
  1074. Der Datenaustausch mit den Elementen eines Dialoges sollte niemals direkt, sondern immer unter Benutzung der Methden GetData bzw. SetData 
  1075. ber einen Record erfolgen, dessen Eintr
  1076. ge allerdings in Reihenfolge und Gr
  1077. e genau auf die Elemente des Dialoges abgestimmt sein m
  1078. ssen. O
  1079. Durch diese Pufferung entledigt man sich einer ganzen Reihe m
  1080. glicher Fehler. 
  1081. Bedenken Sie nur einmal, da
  1082.  der Datenbereich einer Eingabezeile nur 
  1083. ber einen Zeiger referenziert wird. Die Get/SetDat-Methoden kennen die erlaubte Stringl
  1084. nge - eine direkte Zuweisung eines Strings dagegen, der nur ein Zeichen zu lang ist, kann fatale Folgen haben. 
  1085. Leider haben solche Zeigerfehler zudem noch die Eigenschaft, hartn
  1086. ckig verborgen zu bleiben bzw. erst beim Anwender aufzutreten. 
  1087. Turbo Wizard erstellt diesen Datenrecord selbst
  1088. ndig, in Abh
  1089. ngigkeit von der "Eigenschaft" RecordEntry eines jeden Dialogelementes. J
  1090. Bei dieser Eigenschaft handelt es sich schlicht um den Ausdruck, der im Quellcode f
  1091. r ein Dialogelement in diesem Record vorgesehen ist. Dieser wird z.B. f
  1092. r ein RadioButton-Feld immer "Word" lauten, er ist aber bei TInputLine-Objekten je nach erlaubter Eingabel
  1093. nge variabel. (Hier lautet er n
  1094. mlich "String[<erlaubte L
  1095. nge>]") K
  1096. Mehr 
  1097. ber die Standardvorgaben erfahren Sie unter den einzelnen Objekten. 
  1098. Bei abgeleiteten Objekten, deren Get/SetData-Methoden von denen ihrer Vorfahren abweichen, k
  1099. nnen Sie im Eigenschaftendialog neben dem Typ auch das Feld "RecordEntry" 
  1100. ndern. j
  1101. Die Eintr
  1102. ge im Datenrecord werden den gleichen Namen vorgenommen, die die Dialogelemente selbst tragen. [
  1103. Wenn Sie das Feld RecordEntry im Eigenschaftendialog l
  1104. schen, so unterbleibt ein Eintrag. 
  1105. Stellen Sie aber bitte sicher, da
  1106.  die Get/SetData- und die DataSize- Methoden zu den modifizierten Eintr
  1107. gen passen (bzw. da
  1108.  Sie den Reset-Knopf Ihres Rechners bequem erreichen k
  1109. nnen). e
  1110. Turbo Wizard gibt Ihnen die M
  1111. glichkeit, den Recordtyp wahlweise lokal oder global zu deklarieren. *
  1112. Bei lokaler Deklaration findet sich eine -
  1113. TYPE <Name der Prozedur>Rec=Record ... End; y
  1114. Anweisung direkt in der Prozedur, die den Dialog aufruft. Die Instanz, die in der Prozedur benutzt wird, hei
  1115. t NewData. ]
  1116. Bei globaler Deklaration wird der Recordtyp in der Datei "<ProjectName>TYP.INC" deklariert. &
  1117. Die Instanz hei
  1118. t auch hier NewData. 
  1119. Es besteht au
  1120. erdem die M
  1121. glichkeit, NewData nicht als lokale Variable auf dem Stack, sondern dynamisch in einer lokalen Zeigervariablen auf dem Heap einzurichten. T
  1122.                                                                               -
  1123.  THelp
  1124. 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
  1125. t. "Online" bedeutet, da
  1126.  Sie tats
  1127. 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
  1128.       "thelp /F<vollst
  1129. ndiger Pfad zur Datei turbo.hlp> /K0044"
  1130.  bzw. "lh thelp ... "
  1131. laden, so steht Ihnen dieser Service bei Druck der F10-Taste zur Verf
  1132. gung. 
  1133. Die beiden Programme scheinen gut miteinander auszukommen, trotzdem gelten nat
  1134. rlich alle Bedenken, die f
  1135. r den Einsatz residenter Programme bestehen. 
  1136. Insbesondere sollten sie alle anderen Programme, die im Hintergrund auf einen speziellen Tastendruck lauern, zuvor aus dem Speicher entfernen. U
  1137.                                                                               -
  1138.  Der Editor
  1139. Das Editor-Fenster stellt einen Editor mit Clipboard zur Verf
  1140. gung, in dem Sie den Quelltext direkt 
  1141. berpr
  1142. fen und modifizieren k
  1143. nnen. H
  1144. Die Funktionstasten entsprechen weitgehend denen der Turbo Pascal IDE. f
  1145. Mit F2 speichern sie die Datei im momentan aktiven Fenster, mit F3 k
  1146. nnen Sie eine neue Datei laden. 
  1147.  Schnelleinstieg
  1148. Wenn Sie den Wizard das erste Mal starten haben Sie im Datei-Men
  1149. chst nur die M
  1150. glichkeit, das Verzeichnis zu wechseln oder ein neues bzw. bereits bestehendes Projekt zu 
  1151. ffnen. 
  1152. Ein Projekt ist eine Datei, in der alle Informationen gesammelt werden, die der Wizard ben
  1153. tigt, um Eingaben bei der Quelltexterzeugung richtig interpretieren zu k
  1154. nnen oder einen Prototypen zu erstellen. Der tats
  1155. chliche Quelltext wird hier allerdings nicht gespeichert. 
  1156. Wenn Sie nun ein Projekt 
  1157. ffnen, so wird der Men
  1158. balken um ein paar neue Men
  1159. s erweitert, die Ihnen die eigentliche Arbeit erlauben. r
  1160. Im Men
  1161.  "Projekt" k
  1162. nnen Sie das Projekt wieder schlie
  1163. en, abspeichern oder unter einem anderen Namen speichern. q
  1164. Im Men
  1165.  Objekte finden Sie alle Befehle zum Einf
  1166. gen von Dialogen, Feldern in Dialogen, Men
  1167. s und Statuszeilen. d
  1168. Alle eingef
  1169. gten Objekte lassen sich bearbeiten, indem man sie mit der rechten Maustaste anklickt. 
  1170. Objekte in Dialogen lassen sich mit der Maus verschieben, indem man sie bei gedr
  1171. ckter STRG-Taste mit der Maus anklickt und 
  1172. ber den Bildschirm zieht. w
  1173. Dialoge, Men
  1174. s und Statuszeilen enthalten alle einen Knopf, mit dem sich die Erzeugung des Quelltextes ausl
  1175. sen l
  1176. Wenn Sie ein Projekt 
  1177. ffnen, wird der Testmodus eingeschaltet, in dem der Wizard den Quelltext nicht in Dateien speichert, sondern in Fenstern auf dem Bildschirm ausgibt. Mit "Optionen
  1178. Ziel" k
  1179. nnen Sie den Modus umstellen. "SCREEN" bedeutet dabei Testmodus, "DISK" realen Arbeitsmodus. 8
  1180. Siehe dazu Die
  1181. Quelltextdateien und Quelltextoptionen. |
  1182. Bei Men
  1183. s und Buttons werden Sie zur Angabe einer cmXXX-Konstanten und einer damit zu verkn
  1184. pfenden Prozedur aufgefordert. U
  1185. Diese Konstanten werden bei der Vorbereitung eines Prototyps vom Wizard deklariert. 
  1186. erdem k
  1187. nnen Sie f
  1188. r die meisten Objekte einen Hilfekontext spezifizieren und angepa
  1189. t an den Programmkontext Hilfen auf Tafeln und in der Statuszeile geben. n
  1190. Die Schalter im Men
  1191. Optionen
  1192. Einstellungen
  1193.  bestimmen Sie, wie und wann Sie diese Hilfe editieren m
  1194. chten. 
  1195. Um einen lauff
  1196. higen
  1197. Prototypen zu erhalten, aktivieren Sie den Men
  1198. befehl 
  1199. Datei
  1200. Prototyp vorbereiten
  1201. , der, wenn Sie alle f
  1202. r einen Prototypen minimal n
  1203. tigen Arbeiten erf
  1204. llt haben, alle Dateien bereitstellt, um den Prototypen compilieren zu k
  1205. nnen. W
  1206.                                                                               -
  1207.  Quelltextoptionen
  1208. Bei der Erzeugung des Quelltextes f
  1209. r einen Dialog haben Sie eine Reihe von M
  1210. glichkeiten zur Anpassung, die Sie in einem Dialog einstellen k
  1211. nnen, der vor der tats
  1212. chlichen Quelltexterzeugung eingeblendet wird. n
  1213. Einige dieser Einstellungen k
  1214. nnen Sie kombinieren, wobei allerdings nicht alle Kombinationen sinnvoll sind. 
  1215. Generelle Optionen: 
  1216.  Deklaration eines neuen Dialogobjekt-Typen 
  1217. Sie erhalten IMMER: "
  1218. -Die Deklaration des Zeigertyps. 6
  1219. -Die Deklaration eines TStreamRec f
  1220. r dieses Objekt. 
  1221. -Die Deklaration des Objekttyps, mit Feldern f
  1222. r alle Elemente des Dialoges, die Sie durch ein dem Namen vorangestelltes '!' daf
  1223. r vorgesehen haben. Q
  1224. -Die Deklaration und Implementation der Methode HandleEvent. Siehe dazu TButton B
  1225. -die Deklaration und Implementation der Methoden Store und Load. 
  1226. Die Implementation ruft zun
  1227. chst TDialog.Store bzw. TDialog.Load auf und speichert dann die eben genannten Felder durch den Aufruf der Methoden PutSubViewPtr und GetSubViewPtr, so da
  1228.  bei Objekten aus einem Stream tats
  1229. chlich auf diese Elemente zugegriffen werden kann. r
  1230. Sie k
  1231. nnen au
  1232. erdem bestimmen, ob der Dialog im Constructor oder in einer Prozedur zusammengesetzt werden soll. f
  1233. Im ersten Fall erstellt der Wizard einen Constructor Init, der alle Elemente in den Dialog einf
  1234. 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
  1235. e des Dialoges werden durch die Konstruktion im Wizard mehr oder weniger endg
  1236. ltig vorgegeben. 
  1237. Im zweiten Fall wird der Constructor von TDialog nicht 
  1238. berschrieben, und die Elemente des Dialoges werden in einer "normalen" Prozedur NACH dem Aufruf dieses Constructors eingef
  1239. gt. Dies ist selten sinnvoll, der Vorteil liegt meist nur darin, da
  1240.  der Quelltext des Programms zus
  1241. tzlich verk
  1242. rzt wird, wenn ein solcher Dialog im Ressourceneditor erzeugt wird. Die Gr
  1243. e der EXE-Datei und der verf
  1244. gbare Arbeitsspeicher werden durch einen Constructor Init, der nicht aufgerufen wird, weil der Dialog stattdessen aus einer Ressource geladen wird nicht negativ beeinflu
  1245. t. Der Linker von Pascal entfernt diesen toten Code automatisch. Eine andere Anwendung dieser Technik l
  1246. ge darin, von einem so gestalteten Dialog einen Nachfahren abzuleiten, der einige Methoden 
  1247. bernimmt, aber ein anderes Erscheinungsbild aufweisen soll. Der geerbte Constructor w
  1248. rde diese Absicht nat
  1249. rlich unterlaufen. Hier ist es aber oft sinnvoller, zun
  1250. chst einen abstrakten Vorfahren ohne definiertes Erscheinungsbild zu deklarieren und von diesem dann beide Dialoge abzuleiten. 
  1251.  Implementation einer Prozedur              
  1252. Die Darstellung der Dialogobjekte auf dem Desktop wird durch Prozeduren bewerkstelligt, die wahlweise einen modalen oder nichtmodalen Dialog einf
  1253. gen. 
  1254. Der Constructor, der dabei verwendet wird, h
  1255. ngt nat
  1256. rlich davon ab, ob und wie Sie einen Objekttyp deklarieren. (Ressource, eigener Constructor etc.) Q
  1257. Den Namen der Prozedur bestimmen Sie im Eigenschaftendialog des Dialogobjektes. 
  1258.  Verwendung einer Ressourcendatei           
  1259. Sie k
  1260. nnen in jedem Fall, egal ob Sie nur eine Prozedur, nur einen Objekttyp oder beides implementieren, den Dialog in einer Ressource speichern. 
  1261. Der Wizard erzeugt dann zus
  1262. tzlich in der Datei <ProjectName>RES.INC eine Prozedur "Put<ProcedureName>", die den Dialog konstruiert und in der Ressource <ProjectName>.RES speichert. Q
  1263. Wenn Sie eine Prozedur implementieren, so verwendet diese den Constructor Load. A
  1264. Wenn Sie ein Objekt implementieren, sollten Sie die Einstellung *
  1265.  "Objekt in Prozedur/Ressource erzeugen"
  1266. hlen, da Sie andernfalls den Code zur Konstruktion des Dialoges nicht in den Ressourceneditor auslagern. 
  1267.              Stack schonen                  
  1268. Wenn Sie diese Option w
  1269. hlen, werden alle Elemente des Dialoges au
  1270. 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. ~
  1271. Ein anderer Nachteil besteht darin, das der Wizard nicht bestimmen kann, welches Element automatisch fokussiert werden soll. U
  1272. Normalerweise f
  1273. 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
  1274. hlt ist funktioniert dies nat
  1275. rlich nur, wenn der Cursor auf einem Objekt steht, das als Feld in einem Dialogobjekt vorgesehen ist. 
  1276. In jedem anderen Fall wird die Anweisung "SelectNext(False)" eingef
  1277. gt. Sie sorgt daf
  1278. r, da
  1279.  dasjenige Element selektiert wird, das zuerst in den Dialog eingef
  1280. gt wurde. Arbeiten Sie also beim Einf
  1281. gen immer in der Reihenfolge, in der auch der Anwender arbeiten soll. T
  1282.                                                                               -
  1283.  Einrichten auf..
  1284. ) Stack     
  1285. Wenn dieser Schalter gew
  1286. hlt ist, wird die Recordvariable NewData wie gewohnt als lokale Variable auf dem Stack eingerichtet. 
  1287. Siehe Records
  1288. Heap 
  1289.  Einrichten auf..
  1290. ) Heap      
  1291. Wenn dieser Schalter gew
  1292. hlt ist, wird die Recordvariable NewData als dynamische
  1293. Variable
  1294. Heap eingerichtet. 
  1295.  Erstelle...
  1296.  [X] Procedure zum Einf
  1297. gen        
  1298. Wenn diese Einstellung gew
  1299. hlt ist erzeugt der Wizard eine Prozedur, die den Dialog in den Desktop einf
  1300.  Erstelle...
  1301.  [X] Objekt mit eigenem Eventhandler  
  1302. Wenn diese Option gew
  1303. hlt ist deklariert der Wizard diesen Dialogtyp als Nachfahren von TDialog und implementiert die Methoden Store, Load, HandleEvent und gegebenenfalls den Constructor Init. 
  1304. ) In Procedure/Ressource zusammensetzen  
  1305. Wenn diese Option gew
  1306. hlt ist, wird zu diesem Objekt KEIN eigener Constructor Init implementiert. 
  1307. Der Dialog wird statt dessen nach Aufruf des Constructors von TDialog in der einf
  1308. genden Prozedur oder im Ressourceneditor zusammengesetzt. 
  1309. hlen Sie diese Option auf jeden Fall, wenn Sie den Dialog aus einer Ressource laden m
  1310. chten, Sie sparen dann den Constructor-Code im Hauptprogramm. 
  1311. ) Im Constructor.Init zusammensetzen     
  1312. Wenn diese Option gew
  1313. hlt ist, erstellt der Wizard einen eigenen Constructor f
  1314. r diesen Dialogtyp, der den Dialog nach Ihrem Layout vollst
  1315. ndig zusammensetzt. 
  1316. ) Nichtmodaler Dialog   
  1317. Wenn Sie diese Einstellung w
  1318. hlen wird der Dialog als nichtmodaler Dialog mit der Anweisung Desktop^.Insert(Dialog) bzw. Application^.InsertWindow(Dialog) (Turbo Vision 2.0) eingef
  1319. 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
  1320. glichen. &
  1321. Es ist allerdings gef
  1322. hrlich, sie zur Eingabe von Daten zu benutzen, die nicht ausschlie
  1323. lich durch die Methoden des Dialoges selbst bearbeitet werden, denn eine 
  1324. bereinstimmung der angezeigten Werte mit Variablen, die durch eine Eingabe modifiziert werden sollen ist nicht unbedingt gegeben. 
  1325. ) Modaler Dialog 
  1326. 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
  1327. gt und den R
  1328. ckgabewert dieser Funktion bearbeitet. 
  1329.  [X] Ressourcendatei verwenden              
  1330. Wenn diese Option gew
  1331. hlt ist, wird der Dialog in einer Prozedur im Ressourceneditor erzeugt, in einer Ressourcendatei gespeichert und im Programm mit "ResFile.Get(..)" geladen. 
  1332. Damit diese Konstruktion funktioniert m
  1333. ssen Sie vor Ausf
  1334. hrung des Programmes nat
  1335. rlich den Ressourceneditor compiliert und ausgef
  1336. hrt haben. 
  1337.  [X] Stack schonen                 
  1338. Wenn diese Option gew
  1339. hlt ist, werden die Elemente, die in den Dialog eingef
  1340. gt werden sollen, nicht einzeln unter ihrem Namen in die Variablenliste aufgenommen, sondern in EINER Zeigervariablen 'Control' vom Typ PView initialisiert. 
  1341. Von dieser Regelung ausgenommen sind Scrollbars und nat
  1342. rlich Objekte, die als Felder in einem neuen Dialogtyp deklariert werden sollen. 
  1343.  Der Begriff "modal"
  1344. Ein Dialog wird als modal bezeichnet, wenn er als einziges Fenster auf dem Desktop Eingaben zul
  1345. t, und alle anderen Elemente mit Ausnahme der Statuszeile f
  1346. r die Laufzeit des Dialoges gesperrt sind. C
  1347. Modale Dialoge werden in Turbo Vision durch Aufruf der Funktionen i
  1348.   Desktop^.ExecView(Dialog) oder
  1349.   Application^.ExecuteDialog(Dialog, RecordAdresse) (Turbo Vision 2.0)
  1350. eingef
  1351. gt. I
  1352. Sie bleiben modal, bis ihre Prozedur EndModal(Command) aufgerufen wird. T
  1353. Der Wert in Command liefert das Funktionsergebnis von ExecView bzw. ExecuteDialog. 
  1354. Bei Verwendung der Funktion ExecView mu
  1355.  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
  1356.                                                                               -
  1357.  Registrierung
  1358. Turbo Wizard ist Shareware. Sie d
  1359. rfen dieses Programm 30 Tage lang unentgeltlich benutzen, um seine Brauchbarkeit f
  1360. r Ihre Zwecke zu testen. 
  1361. Wenn Sie nach Ablauf dieser Frist weiter mit dem Wizard arbeiten m
  1362. chten, m
  1363. ssen Sie sich registrieren lassen. Schicken Sie dazu einen Scheck 
  1364. ber DM 50,- an folgende Adresse: 2
  1365.  Ulrich Albrecht
  1366.  ThomashofStr 23
  1367.  52070 Aachen
  1368. Sie erhalten f
  1369. r dieses Geld: '
  1370. Eine erweiterte Version des Wizard. 
  1371. Diese l
  1372. 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
  1373. glicht, und unterst
  1374. tzt einige Features und Erweiterungen von Turbo Vision 2.0, z.B. Validierungsobjekte f
  1375. r Eingabezeilen (TValidate und Nachfahren) und TMultiCheckBoxes. Diese Vollversion wird mit dem DPMI-Server RTM von Borland ausgeliefert und ist daher keine Shareware! 
  1376. Die Prozedur Showhelp aus der Unit XHelp?? ist so ge
  1377. ndert, da
  1378.  Sie einen eigenen Titel f
  1379. r das Hilfefenster angeben k
  1380. nnen. In der Shareware-Version lautet dieser immer "Turbo Wizard Hilfe". h
  1381. Sie erhalten das Recht auf telefonische oder schriftliche Beratung. Ich rufe allerdings nicht zur
  1382. ck. .
  1383. Eine erweiterte Dokumentation auf Diskette. K
  1384. Die Vollversion ist Gegenstand st
  1385. ndiger Verbesserung und 
  1386. berarbeitung. 
  1387.  Die Prozedur Showhelp
  1388. Turbo Wizard stellt Ihren Programmen ein Hilfefenster zur Verf
  1389. gung, das gegen
  1390. ber dem Objekttypen THelpWindow aus der Unit Helpfile einige Verbesserungen aufweist. Dieser Fenstertyp stellt zugleich die einzige empfindliche Einschr
  1391. nkung der Sharewareversion des Wizard dar, da die Titelzeile des Hilfefensters immer "Turbo Wizard Hilfe" lautet. 
  1392. Dieser Fenstertyp wird in der Unit XHELP60.TPU f
  1393. r Turbo Pascal 6.0, in den Units XHELP70.TPU bzw. XHELP70.TPP f
  1394. r Turbo bzw. Borland Pascal 7.0 implementiert. Diese Units sollten dem Wizard in kompilierter Form beiliegen. 
  1395. Er wird allerdings in der Sharewareversion nicht zu Ihrer Verwendung aus dieser Unit exportiert, das Einf
  1396. gen des Fensters geschieht stattdessen durch die Prozedur "Showhelp", deren Syntax und Bedeutung weiter unten erl
  1397. utert wird. 9
  1398. Hier zun
  1399. chst die Ver
  1400. nderungen gegen
  1401. ber THelpWindow: 
  1402. Korrigierte Farbpalette. Auf einigen Systemen (tats
  1403. 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
  1404. 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
  1405. Das Fenster verf
  1406. ber eine zirkul
  1407. re Historyliste von 30 Eintr
  1408. 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
  1409. ckgehen. 
  1410. Dem Fenster wird zus
  1411. tzlich zum aktuellen Hilfekontext ein Hilfekontext 
  1412. 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. 
  1413. Der Hilfekontext des Hilfefensters selbst (den Sie ja ben
  1414. tigen, um eine passende Statuszeile zuzuordnen) lautet "hcHelpWindow=4999" #
  1415. Syntax der Prozedure ShowHelp
  1416.  Procedure ShowHelp(AHelpFile: PathStr; AHelpCtx, ADefaultTopic: Word);
  1417. AHelpFile ist der Name der Hilfedatei. [
  1418. AHelpCtx ist der Wert des Programmkontextes, zu dem die Hilfetafel angezeigt werden soll. 
  1419. ADefaultTopic ist der Wert des Programmkontextes, zu dem eine Hilfetafel angezeigt werden soll, wenn bei ge
  1420. ffneter Hilfe erneut "cmHelp" eintrifft. Dieser Wert stellt au
  1421. erdem die Vorbelegung der History-Liste dar. T
  1422. In der Vollversion ist diese Syntax um die Titelangabe f
  1423. r das Fenster erweitert. W
  1424.                                                                               -
  1425.  Was ist Turbo Wizard?
  1426. Turbo-Wizard ist ein Dialog-Editor, Men
  1427. - und Programmgenerator, der es dem Programmierer erm
  1428. glicht, interaktiv Turbo-Vision Dialoge, Men
  1429. s, Statuszeilen und sogar ganze Prototypen zu erstellen. 
  1430. Das Programm erzeugt keinen ausf
  1431. hrbaren Code, sondern Turbo-Pascal Quelltext, der sich mit einem Borland- bzw Turbo-Pascal-Compiler, Version 6.0 oder h
  1432. her compilieren l
  1433. t. Es besteht die M
  1434. glichkeit, zwischen Quelltext f
  1435. r die Turbo Vision Versionen 1.0 oder 2.0 zu w
  1436. hlen. 
  1437. Im Gegensatz zu vorcompilierten Toolboxen bleibt das Programm vollst
  1438. ndig transparent, und alle Objekte verhalten sich auf dem Bildschirm genau so, wie Sie es von Ihrer Entwicklungsumgebung her gewohnt sind. :
  1439. Neben der Unterst
  1440. tzung der in Turbo-Vision 1.0 und 2.0 f
  1441. r Dialoge bereits vordeklarierten Objekte bietet Turbo-Wizard auch die M
  1442. glichkeit, eigene
  1443. Nachfahren dieser Standardobjekte zu verwenden, die sich in ihrer GetData-Methode von ihren Vorfahren unterscheiden, z.B. spezialisierte Eingabefelder oder Listen. i
  1444. Turbo Wizard unterst
  1445. tzt die Erstellung eines komplexen Hilfesystems und die Verwendung von Ressourcen. 
  1446. Hardwarevoraussetzungen: 
  1447. Processor ab 80286. B
  1448. Sie ben
  1449. tigen eine Maus. Ohne Maus keine Zeile Quelltext, sorry. o
  1450. Turbo Wizard macht regen Gebrauch von Overlays und Ressourcen, daher ist eine Festplatte sehr empfehlenswert.  
  1451. MS oder PC DOS ab Version 3.0. 
  1452.  Hinweise und "legal stuff":
  1453. TWIZARD.EXE wurde mit dem Programm LZEXE komprimiert, das dessen Autor Fabrice Bellard gro
  1454. gigerweise als Freeware ver
  1455. ffentlicht hat. t
  1456. Turbo Vision, Turbo Pascal sowie Borland Pascal sind eingetragene Warenzeichen von Borland International INC, USA. 
  1457. Die Benutzung des Programms TURBO WIZARD erfolgt auf eigene Gefahr. Eine Garantie f
  1458. r die Funktionst
  1459. chtigkeit wird nicht gegeben, die Verantwortung f
  1460. r irgendwelche Sch
  1461. den oder Datenverluste, die durch den Gebrauch des Programmes entstehen weise ich laut schreiend von mir. *
  1462. Copyright (c) 1994 by Ulrich Albrecht. U
  1463.                                                                               -
  1464.  Die Verwendung von Ressourcen
  1465. Die Verwendung von Ressourcendateien ist eine elegante Methode, Speicher zu sparen, da man den gesamten Code, der den Dialog, den Men
  1466. balken oder die Statuszeile zusammensetzt, in ein anderes Programm - den Ressourceneditor - verlagert und f
  1467. r jedes Objekt dann nur noch den Speicher ben
  1468. tigt, den alle tats
  1469. chlich relevanten Methoden und Datenfelder ben
  1470. tigen. N
  1471. erdem kann man das Erscheinungsbild der Dialoge leicht 
  1472. ndern, ohne eine Zeile Quelltext im eigentlichen Programm 
  1473. ndern oder das Programm gar neu compilieren zu m
  1474. ssen - die Entkopplung zwischen der Oberfl
  1475. che und dem "funktionellen" Code wird verbessert, der eigentliche Programmquelltext BEDEUTEND k
  1476. rzer und besser zu warten. 
  1477. Bei einer 
  1478. nderung der Reihenfolge oder Anzahl der Dialogelemente mu
  1479.  man allerdings eine Anpassung des Datenrecords vornehmen! O
  1480. Ressourcen speichert man in "Dateien", besser Objekten vom Typ TResourcefile. X
  1481.                                                                               -
  1482.  TResourcefile
  1483. Das Objekt TRessourcefile verwaltet einen Stream (i.a. einen TDosStream), dessen Objekte zum Laden und Speichern durch einen String eindeutig referenziert werden k
  1484. nnen. Sie m
  1485. ssen also zun
  1486. chst den Stream initialisieren und dessen Addresse an den Constructor der ResourceFile 
  1487. bergeben. 
  1488. Da der Destructor von TRessourceFile auch den Destructor des Streams aufruft ist es wohl am effektivsten, die Initialisierung mit H
  1489.  ResFile.Init(New(PDosStream, Init(<FileName>, stOpenRead/stCreate )))
  1490. vorzunehmen. I
  1491. Sie k
  1492. nnen den Status des Streams 
  1493. ber ResFile.Stream^.Status abfragen. 
  1494. Die Schl
  1495. ssel-Strings werden mit einem Hinweis auf die Position des Objektes im Stream in einer alphabetisch sortierten Liste am Ende des Streams aufgef
  1496. hrt. g
  1497. Da die Position relativ zum Ende des Streams festgehalten wird, ist es m
  1498. glich, mit der Dos-Anweisung A
  1499.  COPY/B <Programmdatei.EXE>+<Ressource.RES> <Programmdatei.EXE>
  1500. eine Programmdatei zu erstellen, die ihre eigenen Ressourcen enth
  1501. lt. g
  1502. Im Programm mu
  1503.  der Stream der Ressourcendatei dann mit dem Namen der Exe-Datei initialisiert werden. 
  1504. Wenn Sie ein Programm zur Kompression von EXE-Dateien (wie z.B. LZEXE von Fabrice Bellard) benutzen, k
  1505. nnen Sie die Kompression vor dem Zusammenkopieren vornehmen, das Programm bleibt lauff
  1506. hig. W
  1507.                                                                               -
  1508.  TStream
  1509. 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. 
  1510. 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. 
  1511. Hotkey
  1512.                
  1513. In der Hotkey-Eingabezeile k
  1514. nnen Sie einen Hotkey angeben - indem Sie ihn einfach bet
  1515. tigen. 9
  1516. 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. 
  1517. befehle
  1518.                     
  1519.                     
  1520.                     
  1521.                     
  1522.                     
  1523. In dieser Liste k
  1524. nnen Sie einem Men
  1525. befehl einen Hotkey zuordnen, indem Sie den entsprechenden Befehl aussuchen und dann die Tastenkombination bet
  1526. tigen. 7
  1527. Mit der Taste ENTF k
  1528. nnen Sie eine Zuweisung l
  1529. schen. ;
  1530. Der Wizard verhindert eine Mehrfachzuweisung automatisch. 9
  1531. 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. 
  1532.                      
  1533. Die Eingabe in diesem Feld bestimmt sowohl den Namen des Objektes als auch den des entsprechenden Feldes im DatenRecord. 
  1534. In der Quelletexteinstellung Objekt k
  1535. nnen Sie mit einem dem Namen vorangestellten Ausrufezeichen bestimmen, da
  1536.  das Objekt als Feld im Dialogobjekt aufgef
  1537. hrt wird. 
  1538.                         
  1539. Der Eintrag, der linksb
  1540. ndig im Men
  1541.  erscheint. Wenn Sie einen Buchstaben in Tildezeichen (~) einfassen, so erscheint dieser rot abgesetzt und dient zur Aktivierung des Men
  1542. befehls. k
  1543. Wenn Sie einen Hotkey eingeben, so erscheint ein entsprechender Hinweis automatisch rechtsb
  1544. ndig im Men
  1545.                         
  1546. Der Eintrag, der im Men
  1547. 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
  1548. Procedure
  1549.                         
  1550. Hier geben Sie den Namen der Prozedur an, in der dieser Dialog in den Desktop eingef
  1551. gt wird. `
  1552. Dieser Ausdruck wird au
  1553. erdem (um "Rec" erweitert) f
  1554. r die Bezeichnung des Recordtyps benutzt. 
  1555.                         
  1556. In dieser Zeile k
  1557. nnen Sie einen anderen Typ spezifizieren, wenn Sie ein Objekt anderen Typs einf
  1558. gen m
  1559. chten. g
  1560. Der Wizard erzeugt allerdings den Quelltext eines Constructors mit der gleichen Syntax wie der Urtyp. 
  1561.                        
  1562. Bei der Deklaration eines neuen Dialogobjekt-Typs legt dieses Feld den Namen des abgeleiteten Typs fest. Y
  1563. Dabei gelten folgende Konventionen (die sich mit denen der Borland-Entwickler decken) : l
  1564. Wenn im Quelltext ein Zeigertyp gefordert wird, so wird dem Eintrag in diesem Feld ein "P" vorangestellt; Y
  1565. bei der Deklaration eines neuen Objekttypen wird diesem Eintrag ein "T" vorangestellt; l
  1566. bei der Deklaration des TStreamRec f
  1567. r einen neuen Objekttypen wird diesem Eintrag ein "R" vorangestellt. 
  1568. Beispiel: 
  1569. Wenn Sie hier "EingabeDlg" eintragen, so erhalten Sie ein Objekttyp "TEingabeDlg", einen Zeiger auf diesen Typ "PEingabeDlg" und eine TStreamRec des Namens "REingabeDlg". X
  1570.                                                                               -
  1571. Record-Entry
  1572.                        
  1573. 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
  1574. Dieses Feld d
  1575. rfen Sie nur 
  1576. ndern, wenn Sie den Eintrag im Feld "Type" 
  1577. ndern, also ein abgeleitetes Objekt einf
  1578. gen. 
  1579. Record-Entry
  1580.                        
  1581. Ein Memo-Feld nimmt zwei Eintr
  1582. ge in den Dialog vor, die der 
  1583. bersichtlichkeit halber in einem Record TMemoRec zusammengefa
  1584. t werden. N
  1585. Es handelt sich um die L
  1586. nge des Textes und um seine maximal m
  1587. gliche L
  1588. nge. 
  1589. Record-Entry
  1590.                       
  1591. Ein TListBox-Objekt nimmt zwei Eintr
  1592. ge in den Dialog vor, die der 
  1593. bersichtlichkeit halber in einem Record TBoxRec zusammengefa
  1594. t werden. 
  1595.  TBoxRec
  1596. Dieser Recordtyp wird in PROTODEC.PAS deklariert, um den Eintrag von ListBoxen in den Datenrecord 
  1597. bersichtlicher zu gestalten. 
  1598. Syntax f
  1599.   TBoxRec = Record
  1600.               BoxList: PCollection;
  1601.               Focused: Word;
  1602.             End;
  1603. Record-Entry
  1604.                      
  1605. Der Eintrag in den Datenrecord einer wird vom Wizard beim Zeigertyp PInputLine in 
  1606. bereinstimmung mit dem Feld Maximale
  1607. nge vorgenommen. D
  1608. Bei abgeleiteten Objekten m
  1609. ssen Sie selbst f
  1610. r Konsistenz sorgen. 
  1611. HelpCtx (hcXXX)
  1612.                        
  1613. Geben Sie hier den Namen der Hilfekonstanten an. k
  1614. Diese Namen m
  1615. ssen mit 'hc' beginnen. Ist dies nicht der Fall, so f
  1616. gt der Wizard diese Buchstaben hinzu. 
  1617. Befehlskonstante (cmXXX)
  1618.                                 
  1619. Geben Sie hier den Namen der Kommandokonstanten an. 
  1620. HelpCtx (hcXXX)
  1621.                        
  1622. In das Feld HelpCtx des Objektes wird dieser Wert eingetragen, der tats
  1623. chliche Hilfekontext des Programmes bestimmt sich bei Schaltern allerdings aus diesem Wert und der Nummer der fokussierten Schalters, wobei die Z
  1624. hlung bei 0 beginnt. `
  1625. Daher legt der Wizard bei Angabe eines Hilfekontextes eine entsprechende Anzahl von Topics an. 
  1626. Maximale Eingabel
  1627.                           
  1628. Bestimmen Sie hier, wie lang die Eingabe sein darf. D
  1629. Die Standardeinstellung errechnet sich aus der L
  1630. nge der Zeile+10. x
  1631. Wenn Sie den Typ PInputLine beibehalten, reicht eine 
  1632. nderung dieses Feldes, um den Eintrag im Datenrecord anzupassen. B
  1633. Bei allen anderen Typen M
  1634. SSEN Sie selbst f
  1635. r Konsistenz sorgen. 
  1636. Unterer HelpCtx
  1637.                         
  1638. Hier geben Sie den Namen der Hilfekontext-Konstanten ein, die die untere Grenze der "Zust
  1639. ndigkeit" der aktuellen Statuszeile bestimmt. 
  1640. Oberer HelpCtx
  1641.                         
  1642. Hier geben Sie den Namen der Hilfekontext-Konstanten ein, die die obere Grenze der "Zust
  1643. ndigkeit" der aktuellen Statuszeile bestimmt. I
  1644. Die Vorgabe hcEveryContext bedeutet 65.535, den maximal m
  1645. glichen Wert. 
  1646.                         
  1647. Hier geben Sie den Text ein, unter dem der Befehl in der Statuszeile erscheint. 
  1648. Wenn Sie in der Hotkey-Eingabezeile einen Hotkey spezifizieren, wird dessen Text in roter Farbe diesem Eintrag vorangestellt. 
  1649. Sie k
  1650. nnen dieses Feld leer lassen und damit einen verborgenen Eintrag in der Statuszeile vornehmen, der zwar bei Bet
  1651. tigung eines Hotkeys einen Befehl absetzen, aber nicht in der Statuszeile angezeigt wird. 
  1652. Titel
  1653.                         
  1654. Die Titelzeile des Dialoges. 
  1655.                         
  1656. Geben Sie hier den Text ein. r
  1657. Wenn Sie mehrere Zeilen vorgesehen haben versucht Turbo Vision automatisch, den Text in diesem Feld umzubrechen. 
  1658.                         
  1659. Der Text des Labels. 
  1660. 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. 
  1661. Link-ID
  1662.                 
  1663. Die ID des Objektes, dem dieses Label zugeordnet werden soll. S
  1664. Das Objekt mu
  1665.  bereits existieren, seine ID also kleiner sein als die des Labels. 
  1666.  Die Objekt-ID
  1667. Turbo Wizard verwaltet die Objekte eines Dialoges anhand einer individuellen Identifikationsnummer (ID). Q
  1668. Die ID eines Objektes erfahren Sie in der Titelzeile des Eigenschaftendialoges. 5
  1669. Diese ID ist nicht mit der Typen-ID zu verwechseln! 
  1670.  Die Typen-ID
  1671. Diese ID wird beim Speichern von Objekten in und beim Laden aus einem Stream ben
  1672. tigt, um die richtige Store- bzw Load-Methode zu benutzen. 
  1673. Sie wird f
  1674. r ein Objekt - das Nachkomme von TObjekt sein mu
  1675.  - in dessen individuellem "TStreamRec" eingetragen und mit RegisterType "registriert". 
  1676. Sie k
  1677. nnen diesen Wert im Men
  1678. punkt "Optionen
  1679. Einstellungen ver
  1680. ndern", m
  1681. ssen aber darauf achten, da
  1682.  jedes Objekt, da
  1683.  Sie im gleichen Programm verwenden eine individuelle ID erh
  1684. Wenn Sie den Wert nur beim Beginn eines neuen Projektes 
  1685. ndern, sind Sie einigerma
  1686. en auf der sicheren Seite, da der Wizard dann diesen Wert f
  1687. r jedes neue Objekt inkrementiert. 
  1688. History-ID
  1689.                    
  1690. Eingabeaufzeichnungslisten werden in einem Block auf dem Heap gespeichert, dessen Gr
  1691. e - Standard ist 1k - in der Variablen HistorySize der Unit HistList gespeichert ist. p
  1692. Dieser Bereich kann in verschiedene Listen aufgeteilt werden, die man 
  1693. ber den Wert "History-ID" referenziert. 
  1694. Das bedeutet in der Praxis, da
  1695.  THistory-Objekte mit der gleichen History-ID auf die gleiche Sammlung von Eintr
  1696. gen zugreifen. 
  1697. Spaltenzahl
  1698.                     
  1699. Die Anzahl der Spalten, in denen die Eintr
  1700. ge in der Listbox angezeigt werden sollen. 
  1701. Max. Eingabel
  1702.                           
  1703. Die Gr
  1704. e des Puffers, die f
  1705. r dieses Texteingabefeld reserviert wird. |
  1706. Sie wird dem Constructor des Memo-Feldes 
  1707. bergeben und findet sich auch in der Deklaration des TMemoRec dieses Memofeldes. "
  1708. Siehe auch Records
  1709. Heap. 
  1710.  Records auf dem Heap
  1711. Bei umfangreichen Datenrecords, insbesondere aber beim Gebrauch von TMemo-Objekten, kann es zu einem Stack
  1712. berlauf kommen, wenn man die Recordvariable "NewData" als "normale" lokale Variable auf dem Stack anlegt. 
  1713. Sie k
  1714. nnen daher im Eigenschaftendialog eines Dialoges bestimmen, ob sie NewData auf dem Stack oder als dynamische Variable auf dem Heap einrichten wollen. `
  1715. Die Aufrufe von Set/Getdata werden zu "SetData(NewData^)" bzw. "GetData(NewData^)" abge
  1716. ndert. 
  1717. Beachten Sie, da
  1718.  TURBO "SetData(NewData)" ebenso klaglos akzeptieren w
  1719. rde (mit fatalen Folgen, da "NewData" als Zeigervariable ja nun leider nur vier Byte gro
  1720.  ist). 
  1721. Wenn Sie nun allerdings bei der Bearbeitung des Ergebnisses eines modalen Dialoges Speicher f
  1722. r weitere dynamische Variablen reservieren, sollten Sie NewData zuvor wieder freigeben, da sonst der Heap unn
  1723. tigerweise fragmentiert wird. W
  1724.                                                                               -
  1725. Box 1                    
  1726.    In dieser Box finden Sie die Beschriftungen
  1727. Box 2                    
  1728.    der Schalter. Um sie zu 
  1729. ndern, m
  1730. ssen Sie
  1731. Box 3                    
  1732.    die Eingabe mit [Enter] best
  1733. tigen.
  1734. Box 4                    
  1735.    Dadurch wird der n
  1736. chste Eintrag automatisch
  1737. Box 5                    
  1738.    in die Eingabezeile geladen.
  1739. 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. 
  1740.  [X] Vertikal  
  1741. Vertikalen Rollbalken einf
  1742. gen. R
  1743. Der Rollbalken wird am rechten Rand innerhalb der bestimmten Fl
  1744. che installiert. 
  1745.  [X] Horizontal  
  1746. Horizontalen Rollbalken einf
  1747. gen. R
  1748. Der Rollbalken wird am unteren Rand innerhalb der bestimmten Fl
  1749. che installiert. 
  1750. ) keiner       
  1751. In dieser Stellung f
  1752. gt der Wizard eine Listbox ohne Rollbalken ein. 
  1753. ) Vertikal     
  1754. Wenn diese Option gew
  1755. hlt ist, wird an der rechten Kante der ListBox ein vertikaler Rollbalken eingef
  1756. ) Horizontal   
  1757. Wenn diese Option gew
  1758. hlt ist, wird an der unteren Kante der ListBox ein horizontaler Rollbalken eingef
  1759.  [X] Alle neuen HelpCtx editieren  
  1760. Ist diese Option gew
  1761. hlt, so wird jedesmal, wenn Sie einen neuen Hilfekontext eingeben, der Hilfeeditor ge
  1762. ffnet, um die Hilfetafeln, den Hinweistext etc. zu editieren. 
  1763. Ist sie nicht gew
  1764. hlt, unterbleibt diese direkte Eingabe, und die Eintr
  1765. ge werden zwar gespeichert, aber als unbest
  1766. tigt markiert. B
  1767. Sie k
  1768. nnen die Hilfe dann zu einem sp
  1769. teren Zeitpunkt erstellen. 
  1770.  [X] Alle HelpCtx bearbeiten  
  1771. Wenn diese Option gew
  1772. hlt ist, werden durch den Befehl 
  1773. Optionen
  1774. Hilfe bearbeiten
  1775.  ALLE Hilfeeintr
  1776. ge in der Reihenfolge der Deklaration der hcXXX-Konstanten angezeigt. 
  1777. Ist sie deaktiviert, werden nur die Hilfekonstanten editiert, deren Eintr
  1778. ge noch nicht ge
  1779. ndert, also mit "Ok" best
  1780. tigt wurden. a
  1781. Ob ein Hilfekontext bereits best
  1782. tigt wurde erkennen Sie an dem H
  1783. kchen in der Konstantenliste. 
  1784.  [X] Ressourcendatei verwenden  
  1785. Wenn diese Option gew
  1786. hlt ist, so wird die Konstruktion des Men
  1787. 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. 
  1788. Der Quelltext der Methoden "MakeStatusLine" und "MakeMenuBar" findet sich dann in den Dateien MAKESTAT.INR bzw. MAKEMENU.INR. 
  1789. Wenn sie nicht gew
  1790. hlt ist, erzeugt der Wizard den Code f
  1791. r die Konstruktion dieser Objekte direkt in diesen Methoden - was das Programm vergr
  1792. ert und Speicherplatz kostet, allerdings eine Ressourcendatei unn
  1793. tig macht. 
  1794. Aufschrift
  1795.                    
  1796. 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. 
  1797. Siehe bfLeftJust. 
  1798. Befehl (cmXXXX)
  1799.                        
  1800. Der Name der Befehlskonstanten, die bei Bet
  1801. tigung des Knopfes abgesetzt wird. 
  1802. Siehe bfBroadcast. 
  1803. Prozedur
  1804.                             
  1805. In dieser Eingabezeile geben Sie den Namen
  1806. Prozedur ein, die durch das Befehlsereignis aufgerufen werden soll. 
  1807. Eine entsprechende Zuweisung wird in der HandleEvent-Methode des Dialoges bzw. in der Auswertung des Ergebnisses eines modalen Dialoges vorgenommen. 
  1808. Siehe dazu 
  1809.   Abarbeitung
  1810. durch
  1811. Prozedur
  1812.   Abarbeitung
  1813. durch
  1814. Objekt
  1815. Prozedur
  1816.                             
  1817. In dieser Eingabezeile geben Sie den Namen
  1818. Prozedur ein, die durch das Befehlsereignis aufgerufen werden soll. [
  1819. Eine entsprechende Zuweisung wird in der HandleEvent-Methode der Application vorgenommen. 
  1820. ) Lokal  
  1821. Wenn diese Option gew
  1822. hlt ist UND Sie die Quelltextart auf "Procedure" gesetzt haben, wird der Typ des Datenrecords f
  1823. r den Datenaustausch mit dem Dialog lokal innerhalb der Prozedur deklariert. 
  1824. ) Global  
  1825. Wenn diese Option gew
  1826. hlt ist, wird der Typ des Datenrecords f
  1827. r den Datenaustausch mit dem Dialog global unter dem Namen <Name>Rec deklariert. 
  1828. ) bfNormal  
  1829. Diese Option ist das Gegenst
  1830. ck zu bfDefault. y
  1831. Schalter mit dieser Einstellung m
  1832. ssen erst mit der Tab-Taste angew
  1833. hlt werden, ehe sie auf die Eingabetaste reagieren. 
  1834. ) bfDefault  
  1835. Diese Option ist das Gegenst
  1836. ck zu bfNormal. i
  1837. Bei Schaltern mit dieser Einstellung simuliert eine Bet
  1838. tigung der Eingabetaste das Dr
  1839. cken des Button. 
  1840.  [X] bfLeftJust  
  1841. Ist diese Option gew
  1842. hlt, wird die Aufschrift des Knopfes statt zentriert linksb
  1843. ndig ausgegeben. 
  1844.  [X] bfBroadcast  
  1845. bfBroadcast legt fest, ob TButton-Objekte 
  1846. ber die Methode PutEvent oder die Funktion Message Ereignisse erzeugen sollen. 
  1847. Ist bfBroadcast gel
  1848. scht, erzeugt ein TButton-Objekt mit PutEvent immer dann ein Ereignis vom Typ evCommand, wenn der Schalter gedr
  1849. ckt wird: h
  1850.   Event.What    := evCommand;
  1851.   Event.Command := Command;
  1852.   Event.InfoPtr := @Self;
  1853.   PutEvent(Event);
  1854. Ist bfBroadcast gesetzt, sendet das TButton-Objekt mit der Funktion Message eine evBroadcast-Meldung an die 
  1855. bergeordnete View Owner: 0
  1856.   Message(Owner, evBroadcast, Command, @Self);
  1857. Dadurch wird ein Rundrufereignis ausgel
  1858. st, d.h. da
  1859.  der Dialog, zu dem der Button geh
  1860. rt, diese Message an alle seine Subviews versendet. B
  1861. Dadurch k
  1862. nnen Befehle an andere Dialogelemente gesendet werden. U
  1863.                                                                               -
  1864.  Abarbeitung...
  1865. ) ...durch aufrufende Proz.  
  1866. Wenn diese Option gew
  1867. hlt ist, wird die Befehls/Prozedur-Zuweisung nicht in den EventHandler eines zu deklarierenden Dialogtypen aufgenommen. M
  1868. Statt dessen bewirkt der Befehl den Aufruf der Methode EndModal(<Command>). 
  1869. Wenn Sie bei der Quelltextproduktion des Dialoges die Option "Modaler Dialog" gew
  1870. hlt haben, wird die dem Button zugeordnete Prozedur nach dem Schlie
  1871. en des Dialoges innerhalb der Prozedur aufgerufen, die den Dialog in den Desktop eingef
  1872. gt hat. &
  1873. Siehe auch Abarbeitung
  1874. durch
  1875. Objekt 
  1876.  Abarbeitung...
  1877. ) ...durch Objekt     
  1878. Wenn Sie diese Option gew
  1879. hlt haben, wird die Prozedur, die Sie diesem Button zugeordnet haben, durch die Methode HandleEvent des Dialoges aufgerufen, wenn Sie diesen Knopf dr
  1880. cken. '
  1881. Siehe auch Abarbeitung
  1882. durch
  1883. Prozedur 
  1884.     Ok    
  1885. Ein Druck auf diesen Knopf akzeptiert die Eingabe und schlie
  1886. t den Dialog. 
  1887.   Abbruch  
  1888. Ein Druck auf diesen Knopf verwirft die 
  1889. nderungen und schlie
  1890. t den Dialog. 
  1891. schen  
  1892. Ein Druck auf diesen Knopf l
  1893. scht das Objekt, bei ListBoxen und Memo-Feldern auch deren Rollbalken. 
  1894. schen  
  1895. Ein Druck auf diesen Knopf l
  1896. scht den Men
  1897. balken. 
  1898. schen  
  1899. Ein Druck auf diesen Knopf l
  1900. scht das gesamte Untermen
  1901. schen  
  1902. Ein Druck auf diesen Knopf l
  1903. scht die gesamte Konstruktion der Statuszeile. 
  1904.   Quelltext schreiben  
  1905. Dieser Knopf l
  1906. st die Erzeugung des Quelltextes f
  1907. r dieses Dialogobjekt aus. 
  1908.   Schreiben  
  1909. Dieser Knopf l
  1910. st die Quelltextproduktion der Methode TWApplication.InitMenuBar aus. :
  1911. Das Ergebnis ist abh
  1912. ngig von der Stellung des Schalters  
  1913. Ressourcendatei
  1914. verwenden
  1915.   Speichern  
  1916. Mit diesem Knopf k
  1917. nnen Sie den Men
  1918. balken in einer Datei speichern, deren Namen Sie in einem Dialog bestimmen k
  1919. nnen. 8
  1920. Das Laden erfolgt mit dem Men
  1921. befehl Datei
  1922. laden. 
  1923.   Linie  
  1924. Mit diesem Knopf f
  1925. gen Sie eine Linie in das Men
  1926.  ein. 
  1927. chster Eintrag  
  1928. Dieser Knopf akzeptiert die Eingaben, erstellt einen Men
  1929. befehl und leert die Maske zur n
  1930. chsten Eingabe. Z
  1931. Er wird bei Bet
  1932. tigung der Eingabetaste gedr
  1933. ckt und erm
  1934. glicht so ein z
  1935. giges Arbeiten. 
  1936.   Eintrag...  
  1937. Mit diesem Knopf 
  1938. ffnen Sie den Dialog, in dem Sie die Befehlseintr
  1939. ge in die aktuelle Statuszeile vornehmen k
  1940. nnen. 
  1941. chste  
  1942. Mit diesem Knopf bl
  1943. ttern Sie zwischen den Statuszeilen. 
  1944.   Schreiben  
  1945. Dieser Knopf l
  1946. st die Produktion des Quelltext der Methode TWApplication.InitStatusLine aus. :
  1947. Das Ergebnis ist abh
  1948. ngig von der Stellung des Schalters !
  1949. Ressourcendatei
  1950. verwenden.
  1951.   Neue Zeile  
  1952. Dieser Schalter erzeugt eine neue, leere Statuszeile vom Typ TStatusDef. 
  1953.  TStatusDef
  1954. Dieser Recordtyp speichert die f
  1955. r einen bestimmten Kontextbereich festgelegte Statuszeile.     
  1956. Syntax: _
  1957.   TStatusDef = record
  1958.     Next: PStatusDef;
  1959.     Min, Max: Word;
  1960.     Items: PStatusItem;
  1961.   end;
  1962.  TStatusItem
  1963. Dieser Record-Typ speichert einen Befehls-Eintrag in der Statuszeile.     
  1964. Syntax: n
  1965.   TStatusItem = record
  1966.     Next: PStatusItem;
  1967.     Text: PString;
  1968.     KeyCode: Word;
  1969.     Command: Word;
  1970.   end;
  1971.   Speichern  
  1972. Dieser Knopf speichert die gesamte Konstruktion der Statuszeile in einer Datei, deren Namen Sie in einem Dialog ausw
  1973. hlen k
  1974. nnen. -
  1975. Die Standardendung der Datei lautet ".STL". @
  1976. Das Laden erfolgt mit dem Men
  1977. befehl 
  1978. Datei
  1979. Statuszeile
  1980. laden. 
  1981. chster Eintrag  
  1982. Dieser Knopf akzeptiert die Eintragungen, erzeugt einen Eintrag in die Statuszeile und leert die Eingabemaske f
  1983. r den n
  1984. chsten Eintrag. _
  1985. Er wird durch die Bet
  1986. tigung der Eingabetaste gew
  1987. hlt und erm
  1988. glicht so ein z
  1989. giges Arbeiten. 
  1990. Befehl (cmXXX)
  1991.                        
  1992. Der Name der Befehlskonstanten, die bei Wahl dieses Men
  1993. befehls abgesetzt wird. e
  1994. Die Eingabe ist obligatorisch, Men
  1995. befehle ohne einen Eintrag in diesem Feld werden nicht erstellt. 
  1996. Wenn Sie dieser Konstanten eine Prozedur zuordnen, wird diese Verkn
  1997. pfung in die TWApplication.HandleEvent-Methode aufgenommen. 
  1998.  [X] gfGrowLoX  
  1999. Wenn dieser Schalter aktiviert ist, beh
  2000. lt die linke Kante des Objektes konstanten Abstand zur rechten Kante des Dialoges, wenn Sie diesen vergr
  2001. ern oder verkleinern. 
  2002.  [X] gfGrowLoY  
  2003. Wenn dieser Schalter aktiviert ist, beh
  2004. lt die obere Kante des Objektes konstanten Abstand zur unteren Kante des Dialoges, wenn Sie diesen vergr
  2005. ern oder verkleinern. 
  2006.  [X] gfGrowHiX  
  2007. Wenn dieser Schalter aktiviert ist, beh
  2008. lt die rechte Kante des Objektes konstanten Abstand zur rechten Kante des Dialoges, wenn Sie diesen vergr
  2009. ern oder verkleinern. 
  2010.  [X] gfGrowHiY  
  2011. Wenn dieser Schalter aktiviert ist, beh
  2012. lt die untere Kante des Objektes konstanten Abstand zur unteren Kante des Dialoges, wenn Sie diesen vergr
  2013. ern oder verkleinern. 
  2014.  [X] Hilfekonstanten speichern  
  2015. Wenn dieser Schalter aktiviert ist, werden alle hcXXX-Konstanten in der Include-Datei '<ProjektName>HCX.INC' deklariert. <
  2016. Eine 
  2017. ltere Version dieser Datei wird dabei 
  2018. berschrieben. 
  2019.  [X] Kommandokonstanten speichern  
  2020. Wenn dieser Schalter aktiviert ist, werden alle cmXXX-Kommandokonstanten in der Include-Datei <ProjektName>CMX.INC deklariert. <
  2021. Eine 
  2022. ltere Version dieser Datei wird dabei 
  2023. berschrieben. 
  2024.  [X] Prozeduren deklarieren, "Dummys" schreiben  
  2025. Wenn dieser Schalter aktiviert ist, werden alle Prozeduren, deren Quelltext Sie 
  2026. ber einen Dialog erzeugt haben, in der Includedatei <ProjektName>PDC.INC f
  2027. r ihren Gebrauch in der Unit <ProjektName>RUN vorausdeklariert. 
  2028. Alle Prozeduren, deren Namen Sie bei der Zuordnung zu einer Befehlskonstanten verwendet haben, die aber nicht 
  2029. ber einen Dialog implementiert wurden, werden in der Datei <ProjektName>DDC.INC deklariert und in der Datei <ProjektName>DMY.INC als Messageboxen implementiert. 6
  2030. Alle drei Dateien 
  2031. berschreiben eine 
  2032. ltere Version. 
  2033.  [X] TWApplication.HandleEvent 
  2034. berschreiben  
  2035. Wenn dieser Schalter aktiviert ist, erzeugt der Wizard den Quelltext der TWApplication.HandleEvent-Methode in der Datei <ProjektName>EVH.INC. )
  2036. Eine 
  2037. ltere Version wird 
  2038. berschrieben. 
  2039.  [X] Hilfetext schreiben   
  2040. Wenn dieser Schalter aktiviert ist produziert der Wizard die Textdatei <ProjektName>HLP.TXT, die den mit TVHC zu compilierenden Hilfetext enth
  2041. lt, und erzeugt den Quelltext der Function TWStatusLine.Hint in der Datei <ProjektName>HNT.INC. e
  2042. Wenn bereits eine Hilfedatei existiert fragt der Wizard Sie zun
  2043. chst nach einem anderen Dateinamen. @
  2044. <ProjektName>HNT.INC dagegen 
  2045. berschreibt eine 
  2046. ltere Version. 
  2047.  [X] Objekttypen registrieren lassen  
  2048. 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
  2049. Der Name der Prozedur richtet sich nach dem Namen
  2050. Unit, in der die Objekte und Prozeduren deklariert werden. 3
  2051. Eine 
  2052. ltere Version der Datei wird 
  2053. berschrieben. 
  2054.  [X] Programm- und Unit-Quelltext schreiben  
  2055. Wenn dieser Schalter gew
  2056. hlt ist, schreibt der Wizard folgende Dateien: c
  2057. -Die Programmdatei, die den gleichen Namen wie die Projektdatei, allerding die Endung .PAS tr
  2058. -Die Unit, in der alle Dialoge und Prozeduren implementiert werden. Ihr Namen ergibt sich aus den ersten f
  2059. nf Buchstaben des Projektnamens und der Silbe "RUN". 
  2060. -Die Programmdatei des Ressourceneditors. Ihr Namen ergibt sich aus den ersten f
  2061. nf Buchstaben des Projektnamens und der Silbe "RES". =
  2062. Existierende Versionen dieser Dateien werden 
  2063. berschrieben. 
  2064.  Optionen zur Erzeugung eines Prototyps
  2065. Sie k
  2066. nnen den Befehl 
  2067. Projekt
  2068. Prototyp vorbereiten
  2069.  in einem Dialog konfigurieren, um nur bestimmte Vorg
  2070. nge durchf
  2071. hren zu lassen. 1
  2072.   Hilfekonstanten           Kommandokonstanten
  2073.   Prozeduren
  2074. Dummys     TWApplication.HandleEvent
  2075.   Hilfetexte
  2076. Hints      Objekttypen
  2077. registrieren
  2078.                          
  2079.                 ( X ; Y) 
  2080. Mit diesem K
  2081. stchen k
  2082. nnen Sie die Ausma
  2083. e des neuen Objektes bestimmen. Ein Druck auf die rechte Maustaste plaziert das Objekt auf dem Bildschirm, [ESC] bricht den Vorgang ab. @
  2084. Um die Gr
  2085. e zu 
  2086. ndern ziehen Sie an der rechten unteren Ecke. 
  2087. Das K
  2088. stchen k
  2089. nnen Sie verschieben, indem sie es in der oberen Zeile anklicken und bei gedr
  2090. ckter Maustaste 
  2091. ber den Bildschirm ziehen. P
  2092. Die Zahlen in der rechten unteren Ecke informieren Sie 
  2093. ber die x- und y-Ma
  2094. Beim Einf
  2095. gen von Checkboxes oder Radiobuttons bestimmt die y-Abmessung die Anzahl der einzuf
  2096. genden Schalter. Sie k
  2097. nnen diese Vorgabe allerdings in einem Eingabedialog modifizieren, indem Sie beim Druck der rechten Maustaste die Strg-Taste dr
  2098. cken. Turbo Vision plaziert die Schalter dann n
  2099. tigenfalls nebeneinander. =
  2100. Es sind maximal 16 Checkboxes bzw. 32 Radiobuttons erlaubt. U
  2101.                                                                             -
  2102.  Suchpfade
  2103. Sie k
  2104. nnen die Suchpfade zum Compiler und Debugger in einem Dialog bestimmen. 
  2105. Compiler
  2106.                  
  2107. Geben Sie hier den vollst
  2108. ndigen Pfad zum einzubindenden Kommandozeilen-Compiler ein, inklusive Dateinamen und erweiterung. 
  2109. Units
  2110.               
  2111. Geben Sie hier den Pfad zu den Turbo Vision Units ein. 
  2112. Debugger
  2113.                  
  2114. Geben Sie hier den kompletten Suchpfad zum einzubindenden Debugger ein, inklusive Dateinamen und Erweiterung. 
  2115.               
  2116. Geben Sie hier den kompletten Pfad zum Hilfecompiler TVHC ein, inklusive Dateinamen und Erweiterung. 
  2117. Compiler-Optionen
  2118.                           
  2119. Geben Sie hier die Parameter f
  2120. r die Kommandozeile des Compilers ein. 
  2121.  Projekt
  2122. Compilieren
  2123. Dieser Befehl ruft den Kommandozeilencompiler BPC bzw. TPC und den Hilfecompiler TVHC auf, um den Prototypen, den Ressourceneditor und den Hilfetext zu compilieren. Y
  2124. Die Suchpfade zu diesen Programmen m
  2125. ssen Sie unter "Optionen
  2126. Suchpfade..." einstellen. 
  2127. Dieser Befehl ist nur in der registrierten Vollversion verf
  2128. gbar, die im 286-Protected Mode l
  2129. uft und daher gen
  2130. gend Speicher f
  2131. r diese Programme zur Verf
  2132. gung stellen kann. 
  2133.  Projekt
  2134. Dieser Befehl startet zun
  2135. chst den Ressourceneditor, dann bei fehlerfreiem Ablauf den Prototypen. 
  2136. Dieser Befehl ist nur in der registrierten Vollversion verf
  2137. gbar, die im 286-Protected Mode l
  2138. uft und daher gen
  2139. gend Speicher f
  2140. r diese Programme zur Verf
  2141. gung stellen kann. 
  2142.  Projekt
  2143. Debug
  2144. Dieser Befehl startet den Turbo Debugger mit dem Prototypen. V
  2145. Den Suchpfad zu diesem Programm m
  2146. ssen Sie unter "Optionen
  2147. Suchpfade..." einstellen. 
  2148. Dieser Befehl ist nur in der registrierten Vollversion verf
  2149. gbar, die im 286-Protected Mode l
  2150. uft und daher gen
  2151. gend Speicher f
  2152. r dieses Programm zur Verf
  2153. gung stellen kann. 
  2154. ) Version 1.0  
  2155. Wenn Dieser Schalter gew
  2156. hlt ist erzeugt der Wizard Quelltext f
  2157. r die Verwendung mit der Turbo Vision Version 1.0, die zum Umfang von Turbo Pascal 6.0 geh
  2158. Siehe auch Version
  2159. ) Version 2.0  
  2160. Wenn Dieser Schalter gew
  2161. hlt ist erzeugt der Wizard Quelltext f
  2162. r die Verwendung mit der Turbo Vision Version 2.0, die zum Umfang von Turbo bzw. Borland Pascal 7.0 geh
  2163. Modale Dialoge werden nicht mit der Funktion "ExecView()" sondern mit "ExecuteDialog()", nicht-modale Dialoge nicht mit "DeskTop^.Insert()" sondern mit "Application^.InsertWindow()" eingef
  2164. Diese Schalterstellung erm
  2165. glicht (in der Vollversion) au
  2166. erdem die Verwendung von TValidator-Objekten zusammen mit Eingabezeilen und von Schalterfeldern des Typs TMultiCheckBoxes. 
  2167.  [X] x-Zentriert   
  2168. Wenn dieser Schalter gew
  2169. hlt ist, wird das Bit ofCenterX im Feld Options gesetzt und der Dialog beim Einf
  2170. gen in x-Richtung zentriert. 
  2171.  [X] y-Zentriert   
  2172. Wenn dieser Schalter gew
  2173. hlt ist, wird das Bit ofCenterY im Feld Options gesetzt und der Dialog beim Einf
  2174. gen in y-Richtung zentriert. 
  2175.  Fehlermeldungen
  2176. Beim Compilieren eines Prototypen kann es zu Fehlern kommen, wenn bestimmte Dateien nicht geschrieben wurden, die in den Programmdateien 
  2177. ber Include-Anweisungen eingebunden werden, oder Prozeduren doppelt geschrieben wurden. 
  2178. Hier die h
  2179. ufigsten Ursachen: 
  2180. <ProjektName>TYP.INC fehlt, wenn kein neuer Dialog-Objekttyp oder globaler Recordtyp deklariert wurde. L
  2181. schen Sie einfach die Includeanweisungen oder besser: f
  2182. gen Sie zwischen der geschweiften Klammer und dem $I ein Leerzeichen ein. q
  2183. <ProjektName>MNU.INC oder <ProjektName>STL.INC fehlen, da kein Men
  2184.  bzw. keine Statuszeile konstruiert wurden. D
  2185. Sie sollten diese Konstruktionen allerdings unbedingt durchf
  2186. hren! 
  2187. Sie haben zwei verschiedene Men
  2188. balken oder zwei verschiedene Statuszeilen im Ressourceneditor konstruiert. F
  2189. r Men
  2190. s kann dies durchaus sinnvoll sein - Turbo Wizard selbst f
  2191. hrt die Verwendung mehrerer Men
  2192. balken vor - allerdings m
  2193. ssen Sie selbst in der Datei <ProjektName>RES.INC daf
  2194. r sorgen, da
  2195.  die Prozedur "MakeMenuBar" bzw. "MakeStatusLine" nicht zweimal unter dem gleichen Namen auftaucht - und die Objekte unter unterschiedlichen Namen in der Ressource gespeichert werden. V
  2196.                                                                              -
  2197.  TValidator
  2198. Turbo Vision 2.0 f
  2199. hrt TValidator-Objekte (und ein paar Nachfahren) ein, die mit einer Eingabezeile verbunden werden k
  2200. nnen und Methoden besitzen, um die G
  2201. ltigleit einer Eingabe zu 
  2202. berpr
  2203. fen. 
  2204. Der Wizard unterst
  2205. tzt alle bereits in TV 2.0 deklarierten Typen und erlaubt au
  2206. erdem die Angabe eines eigenen Typbezeichners. P
  2207. Sie installieren einen Validator vom Eigenschaftendialog der Eingabezeile aus. +
  2208.  TFilterValidator        TRangeValidator
  2209.  TPXPictureValidator     TStringLookupValidator
  2210.  Selbstdefinierte
  2211. Typen
  2212.                                                                               -
  2213. ) keiner  
  2214. In dieser Schalterstellung wird kein Validatorobjekt installiert. Sie k
  2215. nnen diese Stellung auch benutzen, um ein Validierungsobjekt zu l
  2216. schen. 
  2217. ) TFilterValidator  
  2218. Ein TFilterValidator erlaubt die Angabe einer einer Menge von erlaubten Zeichen. Alle anderen Eingaben werden nicht akzeptiert. 
  2219. Die Eingabe der erlaubten Zeichen erfolgt im Wizard in einem einfachen Dialog, in dem Sie gem
  2220.  den Pascal-Konventionen eine Menge spezifizieren. Dabei k
  2221. nnen Sie auch die Mengenoperatoren '+', '-' und '*' benutzen. 
  2222. Beispiele: *
  2223.  ['0'..'9']         ['a'..'z', 'A'..'Z']
  2224.  ['A'..'z']+['
  2225.  [#32..#166]
  2226. Der TFilterValidator ist im Gegensatz zu allen anderen Validatoren innerhalb des Wizard nicht funktional. U
  2227.                                                                               -
  2228. ) TRangeValidator  
  2229. Ein TRangeValidator erlaubt lediglich die Eingabe ganzer Zahlen und 
  2230. berpr
  2231. ft, ob die eingegebene Zahl innerhalb der spezifizierten Grenzen liegt. 
  2232. Dieses Validator-Objekt kann den Datentransfer f
  2233. r die Eingabezeile 
  2234. 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. 
  2235. Der Wizard erzeugt den entsprechenden Quelltext, um diese Option zu nutzen und 
  2236. ndert den Eintrag im Datenrecord f
  2237. r die Eingabezeile auf "LongInt". 
  2238. ) TPXPictureValidator  
  2239. Ein TPXPictureValidator vergleicht die Eingabe mit einer Maske, deren Elemente den Maskenelementen der relationalen Datenbank Paradox von Borland entsprechen. 
  2240. ) TStringLookupValidator  
  2241. Dieser Validatortyp 
  2242. berpr
  2243. ft die Eingabe auf Enthaltensein in einer Liste von Strings. 
  2244. Der Wizard l
  2245. t Sie diese Strings eingeben und erzeugt den entsprechenden Quelltext. Dieser ist zugegebenerma
  2246. en ein wenig kryptisch, da er ein bis zwei Typumwandlungen enth
  2247. ) Selbstdefinierter Typ  
  2248. hlen Sie diese Einstellung, wenn Sie einen direkt von TValidator abgeleiteten Typen installieren m
  2249. chten. 
  2250. Spezifizieren Sie den Typ in der Eingabezeile "Typangabe" und erg
  2251. nzen Sie im Quelltext die Parameter f
  2252. r den Constructor Init. 
  2253.  Paradox Maskenelemente
  2254. Platzhalter 
  2255.  # : akzeptiert nur eine Ziffer
  2256.  ? : akzeptiert nur einen Buchstaben
  2257.  & : akzeptiert nur einen Buchstaben, der in
  2258.      einen Gro
  2259. buchstaben umgewandelt wird
  2260. Zeichen N
  2261.  ! : akzeptiert jedes Zeichen und wandelt
  2262.      kleine in gro
  2263. e Buchstaben um
  2264. Sonderzeichen X
  2265.  ;  : 
  2266. bernimmt das n
  2267. chste Zeichen unver
  2268. ndert
  2269.  *  : Wiederholungsz
  2270.  [] : Option
  2271. Alle anderen Zeichen werden unver
  2272. ndert 
  2273. bernommen. v
  2274. Wenn die Option "AutoFill" gew
  2275. hlt ist, werden solche Zeichen (z.B. Trennstriche oder Punkte) automatisch eingef
  2276. gt. U
  2277.                                                                              -
  2278.  [X] Autofill   
  2279. Wenn dieser Schalter aktiviert ist, werden F
  2280. llzeichen wie z.B. Datumspunkte, Trennstriche oder auch ganze W
  2281. rter automatisch eingef
  2282. gt, sobald der ihnen vorhergehende Teil der Maske vollst
  2283. ndig ausgef
  2284. llt wurde. 
  2285. Typangabe
  2286.                   
  2287. Geben Sie hier den Zeigertyp an, wenn Sie einen abgeleiteten Typen installieren m
  2288. chten. 
  2289. Der vom Wizard benutzte Constructor h
  2290. ngt davon ab, welchen Ausgangstypen Sie im Schalterfeld der Validatortypen markiert haben. 
  2291.  [X] Eigene Dateien anlegen           
  2292. Wenn diese Option gew
  2293. hlt ist, werden bei der Quelltexterzeugung NICHT die Standarddateien <ProjektName>PRC.INC, <ProjektName>RES.INC und <ProjektName>TYP.INC genutzt. 
  2294. Stattdessen legt der Wizard abh
  2295. ngig davon, ob Sie eine Ressource verwenden m
  2296. chten und einen neuen Dialogtypen deklarieren, bis zu vier Dateien neu an (bzw. 
  2297. berschreibt existierende Versionen) deren Namen sich nach dem Prozedurnamen bzw. dem Typenbezeichner richten. 
  2298. Diese Schalterstellung ist hilfreich und sinnvoll, wenn die M
  2299. glichkeit besteht, da
  2300.  Sie das Layout oder andere Eigenschaften des Dialoges nachtr
  2301. glich ver
  2302. ndern m
  2303. ssen. Da alle Dateien neu erzeugt werden, wird die Gefahr eines "Duplicate Identifier"-Compilerfehlers verringert. 
  2304. Andererseits werden nat
  2305. rlich auch alle 
  2306. nderungen, die Sie selbst in einer solchen Datei vornehmen, 
  2307. berschrieben, und die Zahl der in ein Projekt eingebundenen, z.T. sehr kleinen Dateien kann betr
  2308. chtlich ansteigen. 
  2309.  Dateinamen bei Dialogen mit eigenen Dateien
  2310. r Dialoge, deren Quelltext mit der Option "Eigene Dateien erstellen" erzeugt wird, legt der Wizard folgende Dateien neu an: @
  2311. <ProzedurName>.INP   : Die Prozedur, die den Dialog einf
  2312. <ProzedurName>.INR   : Die Prozedur, die die Ressource erzeugt.
  2313. <DialogTyp>.INT      : Die Deklaration des Objekttypen.
  2314. <DialogTyp>.INO      : Die Implementation der Methoden eines neuen Typen.
  2315. Dadurch ist es einerseits m
  2316. glich, Dialoge und Prozeduren zu 
  2317. berschreiben, ohne selbst in den "Sammeldateien" die alten Versionen l
  2318. schen zu m
  2319. ssen. 
  2320. Andererseits kann die Anzahl der an einem Projekt beteiligten Dateien stark steigen, was zu Un
  2321. bersichtlichkeiten f
  2322. hren kann und zus
  2323. tzlichen Festplattenspeicher kostet. 
  2324. nde (States)
  2325.                           
  2326. Geben Sie hier die Zeichen ein, die die unterschiedlichen Zust
  2327. nde der Schalter markieren sollen. i
  2328. Der Wizard nimmt daraufhin alle notwendigen internen Einstellungen f
  2329. r das TMultiCheckboxes-Objekt vor: A
  2330. Das Feld States (PString) wird mit diesem String aktualisiert. =
  2331. Das Feld SelRange (Byte) wird auf Length(States^) gesetzt. y
  2332. Das Feld Flags (Word) wird mit derjenigen cfXXXX-Konstante belegt, die der Zahl der angeforderten Zust
  2333. nde entspricht. 7
  2334. Die Zahl
  2335. Schalter wird direkt von der Anzahl der Zust
  2336. nde beeinflusst. Sie k
  2337. nnen direkt kontrollieren, ob Sie innerhalb des erlaubten Bereiches sind, indem Sie den letzten Schalter bet
  2338. tigen. Falls Sie zuviele Schalter installiert haben, wird sich diese Aktion gleich auf mehrere Schaltfl
  2339. chen auswirken. 
  2340.  cfXXXX-Konstanten
  2341. Die cfXXXX-Konstanten stellen Bitmasken dar, die die Interpretation des Datenfeldes eines TMultiCheckBoxes-Objektes bestimmen. Sie werden im Feld Flags gespeichert. 
  2342. 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
  2343. nde fest. 
  2344.  cfOneBit   : 32 Schalter,   2 Zust
  2345.  cfTwoBits  : 16 Schalter,   4 Zust
  2346.  cfFourBits :  8 Schalter,  16 Zust
  2347.  cfEightBits:  4 Schalter, 255 Zust
  2348.  Projekt
  2349. Datei
  2350. bersicht...
  2351. Dieser Men
  2352. befehl ruft einen nichtmodalen Dialog auf, der Listen der in einem Projekt verwendeten Includedateinen enth
  2353. lt. V
  2354. Sie k
  2355. nnen hier einzelne Dateien l
  2356. schen, die Sie aus dem Projekt entfernen m
  2357. chten. 
  2358.  Projekt
  2359. Warnungen
  2360. 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
  2361. r diesen Dialog in einer Datei erzeugen. 
  2362. Mit diesem Men
  2363. befehl k
  2364. nnen Sie sich eine Liste dieser Vorkommen anzeigen lassen und somit 
  2365. berpr
  2366. fen, welche Units Sie noch in das Projekt aufnehmen m
  2367. ssen um eine fehlerfreie Compilierung durchf
  2368. hren zu lassen. 
  2369.  Objekte
  2370. MultiCheckBoxes
  2371. Mit diesem Befehl f
  2372. gen Sie ein neues Feld vom Typ TMultiCheckBoxes in den aktiven Dialog ein. 
  2373. Wie bei allen anderen Schaltertypen auch k
  2374. nnen Sie die Zahl der Schalter, die sich zun
  2375. chst aus der H
  2376. he des Feldes bestimmt, 
  2377. ndern, indem Sie beim Einf
  2378. gen (Dr
  2379. cken der rechten Maustaste) die STRG-Taste niederhalten. 
  2380.  Objekte
  2381. ListViewer
  2382. Mit diesem Befehl f
  2383. gen Sie ein neues Objekt vom Typ TListViewer in den aktiven Dialog ein. D
  2384. Im Gegensatzt zu TListBox unterst
  2385. tzt TListViewer zwei Rollbalken. 
  2386.  TListViewer
  2387. TListViewer ist ein Basisobjekt, da
  2388.  lediglich ein paar grunds
  2389. tzliche Methoden f
  2390. r spezialisiertere Nachkommen zur Verf
  2391. gung stellt. C
  2392. Sie werden den Typ des einzuf
  2393. genden Objektes i.a. 
  2394. ndern m
  2395. ssen. D
  2396. Im Gegensatzt zu TListBox unterst
  2397. tzt TListViewer zwei Rollbalken. 
  2398.  Objekte
  2399. Application
  2400. Dieser Befehl l
  2401. t Sie die TWApplication.HandleEvent-Methode modifizieren. p
  2402. Die M
  2403. glichkeiten, Befehls/Prozedurzuweisungen vorzunehmen und zu konfigurieren sind 
  2404. hnlich wie bei Dialogen. 
  2405.  Optionen
  2406. Ziel SCREEN/DISK
  2407. Mit diesem Befehl k
  2408. nnen Sie bestimmen, ob Sie die Quelltexterzeugung "endg
  2409. ltig" in einer Datei vornehmen oder zun
  2410. chst probeweise auf den Bildschirm umleiten lassen wollen. ]
  2411. Die Einstellung SCREEN erlaubt Ihnen eine einfache und schnelle Kontrolle des Ergebnisses.  
  2412.  Optionen
  2413. Turbo Vision  V 1.0/2.0
  2414. Dieser Schalter gibt vor, ob der Wizard Quelltext f
  2415. r die Turbo Vision Version 1.0 (Turbo Pascal 6.0) oder 2.0 (Turbo bzw. Borland Pascal 7.0) erzeugen soll. y
  2416. Turbo Vision 1.0 Quelltext kann von den 7er Compilerversionen benutzt werden, andersherum besteht keine Kompatibilit
  2417. TValidator und Nachfahren sowie TMultiCheckBoxes stehen nur f
  2418. r Version 2.0 zur Verf
  2419. gung. 
  2420.  Optionen
  2421. Laden...
  2422. Mit diesem Befehl k
  2423. nnen Sie eine Konfigurationsdatei (*.CFG) laden.  x
  2424. Eine solche Datei enth
  2425. lt Informationen 
  2426. ber das Projekt sowie die wichtigsten Einstellungen der Entwicklungsumgebung. 
  2427.  Optionen
  2428. Speichern...
  2429. Mit diesem Befehl k
  2430. nnen Sie die aktuellen Einstellungen in einer Konfigurationsdatei speichern (*.CFG). x
  2431. Eine solche Datei enth
  2432. lt Informationen 
  2433. ber das Projekt sowie die wichtigsten Einstellungen der Entwicklungsumgebung. 
  2434.  Optionen
  2435. Hotkeys editieren...
  2436. Mit diesem Befehl k
  2437. nnen Sie den Men
  2438. befehlen Tastenk
  2439. rzel zuweisen und so den Wizard nach Ihren eigenen Vorlieben konfigurieren. :
  2440. Diese Funktion ist nur in der Vollversion implementiert. 
  2441.  Optionen
  2442. Hotkeys laden...
  2443. Mit diesem Befehl k
  2444. nnen Sie die Zuweisungen von Tastenk
  2445. rzeln an Men
  2446. befehle aus einer Datei laden. :
  2447. Diese Funktion ist nur in der Vollversion implementiert. 
  2448.  Optionen
  2449. Hotkeys speichern...
  2450. Mit diesem Befehl k
  2451. nnen Sie die Zuweisungen von Tastenk
  2452. rzeln an Men
  2453. befehle in einer Datei speichern. :
  2454. Diese Funktion ist nur in der Vollversion implementiert. 
  2455.  Bearbeiten
  2456. Clipboard zeigen
  2457. Mit diesem Befehl k
  2458. nnen Sie sich den Inhalt der Zwischenablage anzeigen lassen, um zuvor kopierte Textpassagen erneut ausw
  2459. hlen zu k
  2460. nnen. 
  2461.  Desktop
  2462. Fenster nebeneinander
  2463. Dieser Befehl ordnet alle Textfenster des Desktops nebeneinander an. 
  2464.  Desktop
  2465. berlappend
  2466. Dieser Befehl ordnet alle Textfenster f
  2467. cherartig hintereinander an. 
  2468.  Prozeduren
  2469. Diese Dateien enthalten die Implementationen von Prozeduren, die Dialoge in den Desktop einf
  2470. gen. v
  2471. Sie k
  2472. nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
  2473. schen, um ihre Aufnahme ins Projekt zu verhindern. 
  2474.  Objekte
  2475. Diese Dateien enthalten die Implementationen der zu 
  2476. berschreibenden Objektmethoden Load, Store, Init und HandleEvent. v
  2477. Sie k
  2478. nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
  2479. schen, um ihre Aufnahme ins Projekt zu verhindern. 
  2480.  Deklarationen
  2481. Diese Dateien enthalten die Deklarationen von neuen Dialogtypen, global deklarierten Records und Prozeduren. v
  2482. Sie k
  2483. nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
  2484. schen, um ihre Aufnahme ins Projekt zu verhindern. 
  2485.  Ressourcen
  2486. Diese Dateien enthalten die Implementationen der Prozeduren, die im Ressourcenediteor Dialogobjekte erzeugen und zur sp
  2487. teren Verwendung im Programm in einer Ressourcendatei speichern. v
  2488. Sie k
  2489. nnen mit der ENTF-Taste einzelne Dateien aus dieser Liste l
  2490. schen, um ihre Aufnahme ins Projekt zu verhindern. 
  2491.   Validator installieren...  
  2492. Durch Bet
  2493. tigung dieses Knopfes gelangen Sie in das Auswahlmen
  2494. r Validatoren, die Sie direkt mit dieser Eingabezeile verbinden k
  2495. nnen. 
  2496.   Kommandokonstanten/Prozedurzuweisungen editieren  
  2497. Dieser Knopf 
  2498. ffnet einen Dialog, der alle zur Zeit f
  2499. r den aktuellen Dialog relevanten Eintr
  2500. ge in die HandleEvent-Methode auflistet. 
  2501.  Eintr
  2502. In dieser Liste sehen Sie alle aktuellen Kommando-Prozedur- Zuweisungen, wie sie in der HandleEvent-Methode aufgef
  2503. hrt werden. K
  2504. Sie k
  2505. nnen mit der ENTF-Taste einzelne Eintr
  2506. ge aus dieser Liste l
  2507. schen. W
  2508. Wenn Sie eine Zuweisung editieren m
  2509. chten m
  2510. ssen Sie zun
  2511. chst diesen Eintrag l
  2512. schen. 
  2513.   Neuen Befehl 
  2514. bernehmen  
  2515. Dieser Knopf 
  2516. bernimmt die letzte Eingabe in den Event-Handler und schlie
  2517. t den Dialog. 
  2518. ) nur vorher  
  2519. Wenn dieser Schalter gesetzt ist, wird das Kommando vor der geerbten HandleEvent-Methode abgefangen und der Eventrecord mit ClearEvent als bereits bearbeitet markiert. 
  2520. ) beide Methoden  
  2521. Wenn diese Schalterstellung gew
  2522. hlt ist wir das Kommando vor der geerbten HamdleEvent-Methode bearbeitet, der Eventrecord aber nicht mit ClearEvent(Event) als bearbeitet markiert, so da
  2523.  auch die geerbte HandleEvent- Methode das Kommando bearbeiten kann. 
  2524. ) nur nachher  
  2525. Diese Schalterstellung bewirkt, da
  2526.  das Kommando nach Aufruf der geerbten HandleEvent-Methode bearbeitet wird. 
  2527. Minimalwert
  2528.                   
  2529. Der Wert, den die Eingabe nicht unterschreiten darf. 
  2530. Maximalwert
  2531.                   
  2532. Der Wert, den die Eingabe nicht 
  2533. berschreiten darf. 
  2534. Strings
  2535.                   
  2536. In dieser Eingabezeile k
  2537. nnen Sie die Strings eingeben, sie in dieser Zeile eingegeben werden d
  2538. rfen. Um einen String zu 
  2539. bernehmen mu
  2540.  er mit RETURN best
  2541. tigt werden. 
  2542.  Strings
  2543. Diese Liste enth
  2544. lt die erlaubten Strings. Sie k
  2545. nnen einen String mit RETURN zur Bearbeitung in die Eingabezeile laden und mit ENTF l
  2546. schen. 
  2547.  Eigene Units einbinden...
  2548. Der Men
  2549. befehl "Projekt
  2550. 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. 
  2551. Unit <ProjectName>RUN
  2552.                               
  2553. Der String in dieser Eingabezeile wird in die "uses"-Anweisung im Interface der Unit <ProjectName>RUN.PAS aufgenommen. 1
  2554. Trennen Sie mehrere Units durch ein Komma, z.B. !
  2555.  OwnProcs, MyProcs, MyFunctions
  2556. Programm <ProjectName>
  2557.                                
  2558. Der String in dieser Eingabezeile wird in die "uses"-Anweisung im Interface des Programmes <ProjectName>.PAS aufgenommen. 1
  2559. Trennen Sie mehrere Units durch ein Komma, z.B. !
  2560.  OwnProcs, MyProcs, MyFunctions
  2561. Procedures
  2562.                     
  2563.                     
  2564.                     
  2565.                     
  2566.                     
  2567. In dieser Liste werden alle Prozedurnamen aufgef
  2568. hrt, die Sie bisher deklariert haben. 
  2569. Prozeduren, die mit einem H
  2570. kchen markiert sind, wurden bereits als Prozeduren implementiert, die einen Dialog in den Desktop einf
  2571. gen. o
  2572. Prozeduren, die Sie aus einer eigenen
  2573. Unit importieren m
  2574. chten, werden mit "EXT" f
  2575. r "extern" gekennzeichnet. j
  2576. Sie k
  2577. nnen in dieser Liste eine Prozedur als externe Prozedur kennzeichnen, indem Sie den Bezeichner ausw
  2578. hlen und [ALT-Leertaste] bet
  2579. tigen. Wenn Sie nun einen Prototypen vorbereiten lassen, unterbleibt f
  2580. r derartig gekennzeichnete Prozeduren eine Dummy-Deklaration. Dies ist nat
  2581. rlich nur f
  2582. r bisher nicht implementierte Prozeduren ("ohne H
  2583. kchen") sinnvoll. 
  2584. Wenn Sie in dieser Liste eine Prozedur anw
  2585. hlen und die ENTF-Taste bet
  2586. tigen, wird diese Prozedur und alle Bezugnamen auf diese Prozedur in der HandleEvent-Methode der Application gel
  2587. scht. 
  2588. Handelt es sich um eine bereits implementierte Prozedur, so werden durch den n
  2589. chsten Aufruf von "Prototyp vorbereiten" auch die entsprechenden Includedateien aus dem Quelltext entfernt. T
  2590.                                                                               -
  2591.  Datei
  2592. DOS aufrufen
  2593. Dieser Befehl bringt Sie zur Eingabeaufforderung des Betriebssystems, dem gef
  2594. rchteten Dosprompt. 
  2595.