                                  - TOC-   1 -





 Unit GvWinDlg ........................................................      1
 DialogTemplate-Variable  (Unit GvWinDlg) .............................      2
 TSingleCluster-Objekt  (Unit GvWinDlg) ...............................      2
 TSingleCluster.Group-Feld ............................................      3
 TSingleCluster.Init-Konstruktor ......................................      3
 TRadioButton-Objekt  (Unit GvWinDlg) .................................      3
 T3StateBox.Init-Kontruktor ...........................................      4
 TCheckBox.Init-Konstruktor ...........................................      4
 TRadioButton.Init-Konstruktor ........................................      4
 T3StateBox-Objekt  (Unit GvWinDlg) ...................................      4
 TCheckBox-Objekt  (Unit GvWinDlg) ....................................      4
 TRectangle-Objekt  (Unit GvWinDlg) ...................................      4
 TRectangle.Color-Feld ................................................      5
 TRectangle.Init-Konstruktor ..........................................      5
 TRectangle.IsFilled-Feld .............................................      5
 TLevel-Objekt  (Unit GvWinDlg) .......................................      5
 TWinLabel-Objekt  (Unit GvWinDlg) ....................................      5
 TLevel.Height-Feld ...................................................      6
 TLevel.Init-Konstruktor ..............................................      6
 TPassInputLine-Objekt  (Unit GvWinDlg) ...............................      6
 TWinDialog-Objekt  (Unit GvWinDlg) ...................................      6
 TWinDialog.GetControl-Funktion .......................................      7
 TWinDialog.GetHelpCtx-Funktion .......................................      7
 TWinDialog.GrayBack-Feld .............................................      7
 TWinDialog.Init-Konstruktor ..........................................      7
 InitDialog-Prozedur  (Unit GvWinDlg) .................................      7
 TWinDialog.RawInit-Konstruktor .......................................      7
 InitBorDlg-Prozedur  (Unit GvWinDlg) .................................      8
 InitButton-Prozedur  (Unit GvWinDlg) .................................      8
 InitStatic-Prozedur  (Unit GvWinDlg) .................................      8
 InitCombobox-Prozedur  (Unit GvWinDlg) ...............................      9
 InitEdit-Prozedur  (Unit GvWinDlg) ...................................      9
 InitListBox-Prozedur  (Unit GvWinDlg) ................................      9
 AccessResource-Funktion  (Unit GvWinDlg) .............................     10
 GetControlRect-Prozedur  (Unit GvWinDlg) .............................     10
 InitBorBtn-Prozedur  (Unit GvWinDlg) .................................     10
 InitBorShade-Prozedur  (Unit GvWinDlg) ...............................     10
 InitScrollbar-Prozedur  (Unit GvWinDlg) ..............................     10
 RegisterGvWinDlg-Prozedur  (Unit GvWinDlg) ...........................     10
 GetDialogRect-Prozedur  (Unit GvWinDlg) ..............................     11
 InitWinDialog-Prozedur  (Unit GvWinDlg) ..............................     11
 InsertControl-Funktion  (Unit GvWinDlg) ..............................     11
 LinkIcon-Prozedur  (Unit GvWinDlg) ...................................     11
 LinkLabel-Prozedur  (Unit GvWinDlg) ..................................     12
 NilStrPas-Funktion  (Unit GvWinDlg) ..................................     12
 SetupInfo-Prozedur  (Unit GvWinDlg) ..................................     12
 SplitRectCB-Prozedur  (Unit GvWinDlg) ................................     12
 SplitRectSB-Prozedur  (Unit GvWinDlg) ................................     12
 WakeDialog-Prozedur  (Unit GvWinDlg) .................................     12
 UnaccessResource-Prozedur  (Unit GvWinDlg) ...........................     13
 XlatCmd-Funktion  (Unit GvWinDlg) ....................................     13






                                  - TOC-   1 -
                                    -    1 -






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

Um Windows-Dialogelemente verwenden zu knnen, 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          Gewhnlicher 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 knnen Sie durch Redefinition auch die bereits definierten
Klassen verndern. GvWinDlg enthlt auch eine Bibliothek von
Hilfsfunktionen, die dies erleichtern.

 SetupInfo



                  gvwindlg, Page #   1   Date 22-7-1996 Monday
                                    -    2 -





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

