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


QHEADER Компонент

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 Свойства
ПолеТипR/WПо умолчанию




AlignINTEGERRWalNone
ClientHeightINTEGERRW
ClientWidthINTEGERRW
CopyModeINTEGERRWcmBlackness
CursorINTEGERRWcrDefault
EnabledINTEGERRWTrue
FontQFONTW
HandleINTEGERRW
HeightINTEGERRW
HintSTRINGRW
HotTrackINTEGERRWFalse
LeftINTEGERRW0
ParentQFORM/QPANEL/QTABCONTROLW
Pixel2D ARRAY of INTEGERRW
PopupMenuQPOPUPMENUW
SectionsARRAY of SectionsTypeRW
SectionsCountINTEGERR
ShowHintINTEGERRWFalse
TagINTEGERRW
TopINTEGERRW0
WidthINTEGERRW
VisibleINTEGERRWTrue

QHeader Методы
МетодТипОписаниеПараметры




AddSectionsSUBIAdd new sections to headerSTRING, Infinite
ClearSUBClears all sections0
CircleSUB (x1%, y1%, x2%, y2%, c%, fill%)Рисует и заливает окружность6
CopyRectSUB (D, Image, S)D и S это QRECTs, Image может быть QImage, QCanvas, или QBitmap3
DrawSUB (x%, y%, BMP)Рисовать BitMap at (X,Y)3
FillRectSUB (x1%, y1%, x2%, y2%, c%)Рисует и заливает цветом прямоугольник5
LineSUB (x1%, y1%, x2%, y2%, c%)Рисует линию5
PaintSUB (x%, y%, c%, borderc%)Заполняет область4
PsetSUB (x%, y%, c%)Рисует точку3
RectangleSUB (x1%, y1%, x2%, y2%, c%)Рисует прямоугольник5
RepaintSUBПерерисовать of header0
RoundRectSUB (x1%, y1%, x2%, y2%, x3%, y3%, c%)Рисует & Заполняет цветом прямоугольник со скругленными углами7
StretchDrawSUB (Rect AS QRECT, BMP)Рисует BMP и растягивает его до заполнения заданного прямоугольника2
TextHeightFUNCTION (Text$) AS WORDВозвращает высоту, в пикселях, строки Text$1
TextWidthFUNCTION (Text$) AS WORDВозвращает ширину, в пикселях, строки Text$1
TextRectSUB (Rect AS QRECT, x%, y%, S$, fc%, bc%)Выводит текст, обрезая по границам региона Rect6
TextOutSUB (x%, y%, S$, fc%, bc%)Выводит текст на рисунок5

QHeader События
СобытиеТипПроисходит когда...Параметры




OnDrawSectionSUB (Index%, Pressed%, Rect AS QRECT)A header section needs to be redisplayed. Header section's Style property must be hsOwnerDraw3
OnMouseDownSUB (Button%, X%, Y%, Shift%)Нажатие кнопки мыши4
OnMouseMoveSUB (X%, Y%, Shift%)Движение мыши3
OnMouseUpSUB (Button%, X%, Y%, Shift%)Кнопка мыши отпущена4
OnResizeVOIDSize of header control changes0
OnSectionClickSUB (Index%)Header section Index% is clicked1
OnSectionResizeSUB (Index%)Header section is resized1
OnSectionTrackSUB (Index%, Width%, State%)Header section is dragged3


QHeader Примеры
$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

Предыдущий Компонент Содержание Следующий Компонент