Guidance
指路人
g.yi.org
software / rapidq / Examples / QObject / QDOCKFORM / qdockform.html

Register 
注册
Search 搜索
首页 
Home Home
Software
Upload

  
Appendix A: QDOCKFORM
Rapid-Q Documentation by William Yu (c)1999-2000 - Additional by Ben Laws (c) 2004 Appendix A: QDOCKFORM


DOCKFORM Component

QDockForm is a similar to QForm, however there is one main difference... This one can dock. It is more a QPanel when it is docked (which is what this type extends). Basically, you place this component (better using 'align') on the main form. You will only be able to dock this form in its original location, and using the style property you can tell it to dock wherever it's opposite to, or a location of your choice.

Do not use this as your main form - it will not work because this type was derived from QPANEL (And obviously you can't use QPANEL as a main form)
Also, (almost) all unused properties, methods and events have been disabled for the main panel, so you wouldn't even know it was a panel.

This component is unlikely to work on anything other than Windows

QDockForm Properties
FieldTypeRead/WriteDefault Value




AlignINTEGERRW3
You should use this property over the left and top properties
AltAlignINTEGERRW0
If 'style' is 1 then specify the alignment of the second location the form can dock at. If AltAlign is 0 then by default, the opposite alignment of the original position is used
(e.g. original = top, alternative = bottom)
AltDockINTEGERR0
Returns TRUE if the form is docked in the alternative position, otherwise FALSE
AltPanel.ParentQFORMRWThis
This must be set to where you would like your form's alternative docking location to be.
CanCloseINTEGERRWFalse
TRUE if the form can close (has a close button at the top right), otherwise FALSE
CanvasQCANVASRW
Use for drawing on the panel - use with the OnPaint event
CaptionSTRINGRW
Caption is the text that appears as the title of your dockable form. It will only appear depending on the docked and undocked styles you use
ClientQPANELRW
You should always use this panel for placing components inside the form.
e.g.
    ...
    CREATE Properties AS QDOCKFORM
        ...
        CREATE PropertiesGrid AS QSTRINGGRID
            Parent = Properties.Client        'This is where you set the parent to be the properties client panel
        END CREATE
    END CREATE
You can also change the panel, like a regular QPANEL
ClosedINTEGERRFalse
Returns TRUE if the form is closed, otherwise False
DockedINTEGERRTrue
Returns TRUE if the form is currently docked. The form is always docked on creation
DockStyleINTEGERRW0
Changes the appearance of the form.
Use styles 0 to 6, and 10. 7 to 9 are not used. They are for making your own toolbar styles. Anything past 10 is for making regular styles
This style is seen when the form is docked
DragCursorINTEGERRW-21
The cursor to be displayed when it is over the draggable section of the form
FontQFONTW
HeightINTEGERRW
Get or set the form's vertical size (in pixels). You should use align instead
LeftINTEGERRW0
Specifies the left edge of the form relative to the desktop screen. You should use align instead
LockedINTEGERRWFalse
Set to TRUE if the form is locked in its current docking position (i.e. cannot be moved), otherwise FALSE. Locking the form when it is not docked will result in the form not being able to move.
ParentQFORMW
SizeableINTEGERRWFalse
Specifies whether the form can be resized or not when undocked.
Using this is not advisable as there is no way of setting the minimum size of the form - yet.
ST1_TitleBackgroundINTEGERRW0
Color of the form's caption background for DockStyle 1 and UndockStyle 1
StyleINTEGERRW0
0 = The form will dock only where it is placed
1 = The form will dock where it is placed, and in another location specified by 'AltAlign'
TitleColorINTEGERRW0
Color of the form's caption text (if any)
TopINTEGERRW0
UndockedForm.HandleINTEGERR
Get the form's handle for WinAPI calls.
UndockedForm.ParentINTEGERWThis
Set the parent when undocked
UndockedHeightINTEGERRW400
Height of form when undocked - overridden when sized.
UndockedWidthINTEGERRW170
UndockStyleINTEGERRW0
Changes the appearance of the form.
Use styles 1 to 5, and 10. 6 to 9 are not used. They are for making your own toolbar styles. Anything past 10 is for making regular styles
This style is seen when the form is undocked
WidthINTEGERRW320
VisibleINTEGERRW
Do not use when the form is undocked


QDockForm Methods
MethodTypeDescriptionParams




CloseSUB Close the form 0
DockSUB (Dock AS INTEGER) 0 = Undock
1 = Dock at original position
2 = Dock at alternative (or original if not possible)

This method is also used to show a closed form.
1


QDockForm Events
EventTypeOccurs when...Params




OnDockSUB (Docked AS INTEGER, Alt AS INTEGER)'Docked' is true if the form was docked, otherwise false. 'Alt' is true if it was docked in the alternative location2
OnPaintVOIDForm requires repainting. Use Canvas for drawing0
OnCloseVOIDForm is closing0


QDockForm Examples
$INCLUDE "QDOCKFORM.inc"

DECLARE SUB SortStatusBar (Docked AS INTEGER, Alt AS INTEGER)
DECLARE SUB AddText
DECLARE SUB DockLeft
DECLARE SUB DockRight
DECLARE SUB Undock
DECLARE SUB Selected
DECLARE SUB ShowForm
DECLARE SUB FormClosed

CREATE Form AS QFORM
    Width = 640
    Height = 480
    Center
    Caption = "Docking windows example"
    CREATE MainEdit AS QRICHEDIT
        Align = 5
        Visible = 1
    END CREATE
    CREATE EventsPanel AS QDOCKFORM
        UndockedForm.Parent = Form
        Align = 4
        DockStyle = 10
        UndockedWidth = EventsPanel.Width
        AltPanel.Parent = Form
        Style = 1
        Caption = "Events - Locked"
        Client.BevelOuter = 0
        Canvas.Font.Name = "Tahoma"
        Locked = 1
        CREATE StringGrid AS QSTRINGGRID 
            Parent = EventsPanel.Client
            Align = 5
            ColCount = 2
            ColWidths(0) = EventsPanel.Client.Width / 2
            ColWidths(1) = EventsPanel.Client.Width / 2
            RowCount = 10
        END CREATE
    END CREATE
    CREATE ProjPanel AS QDOCKFORM
        AltPanel.Parent = Form
        'AltAlign = 4
        UndockedForm.Parent = Form
        Caption = "Project"
        Align = 3
        DockStyle = 1
        UnDockStyle = 1
        Style = 1
        Client.BevelOuter = 0
        Canvas.Font.Name = "Tahoma"
        UndockedWidth = ProjPanel.Width
        CanClose = 1
        OnClose = FormClosed
        CREATE ComponentsPanel AS QPANEL
            Parent = ProjPanel.Client
            Align = 5
            CREATE AddTextButton AS QBUTTON
                Left = 50
                Top = 150
                Caption = "Add Text"
                OnClick = AddText
            END CREATE
            CREATE DockLeftButton AS QBUTTON
                Top = 30
                Width = 70
                Left = 10
                Caption = "Dock Left"
                OnClick = DockLeft
            END CREATE
            CREATE DockRightButton AS QBUTTON
                Top = 30
                Width = 70
                Left = ComponentsPanel.Width - DockRightButton.Width - 20
                Caption = "Dock Right"
                OnClick = DockRight
            END CREATE
            CREATE UndockButton AS QBUTTON
                Left = (ComponentsPanel.Width - UndockButton.Width) / 2 - 10
                Top = 70
                Caption = "Undock"
                OnClick = Undock
            END CREATE
        END CREATE
    END CREATE
    CREATE ToolbarBox AS QDOCKFORM
        UndockedForm.Parent = Form
        Align = 1
        Height = 31
        DockStyle = 6
        UnDockStyle = 6
        UndockedWidth = 600
        UndockedHeight = 55
        AltPanel.Parent = Form
        Style = 1
        Caption = "Toolbar Example"
        CREATE Label AS QLABEL
            Parent = ToolbarBox.Client
            Caption = "Select a style:"
            Autosize = 1
            Top = 5
        END CREATE
        CREATE List AS QCOMBOBOX
            Parent = ToolbarBox.Client
            Left = 90
            Top = 2
            AddItems("0  - Striped","1  - Office XP","2  - Grips","3  - Striped (toolbar)","4  - Grips (toolbar)","5  - 3D (toolbar)","6  - Striped Horizontal (toolbar)","10 - Regular")
            ItemIndex = 1
            OnChange = Selected
        END CREATE
        CREATE ShowButton AS QBUTTON
            Parent = ToolbarBox.Client
            Top = 0
            Left = 290
            Caption = "Show Form"
            Enabled = 0
            OnClick = ShowForm
        END CREATE
    END CREATE
    CREATE StatusBarBox AS QDOCKFORM
        UndockedForm.Parent = Form
        Align = 2
        Height = 25
        DockStyle = 6
        UnDockStyle = 6
        UndockedWidth = 600
        UndockedHeight = 49
        AltPanel.Parent = Form
        Style = 1
        OnDock = SortStatusBar
        Caption = "Status Bar"
        CREATE SB AS QSTATUSBAR
            Parent = StatusBarBox.Client
            Align = 5
            SizeGrip = 0
            AddPanels("This Statusbar can be moved!", "I'm Docked at the Bottom!")
            Panel(0).Width = 160
        END CREATE
    END CREATE
END CREATE        

Form.ShowModal

SUB SortStatusBar (Docked AS INTEGER, Alt AS INTEGER)
    IF Docked = 0 THEN
        SB.Panel(1).Caption = "I'm Not Docked Anywhere!"
        EXIT SUB
    END IF
    IF Docked = 1 THEN
        SB.Panel(1).Caption = "I'm Docked at the " + IIF(Alt = 1, "Top", "Bottom")
    END IF
END SUB

SUB AddText
    MainEdit.AddString("You just added some text")
END SUB

SUB DockLeft
    ProjPanel.Dock(1)
END SUB

SUB DockRight
    ProjPanel.Dock(2)
END SUB

SUB Undock
    ProjPanel.Dock(0)
END SUB

SUB Selected
    ProjPanel.DockStyle = VAL(LEFT$(List.Item(List.ItemIndex), 2))
    ProjPanel.UnDockStyle = VAL(LEFT$(List.Item(List.ItemIndex), 2))
    ProjPanel.Canvas.Repaint
END SUB

SUB ShowForm
    ShowButton.Enabled = 0
    ProjPanel.Dock(ProjPanel.AltDock + 1)
    
END SUB

SUB FormClosed
    ShowButton.Enabled = 1
END SUB

1
2004-03-14 04:54
掌柜推荐
 
 
 
 
 
 
 
 
 
 
 
 
© Sat 2023-2-4  Guidance Laboratory Inc.
Email:webmaster1g.yi.org Hits:0 Last modified:2004-03-14 04:54:04