Hufig wollen Sie einen Dialog abgeleiteten Typs laden. Fr jeden Typ
eine Klasse zu definieren, erscheint zu aufwendig. Deshalb gibt es
die Variable DialogTemplate, in der Sie eine Dialog-Vorlage
fr den gewnschten Typ abspeichern knnen. Anstelle eines Standard-Typs
wird dann dieser verwendet.

DialogTemplate-Variable  (Unit GvWinDlg)
 
 Deklaration:

const
  DialogTemplate: PWinDialog = nil;

Speichern Sie in dieser Variablen eine Instanz eines abgeleiteten
Dialogtyps, bevor Sie LoadDialog aufrufen. Anstatt
einer neuen Instanz eines TWinDialog-Objektes wird dann
die hier abgelegte Instanz verwendet, auf die bentigte Gre gebracht
und mit anderen Attributen versehen.

Sie knnen den RawInit-Konstruktor verwenden,
um die Instanz zu initialisieren.

Nach Ausfhrung von LoadDialog ist der Wert dieser Variablen wieder NIL.

TSingleCluster-Objekt  (Unit GvWinDlg)
 
Dieses abstrakte Objekt ist ein Nachfolger von
TMultiCheckBoxes. Es bildet die Grundlage fr
einzelne, beliebig positionierbare Schaltfelder, die durch
Gruppierung in der Z-Ordnung zusammengeschaltet werden knnen.
Sie werden dieses Objekt nicht direkt verwenden mssen, sondern
eher einen seiner Nachfolger.

 Felder:

 Group

 Methoden:

 Init
 Load
 DataSize
 GetData



                  gvwindlg, Page #   2   Date 22-7-1996 Monday
                                    -    3 -





 GetItemRect
 Go
 HandleEvent
 NextBtn
 PrevBtn
 SetData
 Store

 Siehe auch:

 TRadioButton
 TCheckBox
 T3StateBox

TSingleCluster.Group-Feld
 
 Deklaration:
Group: Boolean;

Ist dieses Feld TRUE, so arbeitet das Schaltfeld als Datenserver
fr die in der Z-Ordnung folgenden Schaltfelder gleichen Typs.

Dadurch verhlt sich eine Menge von TSingleCluster-Objekten
bei GetData, SetData und DataSize zusammen genau so
wie ein herkmmliches TCluster-Objekt.

Wenn Sie also Schaltfelder zu einer Einheit zusammenschalten wollen,
mu das erste Schaltfeld ein gesetztes, alle anderen ein gelschtes
Group-Flag tragen.

TSingleCluster.Init-Konstruktor
 
 Deklaration:

    constructor Init(var Bounds: TRect; Text: string;
      ASelNum: Byte; AFlags: Word;
      AStates: pointer; AGroup: Boolean);

Die Parameter Bounds, ASelNum, AFlags und AStates
werden an TMultiCheckboxes.Init weitergereicht,
um das Objekt zu initialisieren.

Es wird ein einziger Eintrag erzeugt, indem der Text verwendet wird.
Der Parameter AGroup wird dem Feld Group zugewiesen.

TRadioButton-Objekt  (Unit GvWinDlg)
 
Dieses Objekt ist Nachfolger von TSingleCluster.
Wenn Sie mehrere dieser Objekte zusammenschalten, so zeigen sie
gemeinsam ein Verhalten wie ein TRadioButtons-Objekt.

 Methoden:

 Init
 DrawItem
 GetData
 GetIconNum
 Go
 Mark



                  gvwindlg, Page #   3   Date 22-7-1996 Monday
                                    -    4 -





 Press
 SetData

TRadioButton.Init-Konstruktor
 
 Deklaration:
constructor Init(var Bounds: TRect; Text: string; AGroup: Boolean);

Initialisiert einen einzelnen RadioButton-Eintrag. Bounds gibt
die Koordinaten an und Text den Titel des Eintrags.

Setzen Sie AGroup TRUE fr den ersten Eintrag einer RadioButton-Gruppe,
fr alle anderen FALSE. Dann verhalten sich die Objekte gemeinsam so
wie ein TRadioButtons-Objekt.

TCheckBox-Objekt  (Unit GvWinDlg)
 
