Rapid-Q Documentation by William Yu (c)1999-2000 Appendix A: QFORM


QFORM Component

QForm is a standard application Window. You can put any visible control component on a QForm, such as QEdit, QLabel, QButton, etc...

W = Windows, X = Rapid-Q/XForms, G = Rapid-Q/GTK

QForm Properties
Field Type Read/Write Default Value Support





AutoScroll INTEGER RW True W
Specify whether scroll bars should appear automatically on the form if it is not large enough to display all of its controls
BorderStyle INTEGER RW bsSizeable WXG
BorderStyle specifies the appearance and behaviour of the form border.
0 = bsNone -- Not resizeable; no visible border line or caption bar
1 = bsSingle -- Not resizeable; single-line border
2 = bsSizeable -- Standard resizeable border
3 = bsDialog -- Not resizeable; standard dialog box border
4 = bsToolWindow -- Like bsSingle but with a smaller caption
5 = bsSizeToolWin -- Like bsSizeable but with a smaller caption
Caption STRING RW WXG
Caption is the text that appears as the title of your form.
ClientHeight INTEGER RW WXG
The height of the form's client area, ie. the usable area inside the form's border.
ClientWidth INTEGER RW WXG
The width of the form's client area, ie. the usable area inside the form's border.
Color INTEGER RW clBtnFace W
Color of the form.
Cursor INTEGER RW crDefault W
Cursor that appears when the mouse pointer is over the form.
Font QFONT W W
Sets font property. Used for TextOut method.
FormStyle INTEGER RW fsNormal W
Get or set the form's style. Only fsNormal is supported.
Handle INTEGER R W
Get the form's handle for WinAPI calls.
Height INTEGER RW WXG
Get or set the form's vertical size (in pixels).
Hint STRING RW W
The hint string that appears when the user moves the mouse pointer over the form. It is not displayed unless ShowHint is true.
IcoHandle RESOURCE W W
Assign an icon resource handle to appear as the icon for your form.
Example:
$RESOURCE game_ICO AS "game.ico"
DIM Form AS QFORM
Form.IcoHandle = game_ICO
Icon STRING W W
Assign an icon filename to appear as the icon for your form.
KeyPreview INTEGER RW False W
Specify whether keyboard events should occur on the form before they occur on the active control. Not all keys will be redirected.
Left INTEGER RW 0 WXG
Specifies the left edge of the form relative to the desktop screen.
ModalResult INTEGER W W
Assigning a value to ModalResult will close the form when it is displayed modally.
0 = mrNone
1 = mrOk
2 = mrCancel
3 = mrAbort
4 = mrRetry
5 = mrIgnore
6 = mrYes
7 = mrNo
8 = mrAll
Parent QFORM W W
Assigning a parent will remove the second form from the taskbar.
PopupMenu QPOPUPMENU W W
Popupmenus are displayed when user right clicks on the form.
Example:
DIM PopupMenu AS QPOPUPMENU
DIM Form AS QFORM
Form.PopupMenu = PopupMenu
ShowHint INTEGER RW False W
If True then the hint popup message can be displayed.
Top INTEGER RW 0 WXG
Visible INTEGER RW False WXG
Specifies the visibility of the form.
Width INTEGER RW 320 WXG
WindowState INTEGER RW wsNormal W
Specifies how the form appears on the screen.
0 = wsNormal -- form appears neither maximized nor minimized
1 = wsMinimized -- form is minimized
2 = wsMaximized -- form is maximized


QForm Methods
Method Type Description Params Support





AddBorderIcons SUBI Add Border Icons INTEGER, Infinite W
Valid border icons are:
0 = biSystemMenu -- The form icon
1 = biMinimize -- The minimize icon
2 = biMaximized -- The maximize icon
3 = biHelp -- The help icon
Example:
$INCLUDE "RAPIDQ.INC"
DIM Form AS QFORM
Form.AddBorderIcons(biHelp)
Center SUB Used to center a form 0 WXG
Circle SUB (x1%, y1%, x2%, y2%, c%, fill%) Draw & Fill Circle/Ellipse 6 W
Close SUB Close form 0 WXG
CopyRect SUB (D, Image, S) D and S are QRECTs, Image can be a QImage, QCanvas, or QBitmap 3 W
Example (copies QIMAGE to form at 10,10):
DIM Destination AS QRECT
DIM Source AS QRECT
DIM Image AS QIMAGE
Image.BMP = "whatever.bmp"

SUB FormPaint (Sender AS QFORM)
WITH Destination
.Top = 10
.Left = 10
.Right = .Left+Image.Width
.Bottom = .Top+Image.Height
END WITH
WITH Source
.Top = 0
.Left = 0
.Right = Image.Width
.Bottom = Image.Height
END WITH
Sender.CopyRect(Destination, Image, Source)
END SUB

DIM Form AS QFORM
Form.OnPaint = FormPaint
DelBorderIcons SUBI Remove Border Icons INTEGER, Infinite W
Valid border icons are:
0 = biSystemMenu -- The form icon
1 = biMinimize -- The minimize icon
2 = biMaximized -- The maximize icon
3 = biHelp -- The help icon
Example:
$INCLUDE "RAPIDQ.INC"
DIM Form AS QFORM
Form.DelBorderIcons(biMinimize)
Details:
Deleting icon may not necessarily remove it from the form's title bar, but the icon will be greyed out.
Draw SUB (x%, y%, BMP) Draw Bitmap on Canvas 3 W
Details:
BMP can be any BMP property from QBitmap, QImage, QImageList, etc. any component with a BMP property is fine.
Examples:
DIM Image1 AS QIMAGE
Image1.BMP = "whatever.bmp"
DIM Image2 AS QBITMAP
Image2.BMP = "whatever.bmp"

SUB FormPaint (Sender AS QFORM)
Sender.Draw(0, 0, Image1.BMP)
Sender.Draw(50, 50, Image2.BMP)
END SUB

DIM Form AS QFORM
Form.OnPaint = FormPaint
FillRect SUB (x1%, y1%, x2%, y2%, c%) Draws & Fills a rectangle 5 W
HideTitleBar SUB Hides Caption 0 W
Line SUB (x1%, y1%, x2%, y2%, c%) Draw line on form 5 W
Paint SUB (x%, y%, c%, borderc%) Fill Region 4 W
Pset SUB (x%, y%, c%) Pixel plot 3 W
Rectangle SUB (x1%, y1%, x2%, y2%, c%) Draws a rectangle 5 W
Repaint SUB Repaints the entire form 0 W
RoundRect SUB (x1%, y1%, x2%, y2%, x3%, y3%, c%) Draws & Fills a rounded rectangle 7 W
ShapeForm SUB (Filename$|Resource, TransparentColor&) Shapes form as outline of image 2 W
Details:
The first parameter can either be a filename to the BMP file, or a BMP resource file. The second parameter indicates which color is transparent.
Example 1:
DIM Form AS QFORM
Form.ShapeForm("image.bmp", &HFFFFFF)
Example 2:
$RESOURCE image_BMP AS "image.bmp"

DIM Form AS QFORM
Form.ShapeForm(image_BMP, &HFFFFFF)
Show SUB Used to show form when hidden 0 WX
ShowModal FUNCTION AS SHORT Display form and wait for result 0 WXG
ShowTitleBar SUB Displays Caption 0 W
StretchDraw SUB (Rect AS QRECT, BMP) Draw BMP and stretch to fit inside Rect 2 W
Details:
BMP can be any BMP property from QBitmap, QImage, QImageList, etc. any component with a BMP property is fine.
Examples (Double original size):
DIM Image1 AS QIMAGE
Image1.BMP = "whatever.bmp"

SUB FormPaint (Sender AS QFORM)
DIM R AS QRECT
R.Left = 0
R.Top = 0
R.Right = Image1.Width*2
R.Bottom = Image1.Height*2
Sender.StretchDraw(R Image1.BMP)
END SUB

DIM Form AS QFORM
Form.OnPaint = FormPaint
TextHeight FUNCTION (Text$) AS WORD Returns the height, in pixels, of Text$ string 1 W
TextWidth FUNCTION (Text$) AS WORD Returns the width, in pixels, of Text$ string 1 W
TextRect SUB (Rect AS QRECT, x%, y%, S$, fc%, bc%) Write text, and clip within region Rect 6 W
TextOut SUB (x%, y%, s$, fc%, bc%) Write text to form 5 W
Details:
fc% = foreground color
bc% = background color
For a transparent background, set bc% parameter to -1


QForm Events
Event Type Occurs when... Params Support





OnClick VOID User clicks on open area of form 0 W
OnClose SUB (Action AS INTEGER) Form closes 1 W
OnHint SUB (Hint AS STRING) Hint is displayed 1 W
OnKeyDown SUB (Key AS Word, Shift AS INTEGER) Key held down 2 W
OnKeyPress SUB (Key AS BYTE) User presses a key 1 W
OnKeyUp SUB (Key AS Word, Shift AS INTEGER) User releases a key 2 W
OnMouseDown SUB (Button%, X%, Y%, Shift%) Mouse button held down 4 W
OnMouseMove SUB (X%, Y%, Shift%) Mouse moves 3 W
OnMouseUp SUB (Button%, X%, Y%, Shift%) Mouse button is released 4 W
OnPaint VOID Form requires repainting 0 W
OnResize VOID Form is resized 0 W
OnShow VOID Form is displayed 0 W
WndProc SUB (Hwnd%, Msg%, wParam%, lParam%) Messages posted/sent to form 4 W
Only one WndProc per Form is allowed. So if you have multiple forms, only one may be able to receive messages at a time. (Future consideration to correct this)


QForm Examples
  DIM Form AS QForm
  DIM Button AS QBUTTON

  Button.Parent = Form     '' Add button to form container
  Form.Center
  Form.Caption = "Hello world!"

  IF Form.ShowModal THEN
    PRINT "Return result is TRUE"
  ELSE
    PRINT "Return result is FALSE"
  END IF

Prev ComponentContentsNext Component