DEFINE WINDOW

Creates a Window Definition

Standard Syntax (xBase Style):

DEFINE WINDOW <WindowName>
AT <nRow> ,<nCol>
WIDTH <nWindth>
HEIGHT <nHeight>
[ VIRTUAL WIDTH <nVirtualWindth> ]
[ VIRTUAL HEIGHT <nVirtualHeight> ]
[ TITLE <cTitle> ]
[ ICON <cIconName> ]
[ MAIN | CHILD | MODAL | SPLITCHILD | PANEL ]
[ NOSHOW ]
[ TOPMOST ]
[ NOAUTORELEASE ]
[ NOMINIMIZE ]
[ NOMAXIMIZE ]
[ NOSIZE ]
[ NOSYSMENU ]
[ NOCAPTION ]
[ CURSOR <CursorName> ]
[ ON INIT <InitProcedureName> | <bBlock> ]
[ ON RELEASE <ReleaseProcedureName> | <bBlock> ]
[ ON INTERACTIVECLOSE <InteractiveCloseProcedureName> | <bBlock> ]
[ ON MOUSECLICK <MouseClickProcedureName> | <bBlock> ]
[ ON MOUSEDRAG <MouseDragProcedureName> | <bBlock> ]
[ ON MOUSEMOVE <MouseMoveProcedureName> | <bBlock> ]
[ ON SIZE <WindowSizeProcedureName> | <bBlock> ]
[ ON MAXIMIZE <WindowMaximizeProcedureName> | <bBlock> ]
[ ON MINIMIZE <WindowMinimizeProcedureName> | <bBlock> ]
[ ON PAINT<WindowPaintProcedureName> | <bBlock> ]
[ BACKCOLOR <anBackColor> ]
[ FONT <cFontName> SIZE <nFontSize> ]
[ NOTIFYICON <cNotifyIconName> ]
[ NOTIFYTOOLTIP <cNotifyTooltip> ]
[ ON NOTIFYCLICK <NotifyClickProcedure> | <bBlock> ]
[ ON GOTFOCUS <ProcedureName> | <bBlock> ]
[ ON LOSTFOCUS <ProcedureName> | <bBlock> ]
[ ON SCROLLUP <ProcedureName> | <bBlock> ]
[ ON SCROLLDOWN <ProcedureName> | <bBlock> ]
[ ON SCROLLLEFT <ProcedureName> | <bBlock> ]
[ ON SCROLLRIGHT <ProcedureName> | <bBlock> ]
[ ON HSCROLLBOX <ProcedureName> | <bBlock> ]
[ ON VSCROLLBOX <ProcedureName> | <bBlock> ]
[ HELPBUTTON ]
[ GRIPPERTEXT <cGripperText> ]
[ BREAK ]
[ FOCUSED ]
... Control Definitions...
END WINDOW

Alternate Syntax:

DEFINE WINDOW <WindowName>
ROW <nRow>
COL <nCol>
WIDTH <nWindth>
HEIGHT <nHeight>
WINDOWTYPE MAIN | CHILD | MODAL | SPLITCHILD | STANDARD | PANEL
[ VIRTUALWIDTH <nVirtualWindth> ]
[ VIRTUALHEIGHT <nVirtualHeight> ]
[ TITLE <cTitle> ]
[ ICON <cIconName> ]
[ VISIBLE <lValue> ]
[ TOPMOST [<lValue>] ]
[ AUTORELEASE <lValue> ]
[ MINBUTTON <lvalue> ]
[ MAXBUTTON <lValue> ]
[ SIZABLE <lValue> ]
[ SYSMENU <lValue> ]
[ TITLEBAR <lValue> ]
[ CURSOR <CursorName> ]
[ ONINIT <InitProcedureName> | <bBlock> ]
[ ONRELEASE <ReleaseProcedureName> | <bBlock> ]
[ ONINTERACTIVECLOSE <InteractiveCloseProcedureName> | <bBlock> ]
[ ONMOUSECLICK <MouseClickProcedureName> | <bBlock> ]
[ ONMOUSEDRAG <MouseDragProcedureName> | <bBlock> ]
[ ONMOUSEMOVE <MouseMoveProcedureName> | <bBlock> ]
[ ONSIZE <WindowSizeProcedureName> | <bBlock> ]
[ ONMAXIMIZE <WindowMaximizeProcedureName> | <bBlock> ]
[ ONMINIMIZE <WindowMinimizeProcedureName> | <bBlock> ]
[ ONPAINT<WindowPaintProcedureName> | <bBlock> ]
[ BACKCOLOR <anBackColor> ]
[ FONTNAME <cFontName> FONTSIZE <nFontSize> ]
[ NOTIFYICON <cNotifyIconName> ]
[ NOTIFYTOOLTIP <cNotifyTooltip> ]
[ ONNOTIFYCLICK <NotifyClickProcedure> | <bBlock> ]
[ ONGOTFOCUS <ProcedureName> | <bBlock> ]
[ ONLOSTFOCUS <ProcedureName> | <bBlock> ]
[ ONSCROLLUP <ProcedureName> | <bBlock> ]
[ ONSCROLLDOWN <ProcedureName> | <bBlock> ]
[ ONSCROLLLEFT <ProcedureName> | <bBlock> ]
[ ONSCROLLRIGHT <ProcedureName> | <bBlock> ]
[ ONHSCROLLBOX <ProcedureName> | <bBlock> ]
[ ONVSCROLLBOX <ProcedureName> | <bBlock> ]
[ HELPBUTTON <lValue> ]
[ GRIPPERTEXT <cGripperText> ]
[ BREAK lValue ]
[ FOCUSED <lValue> ]