Dieses Objekt ist Nachfolger von TSingleCluster.
Wenn Sie mehrere dieser Objekte zusammenschalten, so zeigen sie
gemeinsam ein Verhalten wie ein TCheckBoxes-Objekt.

 Methoden:

 Init

TCheckBox.Init-Konstruktor
 
 Deklaration:
constructor Init(var Bounds: TRect; Text: string; AGroup: Boolean);

Initialisiert einen einzelnen Checkbox-Eintrag. Bounds gibt
die Koordinaten an und Text den Titel des Eintrags.

Setzen Sie AGroup TRUE fr den ersten Eintrag einer CheckBox-Gruppe,
fr alle anderen FALSE. Dann verhalten sich die Objekte gemeinsam so
wie ein TCheckBoxes-Objekt.

T3StateBox-Objekt  (Unit GvWinDlg)
 
Dieses Objekt ist Nachfolger von TSingleCluster.
Es arbeitet wie ein TCheckBox-Objekt, weist aber einen
zustzlichen ("gemischten") Zustand auf.

Wenn Sie mehrere dieser Objekte zusammenschalten, so zeigen sie
gemeinsam ein Verhalten wie ein TMultiCheckBoxes-Objekt
mit dem Typ cfTwoBits.

 Methoden:

 Init
 DataSize

T3StateBox.Init-Kontruktor
 
 Deklaration:
constructor Init(var Bounds: TRect; Text: string; AGroup: Boolean);

Initialisiert einen einzelnen 3StateBox-Eintrag. Bounds gibt
die Koordinaten an und Text den Titel des Eintrags.

Setzen Sie AGroup TRUE fr den ersten Eintrag einer 3StateBox-Gruppe,
fr alle anderen FALSE.



                  gvwindlg, Page #   4   Date 22-7-1996 Monday
                                    -    5 -






TRectangle-Objekt  (Unit GvWinDlg)
 
Dieses Objekt implementiert ein einfaches statisches Rechteck.
Es kann zur Gruppierung von Dialogelementen verwendet werden.

 Felder:

 Color
 IsFilled

 Methoden:

 Init
 Load
 Draw
 Store

TRectangle.Color-Feld
 
 Deklaration:
Color: Word;

Speichert die absolute Farbe, in der das Rechteck gemalt werden soll.

TRectangle.IsFilled-Feld
 
 Deklaration:
IsFilled: Boolean;

Ist dieses Flag TRUE, wird das Rechteck ausgefllt gemalt.
Ansonsten wird nur der Rand gemalt.

TRectangle.Init-Konstruktor
 
 Deklaration:
constructor Init(var Bounds: TRect; AColor: Word; Filled: Boolean);

Initialisiert das Objekt durch einen Aufruf von TGView.Init(Bounds).
Die Felder Color und IsFilled
werden mit AColor bzw. Filled belegt.

Wenn Filled FALSE ist, wird das Objekt mit dem Status
sfTransparent versehen. Dadurch bleiben darunterliegende
Objekte sichtbar.

TWinLabel-Objekt  (Unit GvWinDlg)
 
Dieses Objekt weicht nur in der Farbpalette von seinem Vorgnger
TLabel ab. Sie ist so gewhlt, da der Dialoghintergrund
als Labelhintergrund verwendet wird. Dadurch ist die Wahl der
Grenzen des Labels wesentlich unkritischer.

 Methoden:

 GetPalette

TLevel-Objekt  (Unit GvWinDlg)
 
Dieses Objekt verwendet dunkelgraue und hellgraue Linien, um
durch Licht- und Schatteneffekt einen rechteckigen Bereich
"erhht" oder "vertieft" darzustellen.




                  gvwindlg, Page #   5   Date 22-7-1996 Monday
                                    -    6 -





Mit ihm lassen sich alle gngigen dreidimensionalen Gliederungen
wie Grate, Fugen, erhhte Ebenen und Gruppierungsflchen erzielen.

 Felder:

 Height

 Methoden:

 Init
 Load
 Draw
 Store

TLevel.Height-Feld
 
 Deklaration:
Height: Integer;

Ist dieser Wert negativ, wird der Bereich vertieft dargestellt,
ansonsten erhht. Selten werden Sie grere Werte als 2 bentigen.

TLevel.Init-Konstruktor
 
 Deklaration:
constructor Init(var Bounds: TRect; AHeight: Integer);

Initialisiert das Objekt durch einen Aufruf von TGView.Init(Bounds).
Dem Feld Height wird der Parameter AHeight zugewiesen.

TPassInputLine-Objekt  (Unit GvWinDlg)
 
Dieser TInputLine-Nachfolger stellt anstelle der
eingegebenen Zeichen nur Sterne dar. Dadurch lassen sich Kennworteingaben
realisieren.

 Methoden:

 DrawText

TWinDialog-Objekt  (Unit GvWinDlg)
 
Dieser TDialog-Nachfolger ist das zentrale Objekt der
Unit GvWinDlg: Wenn mittels LoadDialog Windows-Dialogfenster
geladen werden, erstellt GvWinDlg stets TWinDialog- oder Nachfolger-Objekte.

In Windows-Dialogfenstervorlagen ist jedem Kontrollelement ein eindeutiger
ID-Wert zugeordnet. Whrend des Ladens wird dieser Wert im HelpCtx-Feld
der erzeugten View gespeichert. Neben der dadurch untersttzten
kontextsensitiven Hilfe ist auch die Identifizierung einzelner Views
anhand eines ID-Wertes mglich. Dazu existiert die GetControl-Methode.

 Felder:

 GrayBack

 Methoden:

 Init
 RawInit
 Load
 GetControl
 GetHelpCtx



                  gvwindlg, Page #   6   Date 22-7-1996 Monday
                                    -    7 -





 GetPalette
 Store

TWinDialog.GrayBack-Feld
 
 Deklaration:
GrayBack: Boolean;

Setzen Sie dieses Feld TRUE, um ein Dialogfenster mit grauem Hintergrund
zu erhalten.

TWinDialog.Init-Konstruktor
 
 Deklaration:
constructor Init(var Bounds: TRect; ATitle: TTitleStr; Gray: Boolean);

Initialisiert den Dialog durch TDialog.Init(Bounds, ATitle).
Das Feld GrayBack erhlt den Wert Gray.

TWinDialog.RawInit-Konstruktor
 
 Deklaration:
constructor RawInit;

Initialisiert den Dialog, indem willkrliche Koordinaten und ein
leerer Titel vorgegeben werden.

Wenn Sie einen Dialog als Vorlage fr LoadDialog erstellen
und ihn in DialogTemplate speichern wollen, reicht es
aus, RawInit (statt Init) zu verwenden, da Parameter wie Gre,
Title und Hintergrundfarbe aus der Windows-Ressource geladen
und nachtrglich gesetzt werden.

TWinDialog.GetControl-Funktion
 
 Deklaration:
function GetControl(id: Integer): PGView;

Ermittelt die View, die als Reprsentation fr das Dialogelement
mit dem ID-Wert id erstellt wurde. Falls eine solche View
nicht existiert, wird NIL zurckgegeben.

Tatschlich werden die HelpCtx-Felder aller Views des
Dialoges durchsucht.

TWinDialog.GetHelpCtx-Funktion
 
 Deklaration:
function GetHelpCtx: Word; virtual;

Wenn keine View selektiert ist, gibt GetHelpCtx den Wert von HelpCtx
zurck. Ansonsten wird mit Current^.GetHelpCtx der Hilfekontext
der selektierten View ermittelt und der Wert von HelpCtx addiert.

Hintergrund: In Windows-Ressourcen werden lokale IDs fr Dialogelemente
vergeben. Um eindeutige Hilfekontexte zu erhalten, wird zu diesen
Werten der Dialog-Kontext addiert.

InitDialog-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitDialog(Data: PDialogBoxHeader; Info: PDialogInfo);

Wenn DialogTemplate NIL ist, erzeugt diese
Funktion mittels TWinDialog.RawInit eine
Dialogvorlage und verwendet InitWinDialog, um die



                  gvwindlg, Page #   7   Date 22-7-1996 Monday
                                    -    8 -





Info-Struktur anhand der Daten Data zu fllen.

Es wird ein Dialog mit weiem Hintergrund erstellt.
RegisterGvWinDlg verbindet diese Erzeugungsprozedur
mit der generischen Dialogklasse.

