202:
Can I use code completion without any UI
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:CodeCompletion := 1/*exCodeCompletionEnableNoUI*/
		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()
		oEdit:Context():Add("class")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
201:
How can I hide the control's horizontal scroll bar
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:ScrollBars := 2/*exVertical*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
200:
Is it possible to change the line's height

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineHeight := "value + 8 * dpi"
		oEdit:DrawGridLines := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
199:
How to bold everything between two * (asterisk) characters

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oStdFont

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oStdFont := oEdit:Font()
			oStdFont:Name := "Consolas"
			oStdFont:Size := 12
		oEdit:AddExpression("<fgcolor=FF0000><b>*","<fgcolor=FF0000> ","<fgcolor=FF0000><b>*")
		oEdit:InsertText("some text * another text * other text\r\n",1)
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
198:
How to bold everything that starts with * (asterisk), to the end of the line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oStdFont

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oStdFont := oEdit:Font()
			oStdFont:Name := "Consolas"
			oStdFont:Size := 12
		oEdit:AddWild("<fgcolor=FF0000><b>\**")
		oEdit:InsertText("some text * another text * other text\r\n",1)
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
197:
How to make a * (asterisk) bold, not the entire / rest line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oStdFont

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oStdFont := oEdit:Font()
			oStdFont:Name := "Consolas"
			oStdFont:Size := 12
		oEdit:AddWild("<fgcolor=FF0000><b>\*")
		oEdit:InsertText("some text * another text * other text\r\n",1)
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
196:
How can I change the control's font (template)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Template := "Font { Name = `Consolas`; Size = 12 }"
		oEdit:AddKeyword("<fgcolor=FF0000>class</fgcolor>")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
195:
How can I change the control's font (runtime)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oStdFont

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oStdFont := oEdit:Font()
			oStdFont:Name := "Consolas"
			oStdFont:Size := 12
		oEdit:AddKeyword("<fgcolor=FF0000>class</fgcolor>")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
194:
When I click and drag to try and select some text, sometimes my cursor turns into a hand and drags the whole text in the window around. I would like to disable this feature, could you tell me what it is called so I can disable it please
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:OLEDropMode := -1/*exOLEDropAutomatic*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
193:
How can I display information about events the control fires

PROCEDURE OnEvent(oEdit,EventID)
	DevOut( Transform(oEdit:EventParam(-2),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Event := {|EventID| OnEvent(oEdit,EventID)} /*Notifies the application once the control fires an event.*/

		oEdit:AddWild("<fgcolor=808080>(?*)</fgcolor>")
		oEdit:AddKeyword("<b>class</b>","a set or category of things having some property or attribute in common and differentiated from others by kind, type, or quality")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
192:
How do I highlights words based on wild characters

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddWild("<fgcolor=0000FF><b>[MC]*_HANDLER*</b></fgcolor>(*)")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
191:
How do I highlights words based on wild characters

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddWild("<fgcolor=0000FF><b> *</b></fgcolor>(*)*;")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
190:
How can I provide different tooltip for the same keyword

PROCEDURE OnQueryContext(oEdit,XCursor,YCursor,QContext)
	QContext := YCursor
RETURN

PROCEDURE OnQueryContextToolTip(oEdit,QContext,Keyword,QToolTip,QToolTipTitle)
	QToolTip := QContext
	QToolTipTitle := "Keyword Found At Line:"
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:QueryContext := {|XCursor,YCursor,QContext| OnQueryContext(oEdit,XCursor,YCursor,QContext)} /*Queries for the context at the specified location, to provide different tooltips for the same keyword on QueryContextToolTip event.*/
		oEdit:QueryContextToolTip := {|QContext,Keyword,QToolTip,QToolTipTitle| OnQueryContextToolTip(oEdit,QContext,Keyword,QToolTip,QToolTipTitle)} /*Asks for the tooltip/title of the keyword on the context retrieved by the QueryContext event.*/

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:AddKeyword("<fgcolor=FF0000><b>keyword</b></fgcolor>")
		oEdit:Text := ""
		oEdit:InsertText("here's the keyword on the first line")
		oEdit:InsertText("\r\nhere's the keyword on the second line")
		oEdit:InsertText("\r\nhere's the keyword on the third line")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
