View Full Version : scintilla (texteditor) example :)
largo_winch
19-05-2011, 11:34
hello. I have made a little scintilla example you can see as attachement (zip folder).
question: only one question around that in my code example. I wanted to have a messagebox with buffer (text) feedback. other things are all ok! perhaps anybody can check this code example.
for testing use: type in some words and push different buttons.
sunny days, largo
largo_winch
23-05-2011, 09:20
few progress I've done but I think nobody has big interests in scintilla (editor basis) example?
the example works. but I am still looking for getting buffer (here text) in message box. perhaps somebody can help.
%SCLEX_ThinBASIC doesn't exist so I have chosed %SCLEX_POWERBASIC.
buffer=trimfull$(nLen+1) or
buffer=iff$(nLen+1, %TRUE, %TRUE)
doesn't work for my idea. any idea?
zip folder I added.
scintillal example:
' Empty GUI script created on 05-21-2011 19:54:23 by (ThinAIR)
' Empty GUI script created on 05-19-2011 08:41:54 by largo_winch (ThinAIR)
Uses "ui","console"
'#INCLUDE "%APP_INCLUDEPATH%\scintillalw.inc"
#INCLUDE "scintillalw.inc"
%SCLEX_THINBASIC = 510
%ID_Sci = 2000 : %ID_Sci2 = 2001
%ID_Button = 2002 : %ID_Button2 = 2003
%ID_TEXT = 2004 : %ID_TEXT2 = 2005
Global hDlg, hSci, hSci2 As DWord
Declare Function LoadLibrary Lib "KERNEL32.DLL" Alias "LoadLibraryA" (lpLibFileName As Asciiz) As Long
Declare Function FreeLibrary Lib "KERNEL32.DLL" Alias "FreeLibrary" (ByVal hLibModule As DWord) As Long
'-------------------------> Main Dialog -------------------------------------------->
Function TBMain() As Long
Local hLib As DWord
hLib = LoadLibrary("SCILEXER.DLL")
Dialog New Pixels, 0, "Scintilla GetText+SetText Example",200,200,600,440, %WS_OVERLAPPEDWINDOW To hDlg
Control Add Button, hDlg, %ID_Button, "result1", 10,10,60,20
Control Add Button, hDlg, %ID_Button2, "result2", 300,10,60,20
Control Add "Scintilla", hDlg, %ID_Sci, "", 10,50,280,280, %WS_CHILD Or %WS_VISIBLE
Control Add "Scintilla", hDlg, %ID_Sci2, "", 310,50,280,280, %WS_CHILD Or %WS_VISIBLE
Control Handle hDlg, %ID_Sci To hSci
Control Handle hDlg, %ID_Sci2 To hSci2
Dialog Show Modal hDlg Call DlgProc
End Function
'---------------------------------> CALLBACK FUNCTIONS --------------------------->
CallBack Function DlgProc() As Long
Local txt As String, buffer As String
Local hLib As DWord, nLen As Long, v As Long
Select Case CBMSG
Case %WM_INITDIALOG
StartSci
Case %WM_COMMAND
If CBCTL = %ID_Button Then
nLen = SendMessage(hSci, %SCI_GETTEXTLENGTH, 0, 0)
MsgBox 0, "characters lenght: "+Str$(nLen) 'ok :)
'------------------------------------------------> ?
'Buffer = IIf$(nLen + 1,%TRUE,%TRUE)
Buffer = TrimFull$(nLen+99999)',%TRUE,%TRUE)
'------------------------------------------------> ?
'not ok: I need here a NUMERIC EXPRESSION
SendMessage(hSci, %SCI_GETTEXT, Len(Buffer), StrPtr(Buffer))
'SendMessage (hSci2, %SCI_SETTEXT, 0, StrPtr(Buffer))
SendMessage (hSci, %SCI_SetMarginWidthN, 0, 20)
MsgBox 0, buffer 'only for testpurpose to see the typed in text (in messagebox)!
End If
If CBCTL = %ID_Button2 Then
nLen = SendMessage(hSci2, %SCI_GETTEXTLENGTH, 0, 0)
MsgBox 0, "characters lenght: "+Str$(nLen) 'ok :)
BUFFER = TrimFull$(nLen+9999999)'buffer
'Buffer = IIf$(nLen + 1,%TRUE,%TRUE) '? 'not ok: I need here a NUMERIC EXPRESSION
SendMessage hSci2, %SCI_GETTEXT, Len(Buffer),StrPtr(buffer)
SendMessage hSci2, %SCI_SetMarginWidthN, 0, 20
MsgBox 0, buffer
End If
Case %WM_DESTROY
If hSci2 Then FreeLibrary hSci2
End Select
End Function
Sub StartSci()
Local bufferli, strKeyWords As String, iResult As Long
strKeyWords = "case if else end select then msgbox thinbasic values vertex super euro"
bufferli =" 'Enter some new values here"+$CRLF+_
""+$CRLF+_
" sin(25) + cos(24.25) + tan(22) if nothing else color "+$CRLF+_
" case 20.0 if 34.0 else 255.25 "+$CRLF+_
" end 56.30 select 40.2 then 88.24 vertex 1.0 " +$CRLF+_
" case 24.0 + ""yes!"" and end 24.45 ""gone"", " +$CRLF+_
"super oil petrol for 1.59 euro" + $NUL+$CRLF
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_KEYWORD, Rgb(0, 0, 255)
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_STRING, Rgb(255, 0, 255)
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_NUMBER,Rgb(192,100,0)
SendMessage hSci, %SCI_SETLEXER, %SCLEX_PowerBASIC, 0 '%SCLEX_ThinBASIC
SendMessage hSci, %SCI_SETKEYWORDS, 0, StrPtr(strKeyWords)
SendMessage hSci, %SCI_SetText, 0, StrPtr(bufferli)
SendMessage hSci, %SCI_SetMarginWidthN, 0, 20
End Sub bye, largo
ErosOlmi
23-05-2011, 22:31
Hi largo,
I changed your post in order to use CODE tags so source code is formatted and syntax highlight is used.
In order to get back a buffer of text, you first need to allocate a string buffer big enough for Scintilla. So, use something like the following to create a buffer:
Buffer = Repeat$(nLen+1, $SPC)
or something like
'---Repeat an equate (const $SPC that is const for space) for nLen + 1 times
Buffer = $SPC(nLen+1)
or even something like
'---Repeat an equate (const $NUL that is like CHR$(0)) for nLen + 1 times
Buffer = $NUL(nLen+1)
so, any thinBasic way that allocate a string big enough to get your text back.
TrimFull$ (http://www.thinbasic.com/public/products/thinBasic/help/html/trimfull$.htm) cannot be used here because it does a completely different job: it remove spaces from a string and does not allocate a string buffer.
Let me know
Eros
largo_winch
24-05-2011, 11:42
thank you eros. I was looking for "$Space" term but didn't found in thinbasic command list, very good! these three command works! I prefer
Buffer = $SPC(nLen+1)
another curious question just for personal interest:
Can you please tell me if you are compiling (interpreting) a "file" or a "string" buffer (for example: by my simple scintilla text editor) to the specific (*module*)thinbasic.dll ? what's the right order to send data from thinair (editor) to the different module dll's? would be great to hear what's best working for it?
bye, largo
Hi largo...
I'm interested of course...
Also i have some experience with scintilla but i prefer to use scilexer as dll.
And i use version 1.6.8.0 for my MagicSmall for thinBasic(need update...)....
good work...
largo_winch
25-05-2011, 08:54
And i use version 1.6.8.0 for my MagicSmall for thinBasic(need update...)....
good work... hello aurel. thanks. Have you any link to magicSmall. source code included? Can you tell me what's the kind of compiling do you prefer (string, file) ? I wanted to understand how to compile a textfile like my little scintilla example above to an *.dll file.
1) I am using with my last example "scilexer.dll". but I didn't know all content of functions there.
2) found your "magicSmall" editor here at forum: good work too! :)
bye, largo
zlatkoAB
25-05-2011, 11:39
First my sci-based editor is not written in thinBasic then in EB.
Ok i will try translate some parts to thinBasic code and you will see
better how i do some things...;)
Aurel
zlatkoAB
25-05-2011, 18:31
It seems that some things not work very well with scintilla 1680.
So for now i got this:
'scintill thinBasic test1
Uses "ui"
'SCI CONSTANTS------------------------------------------------------------
%SCE_IB_DEFAULT = 1
%SCE_IB_LINECOMMENT = 2
%SCE_IB_BLOCKCOMMENT = 3
%SCE_IB_NUMBER = 4
%SCE_IB_KEYWORD = 5
%SCE_IB_TYPE = 6
%SCE_IB_SETID = 7
%SCE_IB_PREPROCESSOR = 8
%SCE_IB_STRING = 9
%SCE_IB_OPERATOR = 10
%SCE_IB_IDENTIFIER = 11
%SCE_IB_LABEL = 12
%SCE_IB_ASM = 13
'------------------------------
%SCI_SETLEXER = 4001
%SCI_STYLESETFORE = 2051
%SCI_STYLESETBACK = 2052
%SCI_STYLECLEARALL = 2050
%SCI_SETKEYWORDS = 4005
%SCI_STYLESETFONT = 2056
%SCI_STYLESETSIZE = 2055
%SCI_STYLESETBOLD = 2053
%SCI_SETMARGINWIDTHN = 2242
%SCI_SETMARGINTYPEN = 2240
%SCI_SETMARGINSENSITIVEN = 2246
%SCI_SETSELBACK = 2068
%SCI_GOTOLINE = 2024
%SCI_GETLINE = 2153
%SCI_GETLINECOUNT = 2154
%SCI_GETCURLINE= 2027
%SCI_SCROLLCARET=2169
%SCI_GOTOPOS=2025
%SCI_GETTEXT = 2182
%SCI_SETTEXT = 2181
%SCI_GETTEXTLENGTH = 2183
%SCI_CLEAR=2180
%SCI_CLEARALL=2004
%SCI_BRACEBADLIGHT=2352
%SCI_BRACEHIGHLIGHT=2351
%SCI_BRACEMATCH=2353
%SCI_GETSELECTIONEND=2145
%SCI_SETSELECTIONEND=2144
%SCI_SETCARETLINEVISIBLE=2096
%SCI_SETCARETFORE = 2069
%SCI_SETCARETLINEBACK = 2098
%SCI_UNDO = 2176
%SCI_CUT = 2177
%SCI_COPY = 2178
%SCI_PASTE = 2179
%ID_SCI = 24
%ES_SUNKEN = &h4000
'--------------------------------------------------------------------------
dim sciblue as string
'setkeywords
'--------------------------------------------------------------------------
Global hDlg As DWord
GLOBAL hLib,hsci,i as Long
Declare Function LoadLibrary Lib "KERNEL32.DLL" Alias "LoadLibraryA" (lpLibFileName As Asciiz) As Long
Declare Function FreeLibrary Lib "KERNEL32.DLL" Alias "FreeLibrary" (ByVal hLibModule As DWord) As Long
'-------------------------> Main Dialog -------------------------------------------->
Function TBMain() As Long
'open main window
DIALOG NEW Pixels, 0, "Scintilla GetText+SetText Example",20,20,600,440, %WS_OVERLAPPEDWINDOW To hDlg
'Control Add Button, hDlg, %ID_Button, "result1", 10,10,60,20
'Control Add Button, hDlg, %ID_Button2, "result2", 300,10,60,20
hLib = LoadLibrary("SciLexer.dll")
Control Add "Scintilla", hDlg, %ID_SCI, "",4,50,580,300, %WS_CHILD or %ES_SUNKEN or %WS_VISIBLE or %WS_EX_CLIENTEDGE or %WS_BORDER
Control Handle hDlg, %ID_SCI To hSci
'main setings
SENDMESSAGE hsci,%SCI_SETLEXER,40,1
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_DEFAULT,100
'SENDMESSAGE hsci,%SCI_STYLESETBACK,32,rgb(255,255,255)
SENDMESSAGE hsci,%SCI_STYLECLEARALL, 0, 1
'DIM hFont AS DWORD resource = Font_Create("Courier New", 10)
'SendMessage hsci, %WM_SETFONT, hFont, 0
dim fname as string
fname="Courier New"
For i = 1 to 13
SENDMESSAGE hsci,%SCI_STYLESETFONT, i,strptr(fname)
SENDMESSAGE hsci,%SCI_STYLESETSIZE, i,10
Next
'set few keywords-not work
'SENDMESSAGE hsci,%SCI_SETKEYWORDS, 0,"for next wend while dialog new function select case "
'set marginsize
SendMessage hSci,%SCI_SETMARGINWIDTHN, 0, 40
Dialog Show Modal hDlg Call DlgProc
End Function
'---------------------------------> CALLBACK FUNCTIONS --------------------------->
CALLBACK FUNCTION DlgProc() As Long
SELECT Case CBMSG
'*******************
Case %WM_COMMAND
Case %WM_DESTROY
If hSci<>0 Then FreeLibrary hSci
END SELECT
END FUNCTION
'------------------------------------------------------------------------------
SUB setkeywords()
sciblue="for next wend while dialog new function select case "
End sub
zlatkoAB
25-05-2011, 19:38
You also need to replace IBlexer with PowerBasic lexer becose syntax is
very similiar with thinBasic ,like this:
Select the PB lexer, load the PB keyword list and set the different synax colors:
SendScintillaMsg pSciWndData,%SCI_SETLEXER,%SCLEX_POWERBASIC,0 'Set PowerBasic lexer
SendScintillaMsg pSciWndData,%SCI_SETKEYWORDS,0,ByVal StrPtr(sPbKeyWords) 'Load the PB keyword list
sPbKeyWords="" 'Not longer needed
SendScintillaMsg pSciWndData,%SCI_STYLESETFORE,%SCE_B_DEFAULT,RGB(0 ,0,0) 'black
SendScintillaMsg pSciWndData,%SCI_STYLESETFORE,%SCE_B_COMMENT,RGB(1 28,128,128) 'dark gray
SendScintillaMsg pSciWndData,%SCI_STYLESETFORE,%SCE_B_NUMBER,RGB(12 8,0,0) 'dark red
SendScintillaMsg pSciWndData,%SCI_STYLESETFORE,%SCE_B_KEYWORD,RGB(0 ,0,255) 'blue
SendScintillaMsg pSciWndData,%SCI_STYLESETFORE,%SCE_B_STRING,RGB(0, 128,0) 'dark green
SendScintillaMsg pSciWndData,%SCI_STYLESETFORE,%SCE_B_OPERATOR,RGB( 0,0,0) 'black
SendScintillaMsg pSciWndData,%SCI_STYLESETFORE,%SCE_B_IDENTIFIER,RG B(0,0,0) 'black
'Usable other colors: violett=RGB(128,0,128), brown=RGB(128,64,0), red=RGB(255,0,0)
largo_winch
26-05-2011, 10:38
thank you zlatko for example! I will check your example. I found powerbasic keywords data in scilexer too and try to adapt it for my next examples.
important: does anybody know how I can get all "THINBASIC keywords"?
regards, largo
the file " thinBasic_Keywords " in the folder C:\thinBasic\thinAir\Syntax\thinBasic have all thinbasic keywords. drop it into notepad window to list it.
zlatkoAB
26-05-2011, 16:28
Some improvement ....
? i dont get it why string inside quote is blue and not purple ?
'scintill thinBasic test1
Uses "ui"
'SCI CONSTANTS------------------------------------------------------------
%SCE_IB_DEFAULT = 1
%SCE_IB_LINECOMMENT = 2
%SCE_IB_BLOCKCOMMENT = 3
%SCE_IB_NUMBER = 4
%SCE_IB_KEYWORD = 5
%SCE_IB_TYPE = 6
%SCE_IB_SETID = 7
%SCE_IB_PREPROCESSOR = 8
%SCE_IB_STRING = 9
%SCE_IB_OPERATOR = 10
%SCE_IB_IDENTIFIER = 11
%SCE_IB_LABEL = 12
%SCE_IB_ASM = 13
'------------------------------
%SCI_SETLEXER = 4001
%SCI_STYLESETFORE = 2051
%SCI_STYLESETBACK = 2052
%SCI_STYLECLEARALL = 2050
%SCI_SETKEYWORDS = 4005
%SCI_STYLESETFONT = 2056
%SCI_STYLESETSIZE = 2055
%SCI_STYLESETBOLD = 2053
%SCI_SETMARGINWIDTHN = 2242
%SCI_SETMARGINTYPEN = 2240
%SCI_SETMARGINSENSITIVEN = 2246
%SCI_SETSELBACK = 2068
%SCI_GOTOLINE = 2024
%SCI_GETLINE = 2153
%SCI_GETLINECOUNT = 2154
%SCI_GETCURLINE= 2027
%SCI_SCROLLCARET=2169
%SCI_GOTOPOS=2025
%SCI_GETTEXT = 2182
%SCI_SETTEXT = 2181
%SCI_GETTEXTLENGTH = 2183
%SCI_CLEAR=2180
%SCI_CLEARALL=2004
%SCI_BRACEBADLIGHT=2352
%SCI_BRACEHIGHLIGHT=2351
%SCI_BRACEMATCH=2353
%SCI_GETSELECTIONEND=2145
%SCI_SETSELECTIONEND=2144
%SCI_SETCARETLINEVISIBLE=2096
%SCI_SETCARETFORE = 2069
%SCI_SETCARETLINEBACK = 2098
%SCI_UNDO = 2176
%SCI_CUT = 2177
%SCI_COPY = 2178
%SCI_PASTE = 2179
%ID_SCI = 24
%ES_SUNKEN = &h4000
'--------------------------------------------------------------------------
dim sciblue as string
'setkeywords
'--------------------------------------------------------------------------
Global hDlg As DWord
GLOBAL hLib,hsci,i as Long
Declare Function LoadLibrary Lib "KERNEL32.DLL" Alias "LoadLibraryA" (lpLibFileName As Asciiz) As Long
Declare Function FreeLibrary Lib "KERNEL32.DLL" Alias "FreeLibrary" (ByVal hLibModule As DWord) As Long
'-------------------------> Main Dialog -------------------------------------------->
Function TBMain() As Long
'open main window
DIALOG NEW Pixels, 0, "Scintilla GetText+SetText Example",20,20,600,440, %WS_OVERLAPPEDWINDOW To hDlg
'Control Add Button, hDlg, %ID_Button, "result1", 10,10,60,20
'Control Add Button, hDlg, %ID_Button2, "result2", 300,10,60,20
hLib = LoadLibrary("SciLexer.dll")
Control Add "Scintilla", hDlg, %ID_SCI, "",4,50,580,300, %WS_CHILD or %ES_SUNKEN or %WS_VISIBLE or %WS_EX_CLIENTEDGE or %WS_BORDER
Control Handle hDlg, %ID_SCI To hSci
'main setings
SENDMESSAGE hsci,%SCI_SETLEXER,41,1
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_DEFAULT,100
SENDMESSAGE hsci,%SCI_STYLESETBACK,32,rgb(255,255,255)
SENDMESSAGE hsci,%SCI_STYLECLEARALL, 0, 1
'DIM hFont AS DWORD resource = Font_Create("Courier New", 10)
'SendMessage hsci, %WM_SETFONT, hFont, 0
dim fname as string
dim scired as string
dim sciblue as string
fname="Courier New"
For i = 1 to 13
SENDMESSAGE hsci,%SCI_STYLESETFONT, i,strptr(fname)
SENDMESSAGE hsci,%SCI_STYLESETSIZE, i,10
Next
'set work
scired = "uses string long strptr dword "
sciblue = "for next wend while dialog new select case "
sciblue = sciblue +"callback if then end function else dim as "
SENDMESSAGE hsci,%SCI_SETKEYWORDS, 0,strPtr(scired)
SENDMESSAGE hsci,%SCI_SETKEYWORDS, 1,strPtr(sciblue)
'//////////////////////////////////////////////////////////////
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_LINECOMMENT,rgb(0,120,0)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_BLOCKCOMMENT,rgb(0,120,0)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_NUMBER,RGB(180,0,0)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_KEYWORD,RGB(200,0,0)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_TYPE,RGB(0,0,200)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_SETID,rgb(0,0,195) 'orange/to dark blue
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_PREPROCESSOR,rgb(0,0,0)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_STRING,rgb(180,0,180)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_OPERATOR,rgb(0,0,220)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_IDENTIFIER,rgb(0,0,0)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_LABEL,rgb(0,0,0)
SENDMESSAGE hsci,%SCI_STYLESETFORE,%SCE_IB_ASM,rgb(0,0,0)
'////////////////////////////////////////////////////////////////
'set marginsize
SendMessage hSci,%SCI_SETMARGINWIDTHN, 0, 40
Dialog Show Modal hDlg Call DlgProc
End Function
'---------------------------------> CALLBACK FUNCTIONS --------------------------->
CALLBACK FUNCTION DlgProc() As Long
SELECT Case CBMSG
'*******************
Case %WM_COMMAND
Case %WM_DESTROY
If hSci<>0 Then FreeLibrary hSci
END SELECT
END FUNCTION
'------------------------------------------------------------------------------
SUB setkeywords()
sciblue="for next wend while dialog new function select case "
End sub
keywords which i have ( i think that some keywords missing...)
zlatkoAB
26-05-2011, 16:29
sub thinkeywords
scidblue="zero xprint_width xprint_style xprint_settray xprint_setpape xprint_set xprint_scale xprint_line xprint_gettextwidth xprint_gettextsize "
scidblue=scidblue + "xprint_gettextheight xprint_get xprint_formfeed xprint_font xprint_ellipse xprint_color xprint_close xprint_cance xprint_box xprint_attac "
scidblue=scidblue + "xprint$ xprint xpbutton_settoggle xpbutton_settextformat xpbutton_setimagesize xpbutton_setimagepos xpbutton_setimagemargi xpbutton_seticon xpbutton_setbitmap xpbutton_enabletheming "
scidblue=scidblue + "xpbutton_disabletheming xpbutton xor wor wmi_getdata with win_stretchdibits win_show win_setwindowlong win_settitle section_assign section_new section_init "
scidblue=scidblue + "win_setstretchbltmode win_setlayeredwindowattributes win_setforeground win_setfocus win_setcurso win_setclasslong win_setcapture win_selectobject win_screentoclien win_releasedc "
scidblue=scidblue + "win_releasecapture win_postmessage win_iszoomed win_isvisibl win_isiconic win_invalidaterect win_getwindowlong win_getwidth win_gettitle win_getsystemmetrics "
scidblue=scidblue + "win_getsyscolorbrush win_getsyscolor win_getstockobject win_getparent win_getheight win_getforeground win_getfocus win_getdlgitem win_getdlgctrlid win_getdc "
scidblue=scidblue + "win_getcursorpos win_getcursor win_getclientrec win_getclass win_getactiv win_get win_flash win_findbytitle win_findbyclass win_endpaint "
scidblue=scidblue + "win_deleteobject win_deletedc win_createpatternbrush win_createcompatibledc win_createcompatiblebitmap win_clienttoscreen win_childwindowfrompoint win_bringwindowtotop win_blockinput win_beginpaint "
scidblue=scidblue + "win_animate window widechartoutf8$ while wend webbrowser_stop webbrowser_refresh webbrowser_readystate webbrowser_navigate2 webbrowser_navigate "
scidblue=scidblue + "webbrowser_locationurl webbrowser_locationnam webbrowser_gohome webbrowser_goforward webbrowser_goback webbrowser_doc2_writestring webbrowser_doc2_writelnstring webbrowser_doc2_setelementinnerhtmlbyid webbrowser_doc2_gettitle webbrowser "
scidblue=scidblue + "webbrowser_doc2_getelementvaluebyid webbrowser_doc2_getelementinnerhtmlbyid webbrowser_doc2_getelementattributebyid webbrowser_create webbrowser_busy webbrowser waitkey viewport_setchildautosize viewport_setchild viewport_getchild "
scidblue=scidblue + "viewport verify vbregexp_test vbregexp_setpattern vbregexp_setignorecase vbregexp_setglobal vbregexp_replace vbregexp_release vbregexp_new vbregexp_execute "
scidblue=scidblue + "vbmatch_getvalue vbmatch_getlengt vbmatch_getfirstindex vbmatchcollection_getitem vbmatchcollection_getcoun varptr variantvt$ variantvt variant$ variant# "
scidblue=scidblue + "variant variable_getinfo variable_exists variable_exist value val utf8towidechar utf8toansi$ using$ using "
scidblue=scidblue + "uses user updown_setrange updown_setposition updown_setbuddy updown_setbase updown_setaccel updown_getrangemin updown_getrangemax updown_getposition "
scidblue=scidblue + "updown_getbuddy updown_getbase updown until unthem units uniqu union unicode2ascii ui_imagectx_setimageadjustment "
scidblue=scidblue + "ui_imagectx_setbkcolor ui_imagectx_redraw ui_imagectx_loadimage ui_imagectx_getimagewidth ui_imagectx_getimageheigh ui_imagectx_getimageadjustment ui_imagectx_getbkcolor ui_imagectx_getbitmaphandle ui_imagectx_clearimage ui_imagectx "
scidblue=scidblue + "uint32 uint16 udp_send udp_recv udp_openserver udp_open udp_notify udp_freefile udp_close ucode$ "
scidblue=scidblue + "ucase$ ucase uboun type tstr trn trimme trimfull$ trim$ treeview_unselect "
scidblue=scidblue + "treeview_setuser treeview_settextcolor treeview_settext treeview_setlinecolor treeview_setindent treeview_setimagelist treeview_setexpanded treeview_setcheck treeview_setbold treeview_setbkcolor "
scidblue=scidblue + "treeview_select treeview_reset treeview_insertitem treeview_getuser treeview_gettext treeview_getselect treeview_getroot treeview_getpreviou treeview_getparent treeview_getnext "
scidblue=scidblue + "treeview_getexpanded treeview_getcount treeview_getchild treeview_getcheck treeview_getbold treeview_delete treeview transpos tran trackbar_setticfreq "
scidblue=scidblue + "trackbar_setthumblength trackbar_setrange_min trackbar_setrange_max trackbar_setrange trackbar_setpos trackbar_setlinesize trackbar_getrange_mi trackbar_getrange_ma trackbar_getpos trackbar "
scidblue=scidblue + "topmost tooltip toolbar_setstate toolbar_setimagelist toolbar_getstate toolbar_getcount toolbar_deletebutton toolbar_addseparator toolbar_addbutton toolbar "
scidblue=scidblue + "tokenizer_searchsensitive tokenizer_movetoeol tokenizer_keysetuserstrin tokenizer_keysetusernumbe tokenizer_keygetuserstrin tokenizer_keygetusernumbe tokenizer_keygetsubtype tokenizer_keygetname tokenizer_keygetmaintyp tokenizer_keyf "
scidblue=scidblue + "tokenizer_keyadd tokenizer_getnexttoken tokenizer_default_set tokenizer_default_get tokenizer_default_cod tokenizer_default_cha to tix_end tix timer "
scidblue=scidblue + "time$ timage_width timage_unloa timage_save timage_resiz timage_load timage_heigh timage_handl timage_getbitsptr timage_getbitmapinfo "
scidblue=scidblue + "this then textbox text tcp_sen tcp_recvbuffer tcp_recv tcp_prin tcp_openserver tcp_open "
scidblue=scidblue + "tcp_notify tcp_lineinput tcp_freefile tcp_close tcp_accep tburl32 tbgl_viewpor tbgl_vertex tbgl_usevsyn tbgl_usetexturing "
scidblue=scidblue + "tbgl_usetextureflag tbgl_usetexture tbgl_usequery tbgl_uselinestippleflag tbgl_uselinestipple tbgl_uselightsourceflag tbgl_uselightsource tbgl_uselightingfla tbgl_uselighting tbgl_usefogflag "
scidblue=scidblue + "tbgl_usefog tbgl_usedepthmask tbgl_usedepthflag tbgl_usedepth tbgl_useclipplaneflag tbgl_useclipplane tbgl_useblendflag tbgl_useblend tbgl_usealphatest tbgl_updatecanvasproportions "
scidblue=scidblue + "tbgl_unbindperiodicfunction tbgl_translate tbgl_torus tbgl_texturingquery tbgl_texcoord2d tbgl_spriteupdate tbgl_spritesupdateall tbgl_spriteslide tbgl_spritesetvisible tbgl_spritesetvflip "
scidblue=scidblue + "tbgl_spritesetuserdata tbgl_spritesettexture tbgl_spritesettexfram tbgl_spritesettexcoor tbgl_spritesettag tbgl_spritesetspi tbgl_spritesetspeedxy tbgl_spritesetspeedangle tbgl_spritesetspeed tbgl_spritesetshado "
scidblue=scidblue + "tbgl_spritesetscale tbgl_spritesetpos tbgl_spritesetparentmode tbgl_spritesetparent tbgl_spritesetorder tbgl_spritesetlayer tbgl_spritesethflip tbgl_spritesetgroup tbgl_spritesetfriction tbgl_spritesetevent "
scidblue=scidblue + "tbgl_spritesetcolor tbgl_spritesetcollisionwith tbgl_spritesetcollisionwidt tbgl_spritesetcollisiontype tbgl_spritesetcollisionradiu tbgl_spritesetcollisionmode tbgl_spritesetcollisionheigh tbgl_spritesetcollisiongroup tbgl_spriteset "
scidblue=scidblue + "tbgl_spritesetanimtime tbgl_spritesetanimspee tbgl_spritesetanimgrou tbgl_spritesetanim tbgl_spritesetangl tbgl_spritesetalph tbgl_spritesetactiv tbgl_spritesdrawall tbgl_spritesdeleteal tbgl_spritescount "
scidblue=scidblue + "tbgl_spritescheckmouseall tbgl_spritesanimateall tbgl_spriteloadsheet tbgl_spriteloadanim tbgl_spriteload tbgl_spritegetvisibl tbgl_spritegetvectordist tbgl_spritegetvectorangl tbgl_spritegetvector tbgl_spritegetuserdatapointer"
scidblue=scidblue + "tbgl_spritegetuserdataid tbgl_spritegettexture tbgl_spritegettexfram tbgl_spritegettargetdist tbgl_spritegettargetangl tbgl_spritegettag tbgl_spritegetspi tbgl_spritegetspeedxy tbgl_spritegetspeedangle tbgl_spritegetspeed "
scidblue=scidblue + "tbgl_spritegetscale tbgl_spritegetpos tbgl_spritegetparen tbgl_spritegetorder tbgl_spritegetoldpo tbgl_spritegetlayer tbgl_spritegetid tbgl_spritegetgroup tbgl_spritegetfriction tbgl_spritegetcollisionwith "
scidblue=scidblue + "tbgl_spritegetcollisionwidth tbgl_spritegetcollisiontype tbgl_spritegetcollisionradiu tbgl_spritegetcollisionmode tbgl_spritegetcollisionheigh tbgl_spritegetcollisiongroup tbgl_spritegetchildid tbgl_spritegetchildcount tbgl_spriteget "
scidblue=scidblue + "tbgl_spritegetanimlength tbgl_spritegetanimgroup tbgl_spritegetangle tbgl_spritegetalpha tbgl_spritegetactiv tbgl_spritedrawat tbgl_spritedraw tbgl_spritedelete tbgl_spritecreatesheet tbgl_spritecreateanim "
scidblue=scidblue + "tbgl_spritecreate tbgl_spritecopy tbgl_spritecollided tbgl_spritecheckmouse tbgl_spriteanimate tbgl_spriteaddspin tbgl_spriteaddspeedxy tbgl_spriteaddspeed tbgl_sphere tbgl_showwindow "
scidblue=scidblue + "tbgl_showcursor tbgl_setwindowtitle tbgl_setwindowicon tbgl_setwindowed tbgl_setuplightsource tbgl_setupfog tbgl_setupclipplane tbgl_setprimitivequality tbgl_setmaterialtexture tbgl_setmaterialspecularexponent "
scidblue=scidblue + "tbgl_setmaterialspecular tbgl_setmaterialdiffuse tbgl_setmaterialambient tbgl_setlightparameter tbgl_setfullscreen tbgl_setdrawdistance tbgl_setactivefont tbgl_setactivebmpfon tbgl_scenerender tbgl_scenedestro "
scidblue=scidblue + "tbgl_scenecreate tbgl_scenecollid tbgl_scale tbgl_savescreenshot tbgl_rotatexyz tbgl_rotate tbgl_resetmatrix tbgl_resetkeystate tbgl_rendertotextur tbgl_rendermatrix3d "
scidblue=scidblue + "tbgl_rendermatrix2d tbgl_releasecanvas tbgl_rect tbgl_pushstateprotect tbgl_pushstate tbgl_pushmatri tbgl_pushmaterial tbgl_processperiodicfunction tbgl_printfont tbgl_printbmp "
scidblue=scidblue + "tbgl_print tbgl_pos3dtopos2d tbgl_popstateprotect tbgl_popstate tbgl_popmatri tbgl_popmaterial tbgl_polygonlook tbgl_pointsize tbgl_pointinside3d tbgl_point "
scidblue=scidblue + "tbgl_oglversionsupport tbgl_oglextensionsupport tbgl_normal tbgl_ngon tbgl_newmaterial tbgl_newlistspac tbgl_newlist tbgl_mousegetwheeldelta tbgl_mousegetrbutton tbgl_mousegetposy "
scidblue=scidblue + "tbgl_mousegetposx tbgl_mousegetmbutton tbgl_mousegetlbutton tbgl_maketexture tbgl_m15setvertexz tbgl_m15setvertexy tbgl_m15setvertexxyz tbgl_m15setvertexx tbgl_m15setvertextex tbgl_m15setvertextexx "
scidblue=scidblue + "tbgl_m15setvertextexx tbgl_m15setvertextexn tbgl_m15setvertexrgb tbgl_m15setvertexr tbgl_m15setvertexpsto tbgl_m15setvertexpara tbgl_m15setvertexlaye tbgl_m15setvertexg tbgl_m15setvertexb tbgl_m15setmodelvertexcount "
scidblue=scidblue + "tbgl_m15setdefaulttexturefilter tbgl_m15setbonechild tbgl_m15rotbonez tbgl_m15rotboney tbgl_m15rotbonex tbgl_m15rotbone tbgl_m15resetbones tbgl_m15recalcnormal tbgl_m15loadmodel tbgl_m15initmodelbuffers "
scidblue=scidblue + "tbgl_m15getvertexz tbgl_m15getvertexy tbgl_m15getvertexxyz tbgl_m15getvertexx tbgl_m15getvertextex tbgl_m15getvertextexx tbgl_m15getvertextexx tbgl_m15getvertextexn tbgl_m15getvertexrgb tbgl_m15getvertexr "
scidblue=scidblue + "tbgl_m15getvertexpstop tbgl_m15getvertexparam tbgl_m15getvertexlayer tbgl_m15getvertexg tbgl_m15getvertexb tbgl_m15getmodelvertexcount tbgl_m15getmodelpolycount tbgl_m15getmodeldimension tbgl_m15getbonechildcount tbgl_m15getbonechild "
scidblue=scidblue + "tbgl_m15erasechildbones tbgl_m15drawmodel tbgl_m15defbonereset tbgl_m15defbonelayer tbgl_m15defboneempty tbgl_m15defbonecolor tbgl_m15defbonebox tbgl_m15defboneancho tbgl_m15defboneaddverte tbgl_m15clearmodel "
scidblue=scidblue + "tbgl_m15applybones tbgl_m15addbonetreeitem tbgl_loadtexturesfromtiles tbgl_loadtexture tbgl_loadfont tbgl_loadbmpfont2d tbgl_loadbmpfont tbgl_linewidth tbgl_linestipple tbgl_line "
scidblue=scidblue + "tbgl_killfont tbgl_iswindow tbgl_ispointvisible tbgl_ispointbehindview tbgl_isfullscreen tbgl_getwindowmultikeystate tbgl_getwindowkeystate tbgl_getwindowkeyonce tbgl_getwindowclient tbgl_getwindowbmp "
scidblue=scidblue + "tbgl_getwindowanykeystate tbgl_getvsyncmaxframerate tbgl_getusetexturing tbgl_getuselighting tbgl_getusedepth tbgl_getuseblend tbgl_gettextureresolution tbgl_gettexturename tbgl_gettexturelist tbgl_getrendermatrixmode "
scidblue=scidblue + "tbgl_getprocaddress tbgl_getpixelinfo tbgl_getmultiasynckeystate tbgl_getlastglerror tbgl_getfullscreenmodes tbgl_getframerate tbgl_getdesktopinfo tbgl_getasynckeystate tbgl_gbufferrender tbgl_gbufferdestro "
scidblue=scidblue + "tbgl_gbufferdefinefromarray tbgl_gbuffercreate tbgl_fonthandle tbgl_evaluatepotmatch tbgl_errormessages tbgl_entityturn tbgl_entitytrackpo tbgl_entitysyncaxe tbgl_entitysetyzaxi tbgl_entitysetxzaxi "
scidblue=scidblue + "tbgl_entitysetxyaxis tbgl_entitysetuserpointer tbgl_entitysetuserdata tbgl_entitysetuse tbgl_entitysettexture tbgl_entitysettargetpo tbgl_entitysettarget tbgl_entitysetspecular tbgl_entitysetscale tbgl_entitysetrot "
scidblue=scidblue + "tbgl_entitysetpos tbgl_entitysetparent tbgl_entitysetname tbgl_entitysetfov tbgl_entitysetcutoff tbgl_entitysetcolormask tbgl_entitysetcolor tbgl_entitysetborderfad tbgl_entitysetambient tbgl_entitypush "
scidblue=scidblue + "tbgl_entitymove tbgl_entitygetzaxis tbgl_entitygetyaxis tbgl_entitygetxaxis tbgl_entitygetuserpointer tbgl_entitygetuserdatapointer tbgl_entitygetuse tbgl_entitygetpos tbgl_entitygetparent tbgl_entitygetname "
scidblue=scidblue + "tbgl_entitygetmatrix tbgl_entitygetfreeid tbgl_entitygetdistancepos tbgl_entitygetdistance tbgl_entitygetcollisioninfo tbgl_entitygetangleyz tbgl_entitygetanglexz tbgl_entitygetanglexy tbgl_entityfindnearestbypos tbgl_entityfindneare "
scidblue=scidblue + "tbgl_entityfindbypos tbgl_entitydetach tbgl_entitydestro tbgl_entitycreatetorus tbgl_entitycreatespher tbgl_entitycreatepivot tbgl_entitycreatemodelslot tbgl_entitycreatelight tbgl_entitycreatefuncslot tbgl_entitycreatedlslot "
scidblue=scidblue + "tbgl_entitycreatecylindercapped tbgl_entitycreatecylinder tbgl_entitycreatecamera tbgl_entitycreatebox tbgl_entitycopyto tbgl_entityattach tbgl_endprintbmp tbgl_endpoly tbgl_endlist tbgl_drawframe "
scidblue=scidblue + "tbgl_destroywindow tbgl_deletetexture tbgl_deletemateria tbgl_deletelistspac tbgl_deletelist tbgl_cylinder tbgl_createwindowex tbgl_createwindow tbgl_coloralpha tbgl_color "
scidblue=scidblue + "tbgl_clearframe tbgl_centercursor tbgl_canvasbound tbgl_camera tbgl_calllist tbgl_callingwindo tbgl_callingentit tbgl_buildfont tbgl_box tbgl_blendfunc "
scidblue=scidblue + "tbgl_bindtexture tbgl_bindperiodicfunction tbgl_bindcanvas tbgl_beginprintbmp tbgl_beginpoly tbgl_backcolor tbgl_alphafunc tbem_setzonetrigge tbem_setzonedata tbem_setzonecoords "
scidblue=scidblue + "tbem_setzoneactive tbem_settime tbem_setrepeat tbem_seteventfunc tbem_setdata tbem_setactive tbem_run tbem_getzoneid tbem_getzonedata2 tbem_getzonedata1 "
scidblue=scidblue + "tbem_getzonecount tbem_getzoneactiv tbem_gettriggercount tbem_getrepeattime tbem_getrepeatcoun tbem_geteventtype tbem_geteventstim tbem_geteventrepeatflag tbem_geteventid tbem_geteventgroup "
scidblue=scidblue + "tbem_geteventfunc tbem_geteventetim tbem_geteventcoun tbem_getdata tbem_getcurrtriggerdata2 tbem_getcurrtriggerdata1 tbem_getcurreventid tbem_deletezone tbem_deleteeven tbem_deleteallzones "
scidblue=scidblue + "tbem_deletealltrigger tbem_deleteallevents tbem_checkzones tbem_addzone tbem_addtrigger tbem_addevent tbdi_joyz tbdi_joyy tbdi_joyx tbdi_joystopeffect "
scidblue=scidblue + "tbdi_joyslider tbdi_joysetrangez tbdi_joysetrangey tbdi_joysetrangexyz tbdi_joysetrangex tbdi_joysetdeadzone tbdi_joysetdeadzone tbdi_joysetdeadzonexyz tbdi_joysetdeadzonex tbdi_joysetautocente "
scidblue=scidblue + "tbdi_joyrz tbdi_joyry tbdi_joyrx tbdi_joypo tbdi_joyplayeffect tbdi_joyloadeffect tbdi_joyhasff tbdi_joyhaseffect tbdi_joygetname tbdi_joygeteffectname "
scidblue=scidblue + "tbdi_joygeteffectguid tbdi_joycreateeffect tbdi_joycountpov tbdi_joycounteffects tbdi_joycountbtn tbdi_joycountaxe tbdi_joycount tbdi_joybuttononc tbdi_joybutton tbdi_joyavail "
scidblue=scidblue + "tbdi_init tbass_streamfree tbass_streamcreatefile tbass_setvolume tbass_seteaxpreset tbass_seteaxparameters tbass_setconfig tbass_set3dposition tbass_set3dfactors tbass_sampleload "
scidblue=scidblue + "tbass_samplegetchannel tbass_musicload tbass_musicfree tbass_init tbass_getvolume tbass_getversio tbass_getconfig tbass_free tbass_errorgetcode tbass_channelstop "
scidblue=scidblue + "tbass_channelsetposition tbass_channelsetattributes tbass_channelsetattribute tbass_channelset3dpositio tbass_channelseconds2byte tbass_channelplay tbass_channelpaus tbass_channelisactive tbass_channelgetposition tbass_channelgetleng "
scidblue=scidblue + "tbass_channelgetdata tbass_channelgetattributes tbass_channelgetattribute tbass_channelbytes2second tbass_apply3d tanh tangent tan tally tab_setselected "
scidblue=scidblue + "tab_reset tab_pagesettext tab_pageinsert tab_pagegettex tab_pagegethandle tab_pagegetcount tab_pagedelete tab_onresize tab_onnotify tab_ondestro "
scidblue=scidblue + "tab_getselected tab swa sum sub strzip$ strunzip$ strreverse$ strptrlen strptr "
scidblue=scidblue + "strinsert$ string$ string strformat$ strdelete$ str$ stop step stdout stdin "
scidblue=scidblue + "stderror stat_sum stat_stderror stat_stddeviation stat_random stat_produc stat_min stat_median stat_meanharmonic stat_meangeometri "
scidblue=scidblue + "stat_meanarithmetic stat_max stat_inversesum stat_histogram stat_fillarray stat_count stat_copyarray stat_clonearra stat_chisquare statusbar_settext "
scidblue=scidblue + "statusbar_setparts statusbar_seticon statusbar_onresiz statusbar_gettext statusbar_getpart statusbar_getheigh statusbar static state sqr "
scidblue=scidblue + "splitter_setsplitpospct splitter_setsplitpos splitter_setpanes splitter_setpaneminsize splitter_setbarsize splitter_setbackcolor splitter_create split sort some "
scidblue=scidblue + "smtp_statistics smtp_setoptionstr smtp_setoption smtp_setlogfil smtp_sendhtml smtp_sendemai smtp_geterror smtp_finished smtp_debug smtp_connect "
scidblue=scidblue + "smtp_close sleep sizeo size sinh singl sin signe shuffl show "
scidblue=scidblue + "shift shapetobmp sgn set seta set sendmessag sendkeysbul sendkeys send "
scidblue=scidblue + "selectexpression selected select sech sec sdec scrollbar_setrange scrollbar_setpos scrollbar_setpagesize scrollbar_gettrackpos "
scidblue=scidblue + "scrollbar_getrangelow scrollbar_getrangehi scrollbar_getpos scrollbar_getpagesiz scrollbar scan sapi_voicesget sapi_voiceset sapi_speak sapi_setvolum "
scidblue=scidblue + "sapi_setrate sapi_moduleloaded sapi_getvolume sapi_getrate rtrim$ rtf_settext rtf_setfontsiz rtf_setfontnam rtf_setfgcolor rtf_seteffect "
scidblue=scidblue + "rtf_setbgcolor rtf_setalign rtf_savetofile rtf_loadfromfile rtf_gettext rtf_getfontsize rtf_getfontname rtf_geteffect rtf_getclass rtf_appendtex "
scidblue=scidblue + "rset$ rrbutton round rotate$ rndf rnd2 rnd right$ right richedit_settext "
scidblue=scidblue + "richedit_setfontsize richedit_setfontname richedit_setfgcolor richedit_seteffect richedit_setbgcolo richedit_setalign richedit_savetofil richedit_loadfromfil richedit_gettext richedit_getfontsize "
scidblue=scidblue + "richedit_getfontname richedit_geteffect richedit_getclass richedit_appendtex rgb return resource resize reset replace$ "
scidblue=scidblue + "repeat$ remove$ remain$ rem registry_setvalue registry_settxtnu registry_settxtboo registry_setdword registry_pathexist registry_keyexists "
scidblue=scidblue + "registry_getvalue registry_gettxtnu registry_gettxtboo registry_getdword registry_getallkey registry_delvalue registry_delkey reference ref redraw "
scidblue=scidblue + "redim rawtext ras_setparams ras_opendialupdialog ras_loadentries ras_hangupall ras_hangup ras_getentry ras_begindia randomize "
scidblue=scidblue + "radtodeg queryperformancefrequency queryperformancecounter quad public ptr propertyroot_itemadd propertyroot_getcoun propertyroot_free propertyroot_create "
scidblue=scidblue + "propertylist_setpropertyroot propertylist_itemssetheight propertylist_itemsgetcount propertylist_itemselchange propertylist_itemgetptr propertylist_itemgetnam propertylist_itemdraw propertylist_itemadd propertylist_getpropertyroo pro "
scidblue=scidblue + "progressbar_stepit progressbar_setstate progressbar_setrange progressbar_setpos progressbar_setmarquee progressbar_setbkcolor progressbar_setbarcolor progressbar_getpos progressbar_getlolimit progressbar_gethilimit "
scidblue=scidblue + "progressbar_deltapos progressbar private printlerror printl printerror printat_fas printat_buffer printat print "
scidblue=scidblue + "preserve post popupmen popup poke$ poke pixel pixel pi permutations "
scidblue=scidblue + "peekmessage peek$ peek pc_systemupfrom pc_suspendstate pc_shutdown pc_showcare pc_setcaretblinktime pc_restartdialog pc_preventshutdown "
scidblue=scidblue + "pc_lock pc_insertcd pc_hidecare pc_getstateonoff pc_getscrolllockkeystate pc_getnumlockkeystate pc_getcaretblinktime pc_getcapslockkeystat pc_emptybin pc_ejectcd "
scidblue=scidblue + "pc_decodecderror pct patch$ parseset$ parsecoun parse$ parse parameter oxygen_eva overlay "
scidblue=scidblue + "outside os_winversiontext os_wingetversiontimeline os_shellexecute os_shellabout os_shell os_setlastcalldllerror os_servicestop os_servicestatusdescription os_servicestarttypedescription "
scidblue=scidblue + "os_servicestart os_servicesetstarttype os_servicequery os_servicegetstarttype os_servicegetlist os_processkillbyname os_processkillbyid os_processisrunnin os_processgetlist os_processgetid "
scidblue=scidblue + "os_processarerunning os_messagebeep os_iswow64 os_isfeaturepresent os_ieversion os_getwindowsdir os_getusername os_gettempdir os_getsystemdi os_getspecialfolder "
scidblue=scidblue + "os_getlastcalldllstatus os_getlastcalldllerror os_getcurrentthreadid os_getcurrentprocessi os_getcomputername os_getcommands os_getcommand os_flashwindo os_fatalappexi os_environ "
scidblue=scidblue + "os_decodeerrordialog os_decodeerror os_commandssetsep os_commandsgetsep os_commandpresent os_calldll orb or optional option "
scidblue=scidblue + "opt onlinescores_gettestingdata onlinescores_gethiscores onlinescores_getconnectionstate onlinescores_addresult once on of object_delete o2_view_file "
scidblue=scidblue + "o2_view o2_put o2_proc o2_proc o2_proc o2_proc o2_proc o2_proc o2_proc o2_proc "
scidblue=scidblue + "o2_prep o2_link o2_len o2_get o2_exe o2_eva o2_erro o2_buf o2_basi o2_asm_file "
scidblue=scidblue + "o2_asmo_file o2_asmo o2_asm number notb not nocall next new msgbox "
scidblue=scidblue + "mouseptr module modeless modal mod mlgrid_sort mlgrid_setselected mlgrid_setheadercolor mlgrid_setgridcolors mlgrid_setcolumnwidt "
scidblue=scidblue + "mlgrid_refresh mlgrid_redim mlgrid_put mlgrid_insertrows mlgrid_insertcols mlgrid_getcurrow mlgrid_getcurcol mlgrid_get mlgrid_formatcoltitles mlgrid_deleterows "
scidblue=scidblue + "mlgrid_deletecols mlgrid_cleargrid mlgrid mkwrd$ mks$ mkq$ mkl$ mki$ mke$ mkdwd$ "
scidblue=scidblue + "mkd$ mkcux$ mkcur$ mkbyt$ minsiz minmax minclientsize min$ min mid sendmessage "
scidblue=scidblue + "method menu mdi_tile mdi_subclassdialog mdi_sizeclient mdi_setextendedstyles mdi_sendmessage mdi_restore mdi_postquitmessage mdi_next "
scidblue=scidblue + "mdi_messageloop mdi_maximize mdi_iconarrange mdi_getactive mdi_destroy mdi_createclien mdi_cascade mdi_activat mc_exec mc_evalandexec "
scidblue=scidblue + "mc_eval$ mc_eval mcase$ max$ max mat masked makwrd maklng makint "
scidblue=scidblue + "makdwr ltrim$ lset$ lowrd loop long loin log_write logb log2 "
scidblue=scidblue + "log10 log local loc lo ll_updatebyname ll_update ll_tostring ll_tofile ll_prev "
scidblue=scidblue + "ll_next ll_name ll_last ll_getitemdata ll_getitem ll_getbynumber ll_fromfile ll_free ll_findbyname ll_findbydata "
scidblue=scidblue + "ll_deletelike ll_deletebyname ll_delete ll_databyname ll_data ll_coun ll_add listview_unselectitem listview_unselectallitems listview_sortitems "
scidblue=scidblue + "listview_setview listview_settextbkcolor listview_setitemtext listview_setitemstat listview_setitemselecte listview_setitem listview_setextendedstyl listview_setcolumnwidth listview_setcheckstate listview_setbkimage "
scidblue=scidblue + "listview_setbkcolor listview_selectallitems listview_insertitem listview_insertdata listview_insertcolumn listview_gettextbkcolor listview_getnextitem listview_getitemtext listview_getitemfirstselected listview_getitemcount "
scidblue=scidblue + "listview_getextendedstyle listview_getcountperpage listview_getcolumnwidth listview_getcheckstate listview_getbkcolor listview_findexact listview_find listview_ensurevisible listview_endupdate listview_deleteite "
scidblue=scidblue + "listview_deletecolumn listview_deleteallitems listview_beginupdate listview listbox line library_exists lib letter_setmask letter_getmask "
scidblue=scidblue + "letter$ len leftandright$ left$ left lcase lboun lan_getuserinformation lan_getuser lan_getuseinformation "
scidblue=scidblue + "lan_getuniversalname lan_getremainingname lan_getmachineinformation lan_getlastextendederror lan_getlasterror lan_getgroupinformation lan_getdcname lan_getconnectionname lan_disconnectdialog lan_connectdialog "
scidblue=scidblue + "lan_cancelconnection lan_addconnection label kill keystat join$ iterate iswindo isunicod istrue "
scidblue=scidblue + "isprime isodd islik isfals iseven ip_tostring ip_fromstring ip_addr inv internalinfo "
scidblue=scidblue + "integer int64 int32 int16 int instr insid inputbox$ ini_setke ini_getsectionslist killtimer "
scidblue=scidblue + "ini_getsectionkeylist ini_getkey inherit inet_urlgetstring inet_urldownload inet_ping inet_opendialupdialog inet_iptostring inet_iptonumber inet_internet_statusgetdescription "
scidblue=scidblue + "inet_internet_setstatuscallback inet_internet_readfile inet_internet_openurl inet_internet_open inet_internet_closehandle inet_http_queryinfo inet_getstate inet_getremotemacaddress inet_getip inet_getconnectionmode "
scidblue=scidblue + "incr in imagelist_new imagelist_kil imagelist_getcount imagelist_add imagelist imagectx_setimageadjustment imagectx_setbkcolor imagectx_redraw "
scidblue=scidblue + "imagectx_loadimage imagectx_getimagewidth imagectx_getimageheigh imagectx_getimageadjustment imagectx_getbkcolor imagectx_getbitmaphandle imagectx_clearimage imagectx image iif$ "
scidblue=scidblue + "iif if id icrypto_testsha1 icrypto_testmd5 icrypto_testcrc3 icrypto_testcrc1 icrypto_string2ascii icrypto_sha1 icrypto_md5 "
scidblue=scidblue + "icrypto_encryptrijndael icrypto_encryptrc4 icrypto_decryptrijndael icrypto_decryptrc4 icrypto_crc32 icrypto_crc16 icrypto_bytexor icrypto_bin2ascii icrypto_ascii2string icrypto_ascii2bin "
scidblue=scidblue + "icon icomplex_tostring icomplex_tanh icomplex_tan icomplex_subreal icomplex_subimag icomplex_sub icomplex_sqrtrea icomplex_sqrt icomplex_sinh "
scidblue=scidblue + "icomplex_sin icomplex_setreal icomplex_setimag icomplex_set icomplex_sec icomplex_sec icomplex_prin icomplex_powreal icomplex_pow icomplex_polar "
scidblue=scidblue + "icomplex_negative icomplex_mulreal icomplex_mulimag icomplex_mul icomplex_log icomplex_logabs icomplex_log10 icomplex_log icomplex_invers icomplex_getrea "
scidblue=scidblue + "icomplex_getimag icomplex_exp icomplex_equal icomplex_divreal icomplex_divimag icomplex_div icomplex_csc icomplex_csc icomplex_cot icomplex_cot "
scidblue=scidblue + "icomplex_cosh icomplex_cos icomplex_conjugate icomplex_arg icomplex_arcsin icomplex_arccos icomplex_addrea icomplex_addima icomplex_add icomplex_abs "
scidblue=scidblue + "icomplex_abs host_addr hostname_toi hostip_tonam hiwrd hirestimer_init hirestimer_get hirestimer_delt hiint hi "
scidblue=scidblue + "hex$ heap_size heap_realloc heap_free heap_allocbystr heap_alloc hash handle guidtxt$ guid$ "
scidblue=scidblue + "guid graphic gradien grab$ global getwindowmultikeystate getwindowkeystate getwindowanykeystate gettickcount gets "
scidblue=scidblue + "getmultiasynckeystate getmessage getdolooplevel getcurrentinstance getat getasynckeystate get function_nparams function_names function_name "
scidblue=scidblue + "function_list function_getstacklevel function_getptr function_exists function_cparam function ftp_setstring ftp_setserverdi ftp_setnumber ftp_setmode "
scidblue=scidblue + "ftp_setlogfile ftp_setlocaldi ftp_quit ftp_putfile ftp_getstring ftp_getserverdi ftp_getnumber ftp_getlocaldir ftp_getlist ftp_getfile "
scidblue=scidblue + "ftp_geterrorstring ftp_geterrornumber ftp_finished ftp_extract ftp_delfile ftp_connect ftp_command friend frame frac "
scidblue=scidblue + "format$ for font_list font_create font focu flus float80 float64 float32 "
scidblue=scidblue + "fix fil file_size file_shellmove file_shelldelete file_shellcopy file_setdatetime file_setattr file_seek file_save "
scidblue=scidblue + "file_rename file_putr file_put file_pathsplit file_open file_move file_lof file_loa file_lineprint file_lineinput "
scidblue=scidblue + "file_kill file_getversionstring file_getversion file_gettime file_getr file_getdatetimestamp file_getdatetime file_getdate file_getattr file_get "
scidblue=scidblue + "file_exists file_eof file_cop file_clos file_change file_append fileline_ope fileline_lineinput fileline_iseof fileline_getlinenumber "
scidblue=scidblue + "fileline_getfilesize fileline_getfilename fileline_getbytenumber fileline_close factorial extract$ extended extend ext export "
scidblue=scidblue + "exp2 exp1 exp exi exe_pe_isupx exe_pe_ismanaged exe_pe_isexe exe_pe_isdll exe_pe_is64 exe_pe_is32 "
scidblue=scidblue + "exe_pe_getsubsystemname exe_pe_getsubsystem exe_pe_getstackreserve exe_pe_getstackcommit exe_pe_getimportlist exe_pe_getheapreserv exe_pe_getheapcommit exe_pe_getexportlist exe_getversionstring exe_getversion "
scidblue=scidblue + "exe_gettypename exe_gettype exe_getmachinename exe_getmachine exe_enableexceptio exe_disableexceptio eval_string eval_setstring eval_setnumber eval_math "
scidblue=scidblue + "eval_linkext eval_getstring eval_getnumber eval_errorgettoken eval_errordescription eval_errorclear eval errclear err engine_getcurrenttoke "
scidblue=scidblue + "endif end enabl elsei else echo dword dt_yea dt_timetosec dt_timetomillisec "
scidblue=scidblue + "dt_timesubseconds dt_timeformat dt_timeaddseconds dt_settimeseparator dt_setdateseparator dt_setdatecentury dt_sectotime dt_sectodate dt_second dt_month "
scidblue=scidblue + "dt_minute dt_millisectotime dt_lastdayofmonth dt_isvaliddate dt_isleapyear dt_hour dt_getweekdayname dt_getweekday dt_gettimestamp dt_gettimeseparator "
scidblue=scidblue + "dt_gettime dt_getmonthname dt_getdateseparator dt_getdatecentury dt_getdate dt_day dt_datetosec dt_datetimesubseconds dt_datetimeaddseconds dt_datesubdays "
scidblue=scidblue + "dt_dateformat dt_datediff dt_dateaddday dt_cookiedate draw double dotproduct doevents do disk_siz "
scidblue=scidblue + "disk_free disable dir_remov dir_makeal dir_make dir_listarray dir_list dir_isempty dir_isdir dir_getcurren "
scidblue=scidblue + "dir_exists dir_changedrive dir_change dim digit_setmask$ digit_getmask$ digit$ dictionary_meminfo dictionary_listkey dictionary_free "
scidblue=scidblue + "dictionary_find dictionary_exists dictionary_create dictionary_count dictionary_add dialog_stopevent dialog_show dialog_setuser dialog_savefil dialog_openfil "
scidblue=scidblue + "dialog_new dialog_getuser dialog_getcontrol dialog_choosecolo dialog_browseforfolder dialog det deskto descending descend "
scidblue=scidblue + "delete degtorad decr declare date$ cycle_prev cycle_next cvwrd cvs cvq "
scidblue=scidblue + "cvl cvi cve cvdwd cvd cvcux cvcur cvbyt currency cur "
scidblue=scidblue + "cset$ csch csc crypto_getprovidertypescount crypto_getproviderscount crypto_getdefaultprovide crypto_genrandomstring crypto_enumprovidertypes crypto_enumproviders crypto_encrypt "
scidblue=scidblue + "crypto_decrypt createfont coth cota cosh cos control_settex control_gradientfill control_getwidth control_gettext "
scidblue=scidblue + "control_getnumber control_getlocy control_getlocx control_getid control_getheight control_gethandle control_appendtex controlid control const "
scidblue=scidblue + "console_writelineerror console_writeline console_writeerro console_write console_waitkey console_showwindo console_showcurso console_settitle console_settextattribute console_setstdhandle "
scidblue=scidblue + "console_setscreenbuffersize console_setprogressbarchar console_setoutputmode console_setoutputcp console_setinputmod console_setfileapistooem console_setfileapistoans console_setcursorsize console_setcursorpositio console_setcp "
scidblue=scidblue + "console_setactivescreenbuffer console_scrollwindow console_scrollbufferonerow console_scrollbuffer console_savescreen console_restorescree console_readline console_read console_progressbar console_printlineerro "
scidblue=scidblue + "console_printline console_printerro console_printat_fast console_printat_buffer console_printat console_print console_normalscreen console_line console_inkeyb console_inkey "
scidblue=scidblue + "console_hidecursor console_gettitle console_gettextattribute console_getstdhandle console_getsizey console_getsizex console_getprogressbarchar console_getoutputmode console_getoutputcp console_getnumberofmousebuttons "
scidblue=scidblue + "console_getinputmode console_gethandle console_getcursor console_getcursor console_getcursorsiz console_getcurrentfontindex console_getcp console_generatectrlevent console_fullscreen console_free "
scidblue=scidblue + "console_foregroundrgb console_enablectrlc console_disablectrl console_createscreenbuffer console_colorat console_cls_buffer console_cls console_box console_backgroundrgb console_attach "
scidblue=scidblue + "console_arefileapisansi console_alloc con com_variantinit com_variantgettype com_variantcopy com_variantclea com_variantchangetype com_succeeded com_stringfromclsid "
scidblue=scidblue + "com_setproperty com_setindexedproperty com_seterrorbehavior com_release com_queryinterface com_progidfromclsi com_isequaliid com_isequalgui com_isequalclsi com_getproperty "
scidblue=scidblue + "com_getobject com_getindexedproperty com_geterrorbehavior com_getengineguid com_getactiveobject com_execute com_displayerror com_createobject com_clsidfromstring com_clsidfromprogid "
scidblue=scidblue + "com_callmethod com_buildvariant comm_trecv comm_set comm_sen comm_rese comm_recv comm_prin comm_open comm_line "
scidblue=scidblue + "comm_get comm_freefile comm_eof comm_close combobox combinations color collate cls_buffer cls "
scidblue=scidblue + "clipboard_settext clipboard_gettext client clearmessages clear class chs chr chr$ choose$ choose "
scidblue=scidblue + "checkmissing checkduplicates checkbox check3state check chartooem$ cgi_writelogfil cgi_write cgi_urldecodestring cgi_uploadfilestime "
scidblue=scidblue + "cgi_uploadfilesnumber cgi_uploadfilesize cgi_startsession cgi_setsessionvariabl cgi_resetdefaultsettings cgi_removespecialcharsprefix cgi_removequote cgi_read cgi_loadconfigfile cgi_header "
scidblue=scidblue + "cgi_getsessionvariable cgi_getrequestmethod cgi_getqueryvalue cgi_getcurrentsessio cgi_getcurrentguid cgi_environ cgi_cfgsetoption cgi_cfggetoption cgi_addspecialcharsprefix cgi_addquote "
scidblue=scidblue + "ceil cdec case canvas_window canvas_setpos canvas_setpixel canvas_scale canvas_redra canvas_print canvas_print "
scidblue=scidblue + "canvas_polyline canvas_polygon canvas_line canvas_gradientfill canvas_getdc canvas_font canvas_ellipse_wh canvas_ellipse canvas_detach canvas_color "
scidblue=scidblue + "canvas_clear canvas_box_w canvas_box canvas_bitmapset canvas_bitmapsav canvas_bitmaprender canvas_bitmapgetfileinfo canvas_bitmapget canvas_attach canvas_arc_wh "
scidblue=scidblue + "canvas_arc canvas call_ifexists callback_wparam callback_notify_id callback_notify_handle callback_notify_code callback_notify_addres callback_message callback_lparam "
scidblue=scidblue + "callback_handle callback_control_message callback_control callback call byva byte byre bycop bycmd "
scidblue=scidblue + "button bundle_setscriptparameters bundle_setscriptname bundle_setflagverbos bundle_setflagobfuscatemainscript bundle_setflagisolation bundle_setflagdeleteafterrun bundle_setflagcompressallfiles bundle_setflagaskbeforeextract bundle_s "
scidblue=scidblue + "bundle_setcreationfolder bundle_setbundlename bundle_reset bundle_make bundle_builder bundle_addfolder bundle_addfile box boundcheck boolean "
scidblue=scidblue + "bitmap bin$ biff_writetext biff_writenumber biff_writedate biff_setrowheigh biff_setcolwidth biff_setcodepage biff_setbuffer biff_createfil "
scidblue=scidblue + "biff_closefile between begin beep bdec bar attac atn atan2 at elseif "
scidblue=scidblue + "assign asfile asciz ascii ascii2unicode ascending ascend asc as array "
scidblue=scidblue + "arctanh arcsinh arcsin arcsec arcsec arccsc arccsc arccot arccot arccos "
scidblue=scidblue + "arccos app_timer app_sourceversion app_sourcepath app_sourcename app_sourcefullnam app_setscriptversion app_setreturncode app_setentrypoint app_scriptversion "
scidblue=scidblue + "app_scriptpath app_scriptname app_scriptfullname app_path app_name app_mutexcreate app_mutexclose app_listvariables app_listkeywordsandsyntax app_listkeywords "
scidblue=scidblue + "app_listfunctions app_listequates app_includepath app_getmodulefullpath app_getentrypoint app_counter appendtotop append any ansitoutf8$ "
scidblue=scidblue + "animate_stop animate_play animate_open andb and all alia aler address add "
scidblue=scidblue + "acode$ accel abs %de #scriptversion #minversion #if #endif #elsei #else "
scidblue=scidblue + "#default #def cbhndl cbctl cbctlmsg cblparam cbwparam cbmsg cbnmcode cbnmhdr "
RETURN
ENDSUB
largo_winch
26-05-2011, 17:13
thanks zak and zlatko.
my last example already works with colored syntax.
for zlatko: here a new example with different colored syntax. push buttons to see the changing keywords :)
thanks for your example. see my "sub startsci()" part for coloring keywords with different rgb values. must work!
' Empty GUI script created on 05-21-2011 19:54:23 by (ThinAIR)
' Empty GUI script created on 05-19-2011 08:41:54 by largo_winch (ThinAIR)
Uses "ui","OS" '"console",
'#INCLUDE "%APP_INCLUDEPATH%\scintillalw.inc"
#INCLUDE "scintillalw.inc"
%SCLEX_THINBASIC = 510
%ID_Sci = 2000 : %ID_Sci2 = 2001
%ID_Button = 2002 : %ID_Button2 = 2003
%ID_TEXT = 2004 : %ID_TEXT2 = 2005
Global hDlg, hSci, hSci2 As DWord
Global path$
Global ScriptFile As String
Declare Function LoadLibrary Lib "KERNEL32.DLL" Alias "LoadLibraryA" (lpLibFileName As Asciiz) As Long
Declare Function FreeLibrary Lib "KERNEL32.DLL" Alias "FreeLibrary" (ByVal hLibModule As DWord) As Long
'-------------------------> Main Dialog -------------------------------------------->
Function TBMain() As Long
Local hLib As DWord
hLib = LoadLibrary("SCILEXER.DLL")
Dialog New Pixels, 0, "TB_Scintilla 1cc_Example",200,200,640,440, %WS_OVERLAPPEDWINDOW To hDlg
Control Add Button, hDlg, %ID_Button, "sendKeyText", 10,10,80,24
Control Add Button, hDlg, %ID_Button2, "sendKeyText2", 300,10,80,24
Control Add "Scintilla", hDlg, %ID_Sci, "", 10,50,520,280, %WS_CHILD Or %WS_VISIBLE
'Control Add "Scintilla", hDlg, %ID_Sci2, "", 310,50,320,280, %WS_CHILD Or %WS_VISIBLE
Control Handle hDlg, %ID_Sci To hSci
'Control Handle hDlg, %ID_Sci2 To hSci
Dialog Show Modal hDlg Call DlgProc
End Function
'---------------------------------> CALLBACK FUNCTIONS --------------------------->
CallBack Function DlgProc() As Long
Local txt As String, buffer As String, buffer2 As String
Local hLib As DWord, nLen As Long, nLen1 As Long, v As String, i As Long
Select Case CBMSG
Case %WM_INITDIALOG
'StartSci
Case %WM_COMMAND
If CBCTL = %ID_Button Then
StartSci()
nLen = SendMessage(hSci, %SCI_GETTEXTLENGTH, 0, 0)
MsgBox 0, "characters lenght: "+Str$(nLen) 'ok :)
'------------------------------------------------> ok
Buffer = $SPC(nLen+1)
'------------------------------------------------> ok
'not ok: I need here a NUMERIC EXPRESSION
SendMessage(hSci, %SCI_GETTEXT, Len(Buffer), StrPtr(Buffer))
'i = OS_Shell("calc.exe", 1,%OS_SHELL_SYNC) ' "thinbasic.exe"
SendMessage (hSci, %SCI_SetMarginWidthN, 0, 20)
MsgBox 0, buffer
End If
If CBCTL = %ID_Button2 Then
StartSci2()
nLen1 = SendMessage(hSci, %SCI_GETTEXTLENGTH, 0, 0)
MsgBox 0, "characters lenght: "+Str$(nLen1) 'ok :)
Buffer2 = $SPC(nLen1+1)
SendMessage(hSci, %SCI_GETTEXT, Len(Buffer2), StrPtr(Buffer2))
'i = OS_Shell("excel.exe", 1,%OS_SHELL_SYNC)
SendMessage hSci, %SCI_SetMarginWidthN, 0, 20
MsgBox 0, buffer2
End If
Case %WM_DESTROY
If hSci Then FreeLibrary hSci
If hSci2 Then FreeLibrary hSci2
End Select
End Function
Sub StartSci()
Local bufferli, strTBKeyWords As String, iResult As Long
strTBKeyWords = "case if else end select then msgbox for next thinbasic values vertex super euro fisherman earth moon sunbasic"
bufferli =" 'Enter some new values here"+$CRLF+_
""+$CRLF+_
" sin(25) + cos(24.25) + tan(22) if nothing else color "+$CRLF+_
" case 20.0 if 34.0 else 255.25 "+$CRLF+_
" end 56.30 select 40.2 then 88.24 vertex 1.0 " +$CRLF+_
" case 24.0 + ""yes!"" and end 24.45 ""gone"", " +$CRLF+_
" fisherman For Next earth moon Else nothing" +$CRLF+_
" thinbasic sunbasic solsystembasic" +$CRLF+_
"super oil petrol for 1.59 euro" + $NUL+$CRLF
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_KEYWORD, Rgb(0, 0, 255)
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_STRING, Rgb(255, 0, 255)
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_NUMBER,Rgb(192,100,0)
SendMessage hSci, %SCI_SETLEXER, %SCLEX_PowerBASIC, 0 '%SCLEX_ThinBASIC
SendMessage hSci, %SCI_SETKEYWORDS, 0, StrPtr(strTBKeyWords)
SendMessage hSci, %SCI_SetText, 0, StrPtr(bufferli)
SendMessage hSci, %SCI_SetMarginWidthN, 0, 20
End Sub
'--------------------> only for testpurpose ------------------->
Sub StartSci2()
Local bufferli2, strTBKeyWords2 As String, iResult2 As Long
strTBKeyWords2 = "flowers trees cats quarks cows nothing fisherman horses universebasic"
bufferli2 =" 'Hey monsters, please enter some new words here!"+$CRLF+_
""+$CRLF+_
" flowers mother sin(1025) + cos(424.25) + tan(822) if nothing else color "+$CRLF+_
" trees select case 20.0 if 34.0 else 255.25 "+$CRLF+_
" wend 56.30 select 40.2 then 88.24 vertex 1.0 " +$CRLF+_
" birds case 724.0 + ""yes Sir!"" and end 24.45 ""gone dark"", " +$CRLF+_
" fisherman For Next earth moon Else nothing" +$CRLF+_
" woodbasic sunbasic solsystembasic universebasic" +$CRLF+_
" end of cows and basic quarks" + $NUL+$CRLF
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_KEYWORD, Rgb(110, 0, 255)
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_STRING, Rgb(255, 0, 255)
SendMessage hSci, %SCI_STYLESETFORE, %SCE_B_NUMBER,Rgb(192,100,0)
SendMessage hSci, %SCI_SETLEXER, %SCLEX_PowerBASIC, 0 '%SCLEX_ThinBASIC
SendMessage hSci, %SCI_SETKEYWORDS, 0, StrPtr(strTBKeyWords2)
SendMessage hSci, %SCI_SetText, 0, StrPtr(bufferli2)
SendMessage hSci, %SCI_SetMarginWidthN, 0, 20
End Sub
btw: I explored there's two ways of compiling a) string buffer and a b) file for executing and loading. I am looking for new infos. I don't give up ;)
ErosOlmi
26-05-2011, 17:26
Can you please tell me if you are compiling (interpreting) a "file" or a "string" buffer (for example: by my simple scintilla text editor) to the specific (*module*)thinbasic.dll ? what's the right order to send data from thinair (editor) to the different module dll's? would be great to hear what's best working for it?
thinBasic is a 100% interpreter without any intermediate pcode.
To execute a thinBasic script, you need to create a text file and pass it to thinBasic interpreter.
The syntax is the following:
thinBasic.exe [execution flags] <Script file name> [Optional parameters]
where [execution flags] can be one of the following
@D
Debug mode: the script will be executed in debug mode showing thinbasic debug window. Execution is retained by the debug engine until runtime error or user exiting from debugger.
@O
Obfuscation mode. The script will not be executed but an obfuscated version of the original script will be created in the same directory of the original script. Obfuscated scripts have .tbasicx extension. Execution will immediately return to calling program.
@B
Dependency mode. The script will be partially executed in order to analyse dependant module and include files. A file with the same file name of the original script but with extension .sdep will be created in the same directory or the original script. Execution will immediately return to calling program.
You can get thinBasic path from the windows registry at: \HKEY_LOCAL_MACHINE\Software\thinBasic\InstallPath
Ciao
Eros
ErosOlmi
26-05-2011, 17:29
Regarding keywords, everyone can generate its own thinBasic keywords file.
Just check scripts under \thinBasic\Samplescripts\Keywords\ and amend them following your needs.
Ciao
Eros
largo_winch
30-05-2011, 08:40
good morning. thanks eros. but I am not very sure if I have understood your hints correctly?
To execute a thinBasic script, you need to create a text file and pass it to thinBasic interpreter.
The syntax is the following:
thinBasic.exe [execution flags] <Script file name> [Optional parameters]does that mean I have to save (load) a seperate textfile ("myscintilla.txt") included with path infos for execution the scintilla file from thinair?
If CBCTL = %ID_EXECUTE Then
'OS_ShellExecute( 0, "c:\thinBasic1870\thinbasic.exe", "myscript.txt", "/c", 1)
MyScriptFile = "c:\thinBasic1870\thinbasic.exe " & "MyScript.txt" 'or : <"MyScintillaTest.tbasic">' ?
'SendMessage hSci, %SCI_GETTEXT, Len(BUFFER), StrPtr(BUFFER)
End If
my dummy attemption above. perhaps you can give closer details? thank you for keywords example too!
bye, largo
zlatkoAB
30-05-2011, 15:58
Yes file must be saved on disk and you must pass fullpath of filname
like :
thinBasic.exe chr$(34)+filename+chr$(34)
i dont know maby thinbasic have built-in command for execute program?
probably have...
ErosOlmi
30-05-2011, 18:03
Here an example script (with most of the important error checking) on how to invoke another thinBasic script:
Uses "Registry"
Uses "OS"
Uses "file"
Dim lRet As Long
Dim sKeyPath As String Value "Software\thinBasic"
Dim sKeyName As String Value "InstallPath"
Dim InstallPath As String
Dim pID As DWord
Dim ScriptName As String
'---Check if exists registry key
lRet = Registry_KeyExists("HKEYLM", sKeyPath, sKeyName)
If lRet Then
'---If exists, we have the potential thinBasic install path
InstallPath = Registry_GetValue("HKEYLM", sKeyPath, sKeyName)
End If
'---If install path has something ...
If Len(InstallPath) Then
'---we need to check thinBasic.exe is there ...
If FILE_Exists(InstallPath & "thinBasic.exe") Then
'---If we are here it means all should be ok.
'---Now it's time to execute something. Change as required
Scriptname = InstallPath & "SampleScripts\UI\Splash\UI_Splash.tBasic"
'---Executed in async mode. Execution of this script will immediately continue while
'---after running this command even if new script will take some time
pID = OS_Shell(InstallPath & "thinBasic.exe " & $DQ & ScriptName & $DQ, %OS_WNDSTYLE_NORMAL, %OS_SHELL_ASYNC)
Else
MsgBox 0, "Install path found but thinBasic.exe not found"
End If
End If
largo_winch
31-05-2011, 09:38
thank you eros. this example helps to understand a little more for executing and invoking *.tbasic script. some of my examples gave "1" or "2" answers using "os_shellexecute" (and "os_shell") and I thought I am on right way.
to execute a text file (for example scintilla) and send to "thinbasic.exe" and to other libraries ("module"), that must be a bigger, harder work I suppose. to scan the textfile and send data to "thinbasic.exe" and "thincore.dll". I am interested in learning much more about such things. haven't enough background for that at this moment. but that's another topic for later time if I have more time. I am working for a time limited period at university.
bye, largo
ErosOlmi
31-05-2011, 09:57
thinBasic Programming Language engine is all inside thinCore.dll.
It is the language, it is the core of all, it is the glue that connects to all other modules.
thinBasic modules (any module) cannot be used without thinCore.dll.
Every module talks with thinCore.dll, thinCore.dll drive modules needed by the scripts.
thinBasic.exe and/or thinBasicc.exe are just executor and loader of thinCore.dll
Maybe we can talk more about modules and how to create one of them.
Regarding os_shellexecute and os_shell they are two completely different commands.
os_shellexecute execute a command (Open, Print, Run, ... or whatever) of a registered shell extension
os_shell instead creates a process executing an application (with or without some command line params)
Ciao
Eros
largo_winch
21-01-2012, 14:48
@eros:
thanks btw for you last answer some month ago too ;)
'------------------------------------------------------------------------>
text part of thinbasic journal #2:
1.1 Application layer
It is the execution process, the main application.
This layer must accomplish 3 steps:
initialize the underline Core layer,
tells to Core Layer which thinBasic application
(we will call it “script” for the rest of the article)
to execute de-initialize the Core engine.
Two applications type: A) console, b) GUI
1.2 Core layer
This is the most important part of thinBasic programming language.
It is the glue that keeps together all the different parts that
play a role in thinBasic execution.
It contains the main thinBasic Core language and is in charge of:
load and parse the script manage all memory
handling (allocation / de-allocation of variables,
function stacks, internal structures in place for module handling)
expose a series of functions interface used by
modules to communicate with main thinBasic
engine module handling on request (find the correct module dll,
opening it, link the keywords with the module functions,
call functions implemented by modules, releasing modules when needed)
'------------------------------------------------------------------------>
my question is how the saved textfile buffer for interpreting (for example my last tb scintilla file at this board) reach the thinair.exe or thincore.dll ? what's the initialisation "kick" that start the parser or interpreter for working?
nice week-end there to italy, here the snowy winter
in germany starts for a short moment to come back at the moment, bye largo
ErosOlmi
21-01-2012, 18:30
To invoke a script file to be executed, just pass its name (full path name) to thinBasic.exe executable as parameter.
See instructions in help or online help at http://www.thinbasic.com/public/products/thinBasic/help/html/index.html?howtouse.htm
largo_winch
13-02-2013, 12:16
hello! I've a simple problem to understand about working behaviour of different editor (here for example: scintilla based).
If I have a DLL (for example "prometheus.dll", perhaps a parser or such thingy) and this dll was built by freebasic it's not possible to load and work with another editor (thinair, powerbasic editor (SED), "scite" for oxygen and much more) for interpreting or running this parser, isn't it? anybody can give hints or links or example to understand this behaviour? it's obvious you have to bind in same language the editor and the parser or interpreter or compiler for working, but I don't understand that, because it's possible to load a library (*.dll) and "embed" this "prometheus.dll" in every editor you can imagine. after that I can bind the function for parsing or what else. I am right or wrong? ;)
bye, largo
ErosOlmi
14-02-2013, 00:18
largo,
...assuming that your DLL is a standard flat 32bit DLL ...
to be able to work with a .DLL you need to know the syntax of SUB/FUNCTION exported by that .DLL:
names of SUB or FUNCTION
number, sequence and type of each parameters (if any) needed by SUB or FUNCTION
type of FUNCTION return values
Having that inside a declare source code (called also header files), you can use DLL functionalities
Without that info, it would be impossible to guess how to call functions inside of that DLL
Plus (of course) you need to have some info on how that DLL works