InitBorDlg-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitBorDlg(Data: PDialogBoxHeader; Info: PDialogInfo);

Wenn DialogTemplate NIL ist, erzeugt diese
Funktion mittels TWinDialog.RawInit eine
Dialogvorlage und verwendet InitWinDialog, um die
Info-Struktur anhand der Daten Data zu fllen.

Es wird ein Dialog mit grauem Hintergrund erstellt.
RegisterGvWinDlg verbindet diese Erzeugungsprozedur
mit der Klasse 'BorDlg' (Dialogfenster im Borland-Stil).

InitButton-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitButton(Data: PControlData; Info: PDialogInfo);

Erzeugt je nach Schalter-Stil folgende Dialogelemente:


 Stil                Dialogelement
     
 bs_PushButton       TButton mit Flag bfNormal.
                     ID-Wert wird mittels XlatCmd in ein Kommando gewandelt.

 bs_DefPushButton    TButton mit Flag bfDefault.
                     ID-Wert wird mittels XlatCmd in ein Kommando gewandelt.

 bs_3State,          T3StateBox-Objekt. Das Gruppenflag wird ausgewertet.
 bs_Auto3State

 bs_CheckBox,        TCheckBox-Objekt. Das Gruppenflag wird ausgewertet.
 bs_AutoCheckBox

 bs_RadioButton,     TRadioButton-Objekt. Das Gruppenflag wird ausgewertet.
 bs_AutoRadioButton

 bs_GroupBox         TRectangle-Objekt und TStaticText-Objekt
                     fr Beschriftung oben links.

 sonst               TButton-Objekt.


Diese Erzeugungsprozedur wird von RegisterGvWinDlg
mit den Klassen cl_Button, 'BorRadio' und 'BorCheck' verbunden.

InitStatic-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitStatic(Data: PControlData; Info: PDialogInfo);

Erzeugt je nach Stil folgende Dialogelemente:



                  gvwindlg, Page #   8   Date 22-7-1996 Monday
                                    -    9 -







 Stil                Dialogelement
   
 ss_Left,            Falls der Text ein Markierungszeichen enthlt,
 ss_Center,          wird ein TLabel-Objekt erstellt.
 ss_Right,           Ansonsten wird ein TStaticText-Objekt erstellt.
 ss_LeftNoWordWrap,
 ss_Simple

 ss_BlackRect,       Ein TRectangle-Objekt mit den
 ss_GrayRect,        entsprechenden Parametern wird erstellt.
 ss_WhiteRect,
 ss_BlackFrame,
 ss_GrayFrame,
 ss_WhiteFrame

 ss_Icon             Ein TIconLabel-Objekt wird erstellt.
                     Es wird versucht, die angegebene Icon-Ressource
                     zu ffnen.

 sonst               TStaticText-Objekt.


Diese Erzeugungsprozedur wird von RegisterGvWinDlg
mit den Klassen cl_Static und 'BorStatic' verbunden.

InitEdit-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitEdit(Data: PControlData; Info: PDialogInfo);

Erzeugt je nach Stil entweder ein TInputLine- oder
TPassInputLine-Objekt.

Wenn die Vorlage ein @-Zeichen, gefolgt von einer Zahl, als Text
vorgibt, wird der MaxLen-Parameter der Eingabezeile mit dieser
Zahl belegt. Ansonsten wird 255 als maximale Lnge vorgegeben.
Beispiel: "@25".

InitListBox-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitListbox(Data: PControlData; Info: PDialogInfo);

Erzeugt ein TListBox-Objekt mit einem vertikalen
TScrollbar-Objekt.

Diese Erzeugungsprozedur wird von RegisterGvWinDlg
mit der Klasse cl_Listbox verbunden.

InitCombobox-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitCombobox(Data: PControlData; Info: PDialogInfo);

Erzeugt ein TInputLine-Objekt und verbindet es
mit einem THistory-Objekt.

Diese Erzeugungsprozedur wird von RegisterGvWinDlg



                  gvwindlg, Page #   9   Date 22-7-1996 Monday
                                    -   10 -





mit der Klasse cl_Combobox verbunden.

InitScrollbar-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitScrollbar(Data: PControlData; Info: PDialogInfo);

Erzeugt ein TScrollbar-Objekt.

