Microsoft KB Archive/37315: Difference between revisions
(importing KB archive) |
m (Text replacement - "&" to "&") |
||
(2 intermediate revisions by the same user not shown) | |||
Line 94: | Line 94: | ||
' linenum Currently selected line | ' linenum Currently selected line | ||
' top Top line in scroll region | ' top Top line in scroll region | ||
' s& | ' s& Handle to a scroll bar | ||
' PtInside Boolean flag that indicates | ' PtInside Boolean flag that indicates | ||
' inside/outside of scroll region | ' inside/outside of scroll region | ||
Line 114: | Line 114: | ||
option base 1 | option base 1 | ||
SingleClick = -1: DoubleClick = -2: MaxLines = 10 | SingleClick = -1: DoubleClick = -2: MaxLines = 10 | ||
linenum=1: top=0: s& | linenum=1: top=0: s&=0: PtInside=0 | ||
dim s$(Maxlines), scr(4), bar(4), FontInfo(4), AnyPt(2) | dim s$(Maxlines), scr(4), bar(4), FontInfo(4), AnyPt(2) | ||
Line 120: | Line 120: | ||
SetRect bar(1), 113, 6, 129, 111 | SetRect bar(1), 113, 6, 129, 111 | ||
FrameRect varptr (scr(1)) | FrameRect varptr (scr(1)) | ||
NewScroll s& | NewScroll s&, bar(1), 1, 1, 10, 1 | ||
GetFontInfo FontInfo(1) | GetFontInfo FontInfo(1) | ||
FontHeight = FontInfo(1) + FontInfo(2) + FontInfo(4) | FontHeight = FontInfo(1) + FontInfo(2) + FontInfo(4) | ||
Line 128: | Line 128: | ||
next n | next n | ||
while Mouse (0) | while Mouse (0) <> DoubleClick | ||
ScrollText s& | ScrollText s&, scr(1), s$(1), top, MaxLines, linenum | ||
if Mouse (0) = SingleClick then | if Mouse (0) = SingleClick then | ||
PtInside = 0 | PtInside = 0 | ||
Line 140: | Line 140: | ||
end if | end if | ||
wend | wend | ||
DisposeScroll s& | DisposeScroll s& | ||
end | end |
Latest revision as of 14:14, 21 July 2020
Article ID: 37315
Article Last Modified on 1/8/2003
APPLIES TO
- Microsoft QuickBasic Compiler for Macintosh 1.0
This article was previously published under Q37315
SUMMARY
This article contains a sample program that creates and uses QuickBASIC scroll bars. Before attempting to write your own QuickBASIC program that uses scroll bars, we recommend that you research the following areas in the "Microsoft QuickBASIC for the Macintosh: BASIC Language Reference" manual:
Item Page(s) ---- ------- NewScroll 488 DisposeScroll 478 ScrollText 492 SetRect 495 FrameRect 402 SetPt 495 PtInRect 490 GetFontInfo 482 Mouse function 210-214
Scrolling is also discussed on Pages 432-434.
A program that defines scroll bars is provided further below. Two additional examples for defining scroll bars in QuickBASIC are "ToolBoxSampler" and "File Browser.source", which are located in the QB Demos folder on the Examples disk for QuickBASIC Version 1.00 for the Apple Macintosh.
MORE INFORMATION
Code Example
'PROGRAM: scroll 'DESCRIPTION: ' This programs puts up a scroll bar with an associated scrolling ' region. This region contains lines of text to be scrolled by ' clicking or dragging the scroll box around the scroll bar. ' Clicking on a particular line of text selects that line. And ' finally, a double-click ends the program. 'CONSTANTS: ' SingleClick Single click value ' DoubleClick Double-click value ' MaxLines Maximum number of text lines 'VARIABLES: ' linenum Currently selected line ' top Top line in scroll region ' s& Handle to a scroll bar ' PtInside Boolean flag that indicates ' inside/outside of scroll region ' s$() Array that holds text to be ' scrolled ' scr() Array that holds dimensions of ' scroll region (rectangle) ' bar() Array that holds dimensions of ' scroll bar (rectangle) ' FontInfo() Array that holds information ' about the current font ' AnyPt() Array that holds the (x,y) ' coordinates of the mouse pointer ' at the time of a single click, ' inside the scroll region ' FontHeight Vertical length of the current ' font defint a-z option base 1 SingleClick = -1: DoubleClick = -2: MaxLines = 10 linenum=1: top=0: s&=0: PtInside=0 dim s$(Maxlines), scr(4), bar(4), FontInfo(4), AnyPt(2) SetRect scr(1), 3, 6, 114, 111 SetRect bar(1), 113, 6, 129, 111 FrameRect varptr (scr(1)) NewScroll s&, bar(1), 1, 1, 10, 1 GetFontInfo FontInfo(1) FontHeight = FontInfo(1) + FontInfo(2) + FontInfo(4) for n = 1 to MaxLines read s$(n) next n while Mouse (0) <> DoubleClick ScrollText s&, scr(1), s$(1), top, MaxLines, linenum if Mouse (0) = SingleClick then PtInside = 0 SetPt AnyPt(1), Mouse(1), Mouse(2) PtInRect AnyPt(1), scr(1), PtInside if PtInside then linenum = (AnyPt(1) - scr(1)) \ (FontHeight + 4) + top top = 0 end if end if wend DisposeScroll s& end data one, two, three, four, five data six, seven, eight, nine, ten
Additional query words: MQuickB
Keywords: KB37315