Unit GvWinDlg

Diese Graphics-Vision-Unit ermöglicht Ihnen das Laden von
Dialogfenstervorlagen aus Windows-Ressourcen. Dadurch können Sie
beliebig komplexe Dialogfenster z.B. im Resource Workshop designen,
anstatt sie mit hohem Aufwand direkt zu programmieren.

Um Windows-Dialogelemente verwenden zu können, deren Konzept
von Turbo Vision abweicht, definiert diese Unit einige neue
Objekttypen.

TSingleCluster
TRadioButton
TCheckBox
T3StateBox
TRectangle
TWinLabel
TLevel
TPassInputLine
TWinDialog

Die Unit GvWinDlg verwendet die Mechanismen der Unit WinRes
zum Laden eines Dialogfensters. Das bedeutet, daß am Anfang mittels
InitClasses die Klassenverwaltung initialisiert werden muß.

Durch einen Aufruf von RegisterGvWinDlg erfolgt
sowohl die Stream-Registrierung der neuen Objekttypen als auch die
Registrierung der Standard-Dialog- und Element-Klassen. Folgende Tabelle
zeigt die hergestellte Zuordnung von Klassen zu Erzeugungsprozeduren.


Klasse Erzeugungsprozedur Kommentar
------------ ------------------ ----------------------------------
nil InitDialog Gewöhnlicher Windows-Dialog
cl_Button InitButton Diverse Schalterklassen
cl_Static InitStatic Statischer Text oder Graphik
cl_Listbox InitListbox Listbox
cl_Combobox InitCombobox Eingabezeile mit Listbox
cl_Scrollbar InitScrollbar Scrollbar
'BorDlg' InitBorDlg Dialog im Borland-Stil
'BorCheck' InitButton Checkbox im Borland-Stil
'BorRadio' InitButton Radiobutton im Borland-Stil
'BorShade' InitBorShade Schattierung im Borland-Stil
'BorBtn' InitBorBtn Schalter im Borland-Stil
'BorStatic' InitStatic Statische Elemente im Borland-Stil


Um neue Klassen zu definieren, verwenden Sie die Prozedur RegisterClass.
Entsprechend können Sie durch Redefinition auch die bereits definierten
Klassen verändern. GvWinDlg enthält auch eine Bibliothek von
Hilfsfunktionen, die dies erleichtern.

SetupInfo
GetDialogRect
GetControlRect
XlatCmd
InsertControl
SplitRectCB
SplitRectSB
NilStrPas
AccessResource
UnaccessResource
InitWinDialog
LinkLabel
LinkIcon
WakeDialog

Häufig wollen Sie einen Dialog abgeleiteten Typs laden. Für jeden Typ
eine Klasse zu definieren, erscheint zu aufwendig. Deshalb gibt es
die Variable DialogTemplate, in der Sie eine Dialog-Vorlage
für den gewünschten Typ abspeichern können. Anstelle eines Standard-Typs
wird dann dieser verwendet.