Diese Erzeugungsprozedur wird von RegisterGvWinDlg
mit der Klasse cl_Scrollbar verbunden.

InitBorBtn-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitBorBtn(Data: PControlData; Info: PDialogInfo);

Erzeugt ein TImageButton-Objekt. Die Button-Images
werden aus der Ressource BWCC geladen.

Dazu mu diese Ressource mittels InitBWCC geffnet worden sein.

Diese Erzeugungsprozedur wird von RegisterGvWinDlg
mit der Klasse 'BorBtn' verbunden.


InitBorShade-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure InitBorShade(Data: PControlData; Info: PDialogInfo);

Erzeugt je nach Stil TStaticText- und TLevel-Objekte,
um statische Schattierungen darzustellen.

Diese Erzeugungsprozedur wird von RegisterGvWinDlg
mit der Klasse 'BorShade' verbunden.

RegisterGvWinDlg-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure RegisterGvWinDlg;

Registriert mittels RegisterType die in GvWinDlg definierten Objekttypen
fr Stream-Operationen. Registriert mittels RegisterClass
die Standard-Dialog- und Elementklassen.

Vor dem Aufruf von RegisterGvWinDlg mu InitClasses
aufgerufen werden.

AccessResource-Funktion  (Unit GvWinDlg)
 
 Deklaration:
function AccessResource(Info: PDialogInfo): PStream;

Diese Funktion erlaubt Ihnen den Zugriff auf die gleiche Ressourcendatei,
aus der der Dialog gelesen wird. Rckgabewert ist ein Zeiger auf den
Ressourcen-Stream. Der Dateizeiger steht auf der Ressourcentabelle,
so da Sie direkt Funktionen wie LoadIcon usw. anwenden knnen.

Nach dem Ressourcenzugriff mu UnaccessResource
aufgerufen werden.

GetControlRect-Prozedur  (Unit GvWinDlg)
 



                  gvwindlg, Page #  10   Date 22-7-1996 Monday
                                    -   11 -





 Deklaration:

 procedure GetControlRect(var Bounds: TRect;
   Data: PControlData; Info: PDialogInfo);

Diese Prozedur wertet die geladenen Control-Daten unter Zuhilfenahme der
Dialog-Informationen aus und gibt in Bounds das umschlieende Rechteck
in Graphics-Vision- Dialogkoordinaten zurck.

GetControlRect wird in InitXXXX-Prozeduren fr Control-Klassen verwendet,
um Gre und Lage zu ermitteln.

GetDialogRect-Prozedur  (Unit GvWinDlg)
 
 Deklaration:

 procedure GetDialogRect(var Bounds: TRect;
   Data: PDialogBoxHeader; Info: PDialogInfo);


Diese Prozedur wertet die geladenen Dialogfenster-Daten unter Zuhilfenahme
der zustzlichen Dialog-Informationen aus und gibt in Bounds das
Dialogfenster-Rechteck in Graphics-Vision- Koordinaten zurck.

GetDialogRect wird in InitXXXX-Prozeduren fr Dialogfensterklassen
verwendet, um Gre und Lage zu ermitteln.

InitWinDialog-Prozedur  (Unit GvWinDlg)
 
 Deklaration:

 procedure InitWinDialog(Data: PDialogBoxHeader;
   Info: PDialogInfo; Gray: Boolean);

Diese Prozedur erwartet, da die globale Variable DialogTemplate
auf ein Dialogfenster zeigt. Sie wertet die aus der Ressource gelesenen
Dialogparameter wie Titel, Ausdehnung und Schriftart aus und versieht dieses
Dialogfenster mit diesen Parametern.

Mit dem Parameter Gray knnen Sie festlegen, ob das Dialogfenster
einen grauen Hintergrund erhalten soll.

InitWinDialog wird in den vordefinierten Dialogfenster-Erzeugungsprozeduren
verwendet. Wenn Sie eigene Dialogfensterklassen definieren, ist diese
Prozedur sehr zweckmig, da sie Ihnen u.a. Aufrufe von SetupInfo und
GetDialogRect erspart.

InsertControl-Funktion  (Unit GvWinDlg)
 
 Deklaration:
function InsertControl(Dialog: PDialog; View: PGView): PGView;

