' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' QDockForm 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 Field Type Read/Write Default Value =================== =================== =================== =================== Align INTEGER RW 3 You should use this property over the left and top properties AltAlign INTEGER RW 0 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) AltDock INTEGER R 0 Returns TRUE if the form is docked in the alternative position, otherwise FALSE AltPanel.Parent QFORM RW This This must be set to where you would like your form's alternative docking location to be. CanClose INTEGER RW False TRUE if the form can close (has a close button at the top right), otherwise FALSE Canvas QCANVAS RW Use for drawing on the panel - use with the OnPaint event Caption STRING RW 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 Client QPANEL RW 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 Closed INTEGER R False Returns TRUE if the form is closed, otherwise False Docked INTEGER R True Returns TRUE if the form is currently docked. The form is always docked on creation DockStyle INTEGER RW 0 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 DragCursor INTEGER RW -21 The cursor to be displayed when it is over the draggable section of the form Font QFONT W Height INTEGER RW Get or set the form's vertical size (in pixels). You should use align instead Left INTEGER RW 0 Specifies the left edge of the form relative to the desktop screen. You should use align instead Locked INTEGER RW False 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. Parent QFORM W Sizeable INTEGER RW False 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_TitleBackground INTEGER RW 0 Color of the form's caption background for DockStyle 1 and UndockStyle 1 Style INTEGER RW 0 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' TitleColor INTEGER RW 0 Color of the form's caption text (if any) Top INTEGER RW 0 UndockedForm.Handle INTEGER R Get the form's handle for WinAPI calls. UndockedForm.Parent INTEGER W This Set the parent when undocked UndockedHeight INTEGER RW 400 Height of form when undocked - overridden when sized. UndockedWidth INTEGER RW 170 UndockStyle INTEGER RW 0 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 Width INTEGER RW 320 Visible INTEGER RW Do not use when the form is undocked QDockForm Methods Method Type Description Params =================== =================== =================== =================== Close SUB Close the form 0 0 = Undock 1 = Dock at original position 2 = Dock at SUB (Dock AS alternative (or Dock INTEGER) original if not 1 possible) This method is also used to show a closed form. QDockForm Events Event Type Occurs when... Params =================== =================== =================== =================== 'Docked' is true if the form was SUB (Docked AS docked, otherwise OnDock INTEGER, Alt AS false. 'Alt' is 2 INTEGER) true if it was docked in the alternative location Form requires OnPaint VOID repainting. Use 0 Canvas for drawing OnClose VOID Form is closing 0 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 ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb