'================= QMAXSPLITTER ==================
'
' This one's a doozy. A splitter control that emulates all of Delphi 6's
splitter styles.
' It's based on a QPanel rather than QCanvas ' like the original for two reasons:
' 1. To get a handle
' 2. To improve drawing and aligning
' There are still some issues with this component, and they are:
' 1. Mouse trapping - if you move the mouse too fast, you leave the
splitter behind. SetCapture
' doesn't seem to solve the problem, maybe sub-classing in the next version...
' 2. Setting MinSize to 0 sometimes causes resizing problems, I'm sure
this is an oversight
' in the math, but I can live with it for now.
' 3. There are stil problems with CREATE, most notably the order in which
ALIGNed components
' are created, as well as the order in which properties are assigned to
sibling windows
' (Uncomment the "Color" in Rich3 and run. See what I mean? Now place the
code for Rich3 AFTER
' the code for Split3. Problem solved!)
' Anyway, I had fun with it, I hope you will too.
' Psyclops )
' P.S. Sorry for the lack of comments, maybe in the
' next release...
'====================================================
' Sample program
'====================================================
$include "QMaxSplitter.inc"
CREATE Form AS QFORM
Caption = "Normal QSPLITTER - Blah!"
Visible = 1
Visible = 0
CREATE Splitter AS QSPLITTER
Align = 3
Width = 10
Beveled = 1
END CREATE
CREATE RichEd1 AS QRichEdit
Align = 3
END CREATE
CREATE RichEd2 AS QRICHEDIT
Align = 5
END CREATE
END CREATE
CREATE Form2 AS QFORM
Center
Caption = "QMAXSPLITTER - Cool!"
CREATE Pnl1 AS QPANEL
Align = 1
BevelOuter = 0
CREATE Rich3 AS QRICHEDIT
'Color = &HFF0000
Align = 3
END CREATE
CREATE Split3 AS QMAXSPLITTER
Style = rsNone
Beveled = 1
Align = 3
Cursor = -14
Hint = "Style: rsNone"
ShowHint = 1
END CREATE
CREATE Rich5 AS QRICHEDIT
Align = 5
END CREATE
END CREATE
CREATE Split1 AS QMAXSPLITTER
Align = 1
Style = rsSolid
Hint = "Style: rsSolid"
ShowHint = 1
MinSize = 0
END CREATE
CREATE Pnl5 AS QPANEL
Align = 5
BevelOuter = 0
CREATE Rich4 AS QRICHEDIT
Align = 4
END CREATE
CREATE Split4 AS QMAXSPLITTER
Align = 4
Cursor = -21
Width = 20
Style = rsUpdate
MinSize = 0
Hint = "Style: rsUpdate"
Beveled = 1
ShowHint = 1
END CREATE
CREATE Panel55 AS QPANEL
Align = 5
BevelOuter = 0
CREATE Rich55 AS QRICHEDIT
Align = 5
END CREATE
CREATE Split2 AS QMAXSPLITTER
Align = 2
Hint = "Style: rsPattern"
ShowHint = 1
Height = 5
MinSize = 0
END CREATE
CREATE Rich2 AS QRICHEDIT
Align = 2
END CREATE
END CREATE
END CREATE
END CREATE
Form.Show
Form2.Show
DO
DoEvents
LOOP UNTIL Form2.Visible = 0