... Control Definitions...

END WINDOW

Focused, Break and GripperText properties are available only for 'SplitChild' type windows.

Topmost property is not available for modal and splitchild type windows.

Properties:

(R) Read-Only (available after control definition via GetProperty function or semi-oop syntax)

(W) Write-Only (available after control definition via SetProperty function or semi-oop syntax)

(D) Available at definition only

Properties not tagged are available for read and write after control definition via SetProperty and GetProperty functions or semi-oop syntax.

Methods:

  • Capture

  • Print

  • Show

  • Hide

  • Center

  • Maximize

  • Minimize

  • Activate

  • Restore

  • Release

  • SetFocus

  • Redraw

Window Events:

  • OnInit

  • OnRelease

  • OnInteractiveClose

  • OnMouseClick

  • OnMouseDrag

  • OnMouseMove

  • OnSize

  • OnMaximize

  • OnMinimize

  • OnPaint

  • OnNotifyClick

  • OnGotFocus

  • OnLostFocus

  • OnScrollUp

  • OnScrollDown

  • OnScrollLeft

  • OnScrollRight

  • OnHscrollBox

  • OnVscrollBox

New Properties:

ThisWindow|<FormName>.``Handle`` --> nFormHandle
ThisWindow|<FormName>.``Index`` --> nFormIndex
ThisWindow|<FormName>.``IsMinimized`` --> lBoolean
ThisWindow|<FormName>.``IsMaximized`` --> lBoolean
ThisWindow|<FormName>.``ClientAreaWidth`` --> nWidth
ThisWindow|<FormName>.``ClientAreaHeight`` --> nHeight
ThisWindow|<FormName>.``NoCaption`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``NoMaximize`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``NoMinimize`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``NoClose`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``NoSize`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``NoSysMenu`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``HScroll`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``VScroll`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``Enabled`` [ := | --> ] lBoolean
ThisWindow|<FormName>.``AlphaBlendTransparent`` := nAlphaBlend (0 to 255, Completely Transparent = 0, Opaque = 255)
ThisWindow|<FormName>.``BackColorTransparent`` := aRGBColor
ThisWindow|<FormName>.CenterWorkArea
ThisWindow|<FormName>.CenterIn ( FormName2 )
CENTER WINDOW <FormName> DESKTOP
CENTER WINDOW <FormName> IN <FormName2>

Visual Effects on Windows:

  • SET WINDOW FormName TRANSPARENT TO COLOR aRGBColor

  • SET WINDOW FormName TRANSPARENT TO nAlphaBlend --> nAlphaBlend = 0 to 255 (completely transparent = 0, opaque = 255)

  • SET WINDOW FormName [ TRANSPARENT ] TO OPAQUE

  • FLASH WINDOW FormName CAPTION COUNT nTimes INTERVAL nMilliseconds

  • FLASH WINDOW FormName TASKBAR COUNT nTimes INTERVAL nMilliseconds

  • FLASH WINDOW FormName [ ALL ] COUNT nTimes INTERVAL nMilliseconds

  • ANIMATE WINDOW FormName INTERVAL nMilliseconds MODE nFlags

  • ANIMATE WINDOW FormName MODE nFlags

  • MODE <nFlags> (see the function AnimateWindow() in the API Window Reference), constants defined in i_Window.ch

#define AW_HOR_POSITIVE 0x00000001

#define AW_HOR_NEGATIVE 0x00000002

#define AW_VER_POSITIVE 0x00000004

#define AW_VER_NEGATIVE 0x00000008

#define AW_CENTER 0x00000010

#define AW_HIDE 0x00010000

#define AW_ACTIVATE 0x00020000

#define AW_SLIDE 0x00040000

#define AW_BLEND 0x00080000

Tips:

· SplitChild windows can be defined as part of a splitbox only.

· Toolbar's & SplitBox's parent window can't be a 'Virtual Dimensioned' window (use 'Virtual Dimensioned' splitchild's instead)

· NoAutoRelease Style: When this style is used, windows are hide instead released from memory when the user clicks in the close box.

· Using "Activate Window All" command at program startup will force "NoAutoRelease" style for all windows (excepting main).

· You must use "Show" and "Hide" methods to make a window visible or invisible.

· For virtual dimensioned Windows, two predefined controls are available.

· These controls are called vScrollBar and hScrollBar.

· Value property (read only) is available for these controls.

· ROW, COL, WIDTH and HEIGHT when any of those parameters are optional and when not been informed, default value as follows:

§ ROW and\/or COL: 0 (zero) position

§ WIDTH and\/or HEIGHT: maximum size according real desktop sizes.

Source code example:

#include "hmg.ch"
Function Main
SET AUTOSCROLL ON
DEFINE WINDOW Form_Main ;
   AT 0,0 ;
   WIDTH 640 ;
   HEIGHT 480 ;
   VIRTUAL WIDTH 1300 ;
   VIRTUAL HEIGHT 800 ;
   TITLE 'Virtual Dimensioned Window Demo' ;
   MAIN
   @ 100,10 BUTTON Button_1 ;
      CAPTION 'Vert. ScrollBar Value' ;
      ACTION MsgInfo( Str ( Form_Main.VScrollBar.Value ) ) ;
      WIDTH 150 HEIGHT 25
   @ 200,10 BUTTON Button_2 ;
      CAPTION 'Horiz. ScrollBar Value' ;
      ACTION MsgInfo( Str ( Form_Main.HScrollBar.Value ) ) ;
      WIDTH 150 HEIGHT 25
END WINDOW
ACTIVATE WINDOW Form_Main
Return Nil

results matching ""

    No results matching ""