Fgt in das Dialogfenster Dialog das Kontrollelement View ein
und gibt es zurck.

LinkIcon-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure LinkIcon(Link: PGView; Control: PIcon);

Diese Prozedur erzeugt eine Verknpfung eines Icons mit einer View.



                  gvwindlg, Page #  11   Date 22-7-1996 Monday
                                    -   12 -






Beim Erzeugen von verknpfenden Objekten werden mittels InsertLink
Verknpfungsanforderungen gespeichert. Beim Erzeugen einer anderen View
werden diese Anforderungen durch einen Aufruf von CreateLinks erzeugt, indem
die LinkXXXX-Prozeduren aufgerufen werden.

LinkLabel-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure LinkLabel(Link: PGView; Control: PLabel);

Diese Prozedur erzeugt eine Verknpfung eines Labels mit einer View.

Beim Erzeugen von verknpfenden Objekten werden mittels InsertLink
Verknpfungsanforderungen gespeichert. Beim Erzeugen einer anderen View
werden diese Anforderungen durch einen Aufruf von CreateLinks erzeugt, indem
die LinkXXXX-Prozeduren aufgerufen werden.

NilStrPas-Funktion  (Unit GvWinDlg)
 
 Deklaration:
function NilStrPas(s: PChar): string;

Dereferenziert s im verallgemeinerten Sinne.

Ist s NIL, wird ein Leerstring zurckgegeben. Ist s ein Zeiger auf einen
nullterminierten String, wird dieser in einen Pascal-String umgewandelt
und zurckgegeben.

WakeDialog-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure WakeDialog(Info: PDialogInfo);

SetupInfo verbindet diese Prozedur mit den Dialogdaten derart,
da WakeDialog aufgerufen wird, sobald der Dialog komplett geladen wurde.

WakeDialog ruft SelectNext auf, um den Fokus auf das erste Dialogelement
zu verschieben.

SetupInfo-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure SetupInfo(Data: PDialogBoxHeader; Info: PDialogInfo);

Diese Prozedur wertet die geladenen Dialogfenster-Daten aus und fllt die
Info-Struktur mit fr Graphics Vision spezifischen Informationen.

SetUpInfo wird in InitXXXX-Prozeduren fr Dialogfensterklassen verwendet,
bevor GetDialogRect aufgerufen wird und das
Dialogfenster erstellt wird.

SplitRectCB-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure SplitRectCB(var Bounds: TRect; var Arrow: TRect);

Zerlegt das Rechteck Bounds in die Teilrechtecke, die Elemente
eines einzeiligen Listenfeldes einnehmen. In Arrow wird das
Rechteck fr den nach unten weisenden Pfeil eingetragen.
Bounds wird auf den fr die Eingabezeile verbleibenden Platz
verkleinert.

SplitRectSB-Prozedur  (Unit GvWinDlg)



                  gvwindlg, Page #  12   Date 22-7-1996 Monday
                                    -   13 -





 
 Deklaration:

 procedure SplitRectSB(var Bounds: TRect; var HorizRect, VertRect: TRect;
   Horiz, Vert: Boolean);

Zerlegt das Rechteck Bounds in Teilrechtecke, um fr eventuelle
horizontale und vertikale Bildlaufleisten Platz zu reservieren.

Mit Horiz und Vert knnen Sie steuern, ob Platz fr die
jeweilige Bildlaufleiste reserviert werden soll. Die entsprechenden
Teilrechtecke werden in HorizRect und VertRect eingetragen,
und Bounds wird geeignet verkleinert.

UnaccessResource-Prozedur  (Unit GvWinDlg)
 
 Deklaration:
procedure UnaccessResource(Info: PDialogInfo);

Diese Prozedur mu aufgerufen werden, nachdem ein Zugriff auf eine
Ressource erfolgt ist, die mit AccessResource
ermittelt wurde.

XlatCmd-Funktion  (Unit GvWinDlg)
 
 Deklaration:
function XlatCmd(id: Word): Word;

Diese Funktion bersetzt Standard-Kommandos von Windows in Standard-Kommandos
von Graphics Vision.

XlatCmd wird bei der Auswertung von PushButton-Controls verwendet, um
TButton-Objekte zu erstellen.





























                  gvwindlg, Page #  13   Date 22-7-1996 Monday