189:
Is it possible to left, right or center align the inline tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:CaretLine := 6
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:TempInlineToolTip := "<font ;6>Left Alignment<br><c>Center Alignment<br><r>Right Alignment"
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
188:
Is it possible to display the inline tooltip with a different appearance than temporarily inline tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:AddKeyword("<b>class</b>","<r>a set or category of things having some property or attribute in common and differentiated from others by kind, type, or quality.")
		oEdit:AllowInlineToolTip := 513/*exInlineToolTipWordWrap+exInlineToolTip*/
		oEdit:SetProperty("Background",159/*exInlineToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oEdit:SetProperty("Background",158/*exInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:CaretLine := 6
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,40,0 } )  , .F. ))
		oEdit:SetProperty("Background",161/*exTempInlineToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oEdit:TempInlineToolTip := "<br><c><font ;12>This is a bit of text that's shown temporarily only. <br><c>Now, click the <off -4><b>class</b></off> keyword, in the top...<br>"
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
187:
How can I display the inline tooltip over the lines, instead pushing the lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oEdit:CaretLine := 3
		oEdit:TempInlineToolTip := "This is a bit of text that's shown under the current line, and it is displayed as soon as the control's caret is changed."
		oEdit:AllowInlineToolTip := 768/*exInlineToolTipWordWrap+exInlineToolTipOver*/
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
186:
Is it possible to display the inline tooltip all the time

PROCEDURE OnSelChange(oEdit)
	oEdit:TempInlineToolTip := "This is a bit of text that's shown under the current line, and it is displayed as soon as the control's caret is changed."
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SelChange := {|| OnSelChange(oEdit)} /*Occurs when the user selects text in the control.*/

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oEdit:CaretLine := 12
		oEdit:AllowInlineToolTip := 512/*exInlineToolTipWordWrap*/
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
185:
Is it possible to display images in the inline tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oEdit:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:CaretLine := 4
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,0x1000000)
		oEdit:AllowInlineToolTip := 512/*exInlineToolTipWordWrap*/
		oEdit:TempInlineToolTip := "<img>1</img>This is a bit of text that's shown programatically under the current line"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
184:
How can I change the visual appearance of the temporarily inline tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:CaretLine := 4
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,0x1000000)
		oEdit:AllowInlineToolTip := 512/*exInlineToolTipWordWrap*/
		oEdit:TempInlineToolTip := "This is a bit of text that's shown programatically under the current line"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
183:
How can I display programmatically the inline tooltip, but using word-wrapping

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:CaretLine := 4
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:AllowInlineToolTip := 512/*exInlineToolTipWordWrap*/
		oEdit:TempInlineToolTip := "This is a bit of text that's shown programatically under the current line"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
182:
How can I display programmatically the inline tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:CaretLine := 4
		oEdit:SetProperty("Background",160/*exTempInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:TempInlineToolTip := "<br><c>This is a bit of text that's shown programatically under the current line<br>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
181:
How can I show the inline tooltip with a different appearance

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:AddKeyword("<b>class</b>","a set or category of things having some property or attribute in common and differentiated from others by kind, type, or quality.")
		oEdit:AllowInlineToolTip := 513/*exInlineToolTipWordWrap+exInlineToolTip*/
		oEdit:SetProperty("Background",158/*exInlineToolTipBackColor*/,0x1000000)
		oEdit:SetProperty("Background",159/*exInlineToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,0,0 } )  , .F. ))
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
180:
Is it possible to prevent moving the lines after the inline tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:AddKeyword("<b>class</b>","a set or category of things having some property or attribute in common and differentiated from others by kind, type, or quality.")
		oEdit:AllowInlineToolTip := 769/*exInlineToolTipWordWrap+exInlineToolTipOver+exInlineToolTip*/
		oEdit:SetProperty("Background",158/*exInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
179:
How can I display the inline tooltip, when typing only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:ToolTipOnTyping := .F.
		oEdit:AddKeyword("<b>class</b>","a set or category of things having some property or attribute in common and differentiated from others by kind, type, or quality.")
		oEdit:AllowInlineToolTip := 514/*exInlineToolTipWordWrap+exInlineToolTipOnChange*/
		oEdit:SetProperty("Background",158/*exInlineToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
178:
How do I enable the inline tooltip support

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := -1
		oEdit:SetProperty("LineNumberBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:AddKeyword("<b>class</b>","a set or category of things having some property or attribute in common and differentiated from others by kind, type, or quality.")
		oEdit:AllowInlineToolTip := 513/*exInlineToolTipWordWrap+exInlineToolTip*/
		oEdit:SetProperty("Background",159/*exInlineToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
177:
How do I display a tooltip for a non-keyword

PROCEDURE OnMouseMove(oEdit,Button,Shift,X,Y)
	oEdit:ShowToolTip(oEdit:WordFromPoint(-1,-1),,,"+8","+8")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oEdit,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
176:
How do I get the text from the cursor

PROCEDURE OnMouseMove(oEdit,Button,Shift,X,Y)
	DevOut( oEdit:WordFromPoint(-1,-1) )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oEdit,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
175:
I've noticed that while I type, the control's sensitive context selects the item that contains the typing word, so the question is how can I disable it
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oContext := oEdit:Context()
			oContext:Add("exText")
			oContext:Add("exHTML")
			oContext:SetProperty("Options",7/*exContextDisableIncrementalSearchContains*/,.T.)
		oEdit:Text := ""
		oEdit:InsertText("Press CTRL+SPACE, and type h, so the exHTML is not selected.")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
174:
I have a context that inserts some comments, it is possible to set the cursor before comment begins, when user selects a value from the control's sensitive context
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddExpression("<fgcolor=008000>'</fgcolor>","<fgcolor=008000> </fgcolor>","")
		oContext := oEdit:Context()
			oContext:Add("exText (0)","0 ' specifies the exText flag")
			oContext:Add("exHTML (-1)","-1 ' specifies the exHTML flag")
			oContext:SetProperty("Options",6/*exContextInsertCaretPos*/,"(0:=value lfind `'`) < 0 ? -1 : ( =:0 - (len(1:=(value left =:0)) - len(ltrim(reverse(=:1)))))")
		oEdit:Text := ""
		oEdit:InsertText("Press CTRL + SPACE, and select any item, a number is inserted")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
173:
How can I show a different sensitive context when user press a key/character

PROCEDURE OnChange(oEdit)
	oEdit:ShowContext(oEdit:ChangeOnKey())
	oEdit:ActiveContextItems := ""
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext,oContext1,oContext2

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Change := {|| OnChange(oEdit)} /*Indicates that the control's text have changed.*/

		oEdit:Text := ""
		oEdit:InsertText("Press .(dot), :(color) or =(equal), to get different sensitive context")
		oEdit:ActiveContextItems := ""
		oContext := oEdit:Context("61")
			oContext:Add("Equal_1")
			oContext:Add("Equal_2")
		oContext1 := oEdit:Context("46")
			oContext1:Add("Dot_1")
			oContext1:Add("Dot_2")
		oContext2 := oEdit:Context("58")
			oContext2:Add("Colon_1")
			oContext2:Add("Colon_2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
172:
How can I allow spaces when control's sentitive context is shown/opened

PROCEDURE OnChange(oEdit)
	oEdit:ShowContext(oEdit:ChangeOnKey())
	oEdit:ActiveContextItems := ""
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Change := {|| OnChange(oEdit)} /*Indicates that the control's text have changed.*/

		oContext := oEdit:Context("61")
			oContext:Add("True (-1)","True")
			oContext:Add("False (-1)","False")
			oContext:SetProperty("Options",5/*exContextAllowSpaceOnFront*/,.T.)
		oEdit:Text := ""
		oEdit:InsertText("Press the = key and after that press the space keys")
		oEdit:InsertText("")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
171:
How can I display more pages on the control's senitive context

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext,oContext1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oContext := oEdit:Context()
			oContext:Add("First_1")
			oContext:Add("First_2")
		oContext1 := oEdit:Context("Second")
			oContext1:Add("Second_1")
			oContext1:Add("Second_2")
			oContext1:Add("Second_3")
		oEdit:ActiveContextItems := "Second"
		oEdit:PagesContextItems := ":Page<font ;6><off -4>1</off></font>,Second:Page<font ;6><off -4>2</off></font>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
170:
Is it possible to disable showing tooltip for items in the control's senitive context
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oContext := oEdit:Context()
			oContext:Add("Column")
			oContext:SetProperty("Options",3/*exContextItemToolTip*/,"This is bit of text that shown when user selects the <b>Column</b> item.")
			oContext:Add("Item")
			oContext:SetProperty("Options",3/*exContextItemToolTip*/,"This is bit of text that shown when user selects the <b>Item</b> item.")
			oContext:SetProperty("Options",2/*exContextAllowToolTip*/,.F.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
169:
How can I assign tooltips for items in the control's senitive context

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oContext := oEdit:Context()
			oContext:Add("Column")
			oContext:SetProperty("Options",3/*exContextItemToolTip*/,"This is bit of text that shown when user selects the <b>Column</b> item.")
			oContext:Add("Item")
			oContext:SetProperty("Options",3/*exContextItemToolTip*/,"This is bit of text that shown when user selects the <b>Item</b> item.")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
168:
By default, the control shows the Context(""). How can I display other items

PROCEDURE OnOnContext(oEdit,Start,Context)
	DevOut( "CurrentContext:" )
	DevOut( Transform(Context,"") )
	oEdit:ActiveContextItems := "Second"
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext,oContext1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:OnContext := {|Start,Context| OnOnContext(oEdit,Start,Context)} /*Occurs when the user invokes the control's context window.*/

		oContext := oEdit:Context()
			oContext:Add("First_1")
			oContext:Add("First_2")
		oContext1 := oEdit:Context("Second")
			oContext1:Add("Second_1")
			oContext1:Add("Second_2")
			oContext1:Add("Second_3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
167:
How can I show the control's sensitive context

PROCEDURE OnDblClick(oEdit,Shift,X,Y)
	oEdit:ShowContext("DB")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:DblClick := {|Shift,X,Y| OnDblClick(oEdit,Shift,X,Y)} /*Occurs when the user double clicks the left mouse button over an object.*/

		oContext := oEdit:Context("DB")
			oContext:Add("BEGIN_MSG_MAP")
			oContext:Add("<fgcolor=808080>MESSAGE_HANDLER")
			oContext:Add("<fgcolor=808080>COMMAND_HANDLER")
			oContext:Add("END_MSG_MAP")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
166:
How can I provide different sensitive context

PROCEDURE OnChange(oEdit)
	oEdit:ShowContext(oEdit:ChangeOnKey())
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext,oContext1,oContext2

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Change := {|| OnChange(oEdit)} /*Indicates that the control's text have changed.*/

		oEdit:Text := ""
		oEdit:InsertText("Press .(dot), :(colon) or CTRL + SPACE to invoke the control's context")
		oContext := oEdit:Context()
			oContext:Add("General_1")
			oContext:Add("General_2")
		oContext1 := oEdit:Context("46")
			oContext1:Add("Property_1")
			oContext1:Add("Property_2")
			oContext1:Add("Property_3")
		oContext2 := oEdit:Context("58")
			oContext2:Add("Method_1")
			oContext2:Add("Method_2")
			oContext2:Add("Method_3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
165:
How can I change the control's background/foreground colors while the control is locked/read-only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Locked := .T.
		oEdit:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oEdit:SetProperty("ForeColorLockedLine",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oEdit:SetProperty("BackColorLockedLine",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
164:
How can change the color for selected text, when the control has no focus

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:HideSelection := .F.
		oEdit:SelLength := 10
		oEdit:SetProperty("SelBackColorHide",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
163:
How do I change the "Incremental Search" caption

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Cursor",3/*exIncrementalSearchArea*/,"exHelp")
		oEdit:SetProperty("Caption",3/*exIncrementalSearchField*/,0/*exCaption*/,"Search for: %s")
		oEdit:SetProperty("IncrementalSearchError",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
162:
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:ScrollBars := 3/*exBoth*/
		oEdit:SetProperty("ScrollPartVisible",0/*exVScroll*/,65536/*exExtentThumbPart*/,.T.)
		oEdit:SetProperty("ScrollPartVisible",1/*exHScroll*/,65536/*exExtentThumbPart*/,.T.)
		oEdit:SetProperty("ScrollPartVisible",2/*0x2+*/,65536/*exExtentThumbPart*/,.T.)
		oEdit:ScrollWidth := 4
		oEdit:SetProperty("Background",276/*exVSBack*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEdit:SetProperty("Background",260/*exVSThumb*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oEdit:ScrollHeight := 4
		oEdit:SetProperty("Background",404/*exHSBack*/,oEdit:Background(276/*exVSBack*/))
		oEdit:SetProperty("Background",388/*exHSThumb*/,oEdit:Background(260/*exVSThumb*/))
		oEdit:SetProperty("Background",3/*exSizeGrip*/,oEdit:Background(276/*exVSBack*/))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
161:
How can I get ride of control's horizontal scroll bar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<b>CExHelperDialog</b>")
		oEdit:Refresh()
		oEdit:ScrollBars := 2/*exVertical*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
160:
How do I specify the characters to close the sensitive context

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL oContext

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:AddKeyword("<b>public</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()
		oContext := oEdit:Context()
			oContext:Add("<b>class</b>","",1)
			oContext:Add("<b>public</b>","",2)
			oContext:SetProperty("Options",1/*exContextAllowChars*/,"_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
159:
How do I sort items in the sensitive context

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:AddKeyword("<b>public</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()
		oEdit:Context():Add("<b>public</b>","",2)
		oEdit:Context():Add("<b>class</b>","",1)
		oEdit:Context():Sort(.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
158:
Can I add icons to the sensitive context

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()
		oEdit:Context():Add("<b>class</b>","",1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
157:
How can I change the keys combination that invokes the sensitive context

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:ContextKey := 544
		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()
		oEdit:Context():Add("class")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
156:
How do I enable or disable the sensitive context menu
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:CodeCompletion := 0/*exCodeCompletionDisable*/
		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()
		oEdit:Context():Add("class")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
155:
How can I add a sensitive context menu

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()
		oEdit:Context():Add("class")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
154:
Can I use wild characters to define keys in your control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddWild("<fgcolor=808080>(*)</fgcolor>")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
153:
Can I use wild characters to define keys in your control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddWild("_HANDLER<fgcolor=FF0000>(*)</fgcolor>")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
152:
How can I remove or delete all expressions

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddExpression("(","<b><fgcolor=FF0000> </fgcolor></b>",")",.F.)
		oEdit:ClearExpressions()
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
151:
How can I remove or delete an expression

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddExpression("(","<b><fgcolor=FF0000> </fgcolor></b>",")",.F.)
		oEdit:DeleteExpression("(")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
150:
How can I add an expression

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddExpression("(","<b><fgcolor=FF0000> </fgcolor></b>",")",.F.)
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
149:
How can I add an expression on multiple lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddExpression("<fgcolor=800000><b>BEGIN_MSG_MAP</b></fgcolor>","<b><fgcolor=FF0000> </fgcolor></b>","<fgcolor=800000><b>END_MSG_MAP</b></fgcolor>",.T.)
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
148:
How can I remove or delete all keywords
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<b><fgcolor=FF0000>class</fgcolor></b>")
		oEdit:ClearKeywords()
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
147:
How can I remove or delete keyword
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<b><fgcolor=FF0000>class</fgcolor></b>")
		oEdit:DeleteKeyword("class")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
146:
How do I add a keyword that's not case sensitive

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<b><fgcolor=FF0000>class</fgcolor></b>","","",2)
		oEdit:Refresh()
		oEdit:InsertText("ClasS\r\n",1)
		oEdit:InsertText("CLASS\r\n",1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
145:
How do I add a keyword that's not case sensitive

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<fgcolor=FF0000>class</fgcolor>","","",1)
		oEdit:Refresh()
		oEdit:InsertText("ClasS\r\n",1)
		oEdit:InsertText("CLASS\r\n",1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
144:
How can I assign a tooltip to a keyword

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<fgcolor=FF0000>class</fgcolor>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
143:
How do I add a keyword

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<fgcolor=FF0000>class</fgcolor>")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
142:
How do I add a keyword

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
141:
How can I display a tooltip as soon as the user types a keyword

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:ToolTipDelay := 1
		oEdit:ToolTipOnTyping := .T.
		oEdit:AddKeyword("<b>class</b>","this is a bit of text that's shown when the cursor hovers the <b>class</b> keyword.","exontrol.edit")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
140:
How do I change the color for a locked or a read only line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("ForeColorLockedLine",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oEdit:SetProperty("BackColorLockedLine",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEdit:SetProperty("LockedLine",1,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
139:
How do I lock or make read only a line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("LockedLine",1,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
138:
How do I start overtyping

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Overtype := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
137:
How do I get the selection

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:GetSelection(sy,sx,ey,ex)
		DevOut( Transform(sy,"") )
		DevOut( Transform(sx,"") )
		DevOut( Transform(ey,"") )
		DevOut( Transform(ex,"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
136:
How do I select multiple lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetSelection(0,0,10,0)
		oEdit:HideSelection := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
135:
How can I change the shape of the cursor when it hovers the selected text

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Cursor",4/*exSelectedText*/,"exHelp")
		oEdit:SelLength := 10
		oEdit:HideSelection := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
134:
How can I change the shape of the cursor when it hovers the incremental search area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Cursor",3/*exIncrementalSearchArea*/,"exHelp")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
133:
How can I change the shape of the cursor when it hovers the line numbers area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Cursor",2/*exLineNumberArea*/,"exHelp")
		oEdit:LineNumberWidth := 16

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
132:
How can I change the shape of the cursor when it hovers the bookmark area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Cursor",1/*exBookmarkArea*/,"exHelp")
		oEdit:BookmarkWidth := 16

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
131:
How can I change the shape of the cursor when it hovers the edit
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Cursor",0/*exEditArea*/,"exHelp")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
130:
How can I enable or disable OLE drag and drop operations
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:OLEDropMode := -1/*exOLEDropAutomatic*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
129:
How can I change the descriptions for items in the control's context menu

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Caption",2/*exContextMenu*/,16384/*exContextUndo*/,"U N D O")
		oEdit:SetProperty("Caption",2/*exContextMenu*/,16385/*exContextRedo*/,"R E D O")
		oEdit:SetProperty("Caption",2/*exContextMenu*/,16387/*exContextCut*/,"C U T")
		oEdit:SetProperty("Caption",2/*exContextMenu*/,16388/*exContextCopy*/,"C O P Y")
		oEdit:SetProperty("Caption",2/*exContextMenu*/,16389/*exContextPaste*/,"P A S T E")
		oEdit:SetProperty("Caption",2/*exContextMenu*/,16390/*exContextDelete*/,"D E L")
		oEdit:SetProperty("Caption",2/*exContextMenu*/,16392/*exContextSelectAll*/,"A L L ")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
128:
How can I change the descriptions for fields in the Replace dialog

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,202/*exFieldFindWhat*/,"What")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,204/*exFieldReplaceWith*/,"Replace")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,104/*exFieldWordOnly*/,"Word")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,105/*exFieldMatchCase*/,"Case")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,103/*exFieldFindNext*/,"Dir")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,113/*exFieldSelection*/,"Sel")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,114/*exFieldWholeFile*/,"File")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,21199/*exFieldReplace*/,"Rep")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,21200/*exFieldReplaceAll*/,"All")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,2/*exFieldCancel*/,"Abandon")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,32000/*exErrorTitle*/,"Title")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,32001/*exErrorFindNext*/,"Failed!")
		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,32001/*exErrorFindNext*/,"Done")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
127:
How can I change the descriptions for fields in the Find dialog

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Caption",0/*exFindDialog*/,202/*exFieldFindWhat*/,"What")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,104/*exFieldWordOnly*/,"Word")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,105/*exFieldMatchCase*/,"Case")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,103/*exFieldFindNext*/,"Dir")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,113/*exFieldSelection*/,"U")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,114/*exFieldWholeFile*/,"D")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,103/*exFieldFindNext*/,"Next")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,21199/*exFieldReplace*/,"All")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,2/*exFieldCancel*/,"Abandon")
		oEdit:SetProperty("Caption",0/*exFindDialog*/,32001/*exErrorFindNext*/,"Failed!")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
126:
How can I change the caption for the Replace dialog

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Caption",1/*exReplaceDialog*/,0/*exCaption*/,"Search and Replace")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
125:
How can I change the caption for the Find dialog

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Caption",0/*exFindDialog*/,0/*exCaption*/,"Search")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
124:
How can I move the cursor when user invokes the control's context menu

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:RClick := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
123:
How can I disable indenting the selected text when the user presses the TAB key
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:IndentOnTab := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
122:
How can I indent a line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := 18
		oEdit:HideSelection := .F.
		oEdit:SelectLine(3)
		oEdit:IndentSel(.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
121:
How can I show or hide the control's splitter

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AllowSplitter := 3/*exBothSplitter*/
		oEdit:SplitPaneHeight := 128
		oEdit:SplitPaneWidth := 128

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
120:
How can I select a line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberWidth := 18
		oEdit:HideSelection := .F.
		oEdit:SelectLine(3)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
119:
How do I change the font to display the line numbers

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:LineNumberFont():Name := "Tahoma"
		oEdit:LineNumberWidth := 18

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
118:
How can I change the height of the line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Font():Size := 32
		oEdit:DrawGridLines := .T.
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
117:
How can I show or hide the grid lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:DrawGridLines := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
116:
How do I highlight the position of multiple lines expression on the vertical scroll bar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:AllowMark := .T.
		oEdit:MarkContinueBlocks := .T.
		oEdit:AddKeyword("<b>CAxWnd")
		oEdit:AddExpression("<fgcolor=800000><b>BEGIN_MSG_MAP</b></fgcolor>","<b><fgcolor=FF0000> </fgcolor></b>","<fgcolor=800000><b>END_MSG_MAP</b></fgcolor>",.T.)
		oEdit:SetProperty("MarkColor","BEGIN_MSG_MAP",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEdit:SetProperty("MarkColor","END_MSG_MAP",AutomationTranslateColor( GraMakeRGBColor  ( { 128,0,0 } )  , .F. ))
		oEdit:SetProperty("MarkColor","CAxWnd",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
115:
How do I ignore \" in a string

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:InsertText("" + CHR(34) + "just a string \" + CHR(34) + "expression" + CHR(34) + "\r\n",1)
		oEdit:AddExpression("<fgcolor=800000><b>" + CHR(34) + "</b></fgcolor>","<b><fgcolor=FF0000> </fgcolor></b>","<fgcolor=800000><b>" + CHR(34) + "</b></fgcolor>",.T.)
		oEdit:SetProperty("IgnorePrefixInExpression","" + CHR(34) + "","\")
		oEdit:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
114:
How can I change the color for the line number's border

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("LineNumberBorderColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEdit:LineNumberWidth := 18

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
113:
How can I change the color for the bookmark's border

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("BookmarkBorderColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEdit:BookmarkWidth := 18

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
112:
Can I display a custom icon or picture for bookmarks

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oEdit:BookmarkImage := 1
		oEdit:SetProperty("Bookmark",2,.T.)
		oEdit:SetProperty("Bookmark",4,.T.)
		oEdit:BookmarkWidth := 18

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
111:
Can I display a custom icon or picture in the bookmark area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oEdit:SetProperty("BookmarkImageLine",2,1)
		oEdit:SetProperty("Bookmark",4,.T.)
		oEdit:BookmarkWidth := 18

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
110:
How do I remove the line's background color
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("BackColorLine",1,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEdit:ClearBackColorLine(1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
109:
How do I change the foreground color for a line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("ForeColorLine",1,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
108:
How do I change the background color for a line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("BackColorLine",1,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
107:
How can I add my own items in the control's context menu

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:ContextMenuItems := "New Item"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
106:
How do I ensure that a specified line is visible

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:EnsureVisibleLine(oEdit:Count())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
105:
How can I programmatically perform a REDO operation
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Redo()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
104:
How can I programmatically perform an UNDO operation
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:Undo()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
103:
How do I get the bookmarks as a list

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit
	LOCAL var_BookmarksList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Bookmark",2,.T.)
		oEdit:SetProperty("Bookmark",4,.T.)
		oEdit:BookmarkWidth := 16
		var_BookmarksList := oEdit:BookmarksList()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
102:
How can I move to the previous bookmark

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Bookmark",2,.T.)
		oEdit:SetProperty("Bookmark",4,.T.)
		oEdit:BookmarkWidth := 16
		oEdit:PrevBookmark()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
101:
How can I move to the next bookmark

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEdit

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oEdit := XbpActiveXControl():new( oForm:drawingArea )
	oEdit:CLSID  := "Exontrol.Edit.1" /*{39136531-DD0F-4281-B445-E36FC2CDDBC5}*/
	oEdit:create(,, {10,60},{610,370} )

		oEdit:SetProperty("Bookmark",2,.T.)
		oEdit:SetProperty("Bookmark",4,.T.)
		oEdit:BookmarkWidth := 16
		oEdit:NextBookmark()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN