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


QHEADER Component

QHeader is a set of column headers that the user can resize at runtime.

QHeader Internal Types
   TYPE SectionsType       '' ie. Header.Sections(0).Caption
     Alignment AS INTEGER  '' Default taLeftJustify
     AllowClick AS INTEGER '' True
     Caption AS STRING
     MaxWidth AS INTEGER   '' Default  10000
     MinWidth AS INTEGER   '' Default 0
     Style AS INTEGER      '' Default hsText
     Width AS INTEGER      '' Default 50
   END TYPE
QHeader Properties
Field Type R/W Default




Align INTEGER RW alNone
ClientHeight INTEGER RW
ClientWidth INTEGER RW
CopyMode INTEGER RW cmBlackness
Cursor INTEGER RW crDefault
Enabled INTEGER RW True
Font QFONT W
Handle INTEGER RW
Height INTEGER RW
Hint STRING RW
HotTrack INTEGER RW False
Left INTEGER RW 0
Parent QFORM/QPANEL/QTABCONTROL W
Pixel 2D ARRAY of INTEGER RW
PopupMenu QPOPUPMENU W
Sections ARRAY of SectionsType RW
SectionsCount INTEGER R
ShowHint INTEGER RW False
Tag INTEGER RW
Top INTEGER RW 0
Width INTEGER RW
Visible INTEGER RW True

QHeader Methods
Method Type Description Params




AddSections SUBI Add new sections to header STRING, Infinite
Clear SUB Clears all sections 0
Circle SUB (x1%, y1%, x2%, y2%, c%, fill%) Draw & Fill Circle 6
CopyRect SUB (D, Image, S) D and S are QRECTs, Image can be a QImage, QCanvas, or QBitmap 3
Draw SUB (x%, y%, BMP) Draw Bitmap at (X,Y) 3
FillRect SUB (x1%, y1%, x2%, y2%, c%) Draws & Fills a rectangle 5
Line SUB (x1%, y1%, x2%, y2%, c%) Draws a line 5
Paint SUB (x%, y%, c%, borderc%) Fill Region 4
Pset SUB (x%, y%, c%) Pixel plot 3
Rectangle SUB (x1%, y1%, x2%, y2%, c%) Draws a rectangle 5
Repaint SUB Force repainting of header 0
RoundRect SUB (x1%, y1%, x2%, y2%, x3%, y3%, c%) Draws & Fills a rounded rectangle 7
StretchDraw SUB (Rect AS QRECT, BMP) Draw BMP and stretch to fit inside Rect 2
TextHeight FUNCTION (Text$) AS WORD Returns the height, in pixels, of Text$ string 1
TextWidth FUNCTION (Text$) AS WORD Returns the width, in pixels, of Text$ string 1
TextRect SUB (Rect AS QRECT, x%, y%, S$, fc%, bc%) Write text, and clip within region Rect 6
TextOut SUB (x%, y%, S$, fc%, bc%) Writes text to image 5

QHeader Events
Event Type Occurs when... Params




OnDrawSection SUB (Index%, Pressed%, Rect AS QRECT) A header section needs to be redisplayed. Header section's Style property must be hsOwnerDraw 3
OnMouseDown SUB (Button%, X%, Y%, Shift%) Mouse button held down 4
OnMouseMove SUB (X%, Y%, Shift%) Mouse moves 3
OnMouseUp SUB (Button%, X%, Y%, Shift%) Mouse button is released 4
OnResize VOID Size of header control changes 0
OnSectionClick SUB (Index%) Header section Index% is clicked 1
OnSectionResize SUB (Index%) Header section is resized 1
OnSectionTrack SUB (Index%, Width%, State%) Header section is dragged 3


QHeader Examples
$TYPECHECK ON
$INCLUDE "RAPIDQ.INC"

DECLARE SUB DrawSection (Index AS INTEGER, Pressed AS INTEGER, Rect AS QRECT, Sender AS QHEADER)
DECLARE SUB SectionTrack (Index AS INTEGER, Width AS INTEGER, State AS INTEGER, Sender AS QHEADER)

CREATE Form AS QFORM
    Caption = "QHeader example"
    Center
    CREATE Header AS QHEADER
        AddSections "1", "2", "3"
        Sections(1).AllowClick = FALSE
        Sections(0).Style = hsOwnerDraw
        Sections(0).Width = 100
        Sections(1).Style = hsOwnerDraw
        Sections(2).Style = hsOwnerDraw
        OnDrawSection = DrawSection
        OnSectionTrack = SectionTrack
    END CREATE
    CREATE ListBox1 AS QLISTBOX
        Align = alLeft
        Width = 100
        AddItems "1. Rapid-Q", "2. Taxes"
    END CREATE
    CREATE StatusBar AS QSTATUSBAR
        SimplePanel = TRUE
        SimpleText = "Not moving"
    END CREATE
    ShowModal
END CREATE

SUB DrawSection (Index AS INTEGER, Pressed AS INTEGER, Rect AS QRECT, Sender AS QHEADER)
    Sender.TextOut(Rect.Left+5,Rect.Top+1, STR$(Index+1), &HFF0000, -1)
    SELECT CASE Index
        CASE 0
            Sender.FillRect(Rect.Left+20,Rect.Top+2,Rect.Right-20,Rect.Bottom-2, &H00FF00)
        CASE 1
            Sender.Circle(Rect.Left+20,Rect.Top+2,Rect.Right-20,Rect.Bottom-2, &HFF, &HFF)
        CASE 2
    END SELECT
END SUB

SUB SectionTrack (Index AS INTEGER, Width AS INTEGER, State AS INTEGER, Sender AS QHEADER)
    StatusBar.SimpleText = "Moving "+STR$(Width)
    SELECT CASE Index
        CASE 0
            ListBox1.Width = Width
    END SELECT
END SUB

Prev ComponentContentsNext Component