Author |
Topic: Impressed (Read 723 times) |
|
Sean
New Member
member is offline
Posts: 6
|
|
Impressed
« Thread started on: Jun 21st, 2014, 10:13am » |
|
I have a spreadsheet program that I wrote called MultiSpred. I use my own 'database' which is parsing strings with special characters denoting placemarkers for values in the string array. If you have come across Pick/Multivalue systems, you will know what I tried to do here. Anyway, to truly test the speed of the program, I used a spreadsheet containing lottery results, 960 rows by 30 columns, crammed with data. Before, to load the spreadsheet took a while and you could see the rows and columns being painted. Now, with LBB, I selected the file and 1 second later it was loaded. Even faster than a version I created using a dll I wrote in FreeBasic. I am very impressed. I wanted to share my code so you see the before and after result, alas, no attachments allowed. So I just wanted to give you a high five.
|
|
Logged
|
|
|
|
Sean
New Member
member is offline
Posts: 6
|
|
Text editor does not wraplines
« Reply #1 on: Jun 22nd, 2014, 1:35pm » |
|
Richard, I saw that my text editor in the program above does not wrap lines. I used _ES_MULTILINE as a style bit originally, I tried what you suggested in another post. Still does not work. Any suggestions?
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline
Posts: 1348
|
|
Re: Text editor does not wraplines
« Reply #2 on: Jun 22nd, 2014, 3:34pm » |
|
on Jun 22nd, 2014, 1:35pm, Sean wrote:Richard, I saw that my text editor in the program above does not wrap lines. I used _ES_MULTILINE as a style bit originally, I tried what you suggested in another post. Still does not work. Any suggestions? |
|
I don't know what you tried, but word-wrap is trivial in LBB:
Code:texteditor #w.te, 10, 10, 280, 280
stylebits #w.te, 0, _ES_AUTOHSCROLL or _WS_HSCROLL, 0, 0
open "Wordwrap test" for window as #w
wait Richard.
|
|
Logged
|
|
|
|
Sean
New Member
member is offline
Posts: 6
|
|
Re: Impressed
« Reply #3 on: Jun 23rd, 2014, 10:45am » |
|
Here is where I tried _ES_AUTOHSCROLL or _WS_HSCROLL
Code:
sub EditWindow
if EditOpen then
call QuitFullEdit "#fulledit"
if EditOpen then exit sub
end if
EditOpen = TRUE
EditSave = FALSE
Title$ = "Full Edit"
WindowWidth = 595
WindowHeight = 668 'DisplayHeight-100
UpperLeftX=int((DisplayWidth - WindowWidth) / 2)
UpperLeftY=int((DisplayHeight-WindowHeight)/2)
Menu #fulledit,"&File","&Save",EditSave,"&Exit",QuitEditFromMenu
Menu #fulledit, "&Edit", "&Cut Ctrl+X", Cut,_
"C&opy Ctrl+C", Copy, "&Paste Ctrl+V", Paste,_
"&Undo Ctrl+Z", Undo,"C&lear",Clear,|,_
"&Select All",SelectAll
open Title$ for window as #fulledit
print #fulledit, "trapclose QuitFullEdit"
print #fulledit, "resizehandler EditResize"
hT=CreateTextEdit(hwnd(#fulledit), 1, 1, WindowWidth-10, WindowHeight-10)
call SetFocus hT
call SetWindowText hT,cellval$
hFont=CreateFont("courier new",16)
ret = SendMessageLong(hT,_WM_SETFONT,hFont,1)
end sub
Function CreateTextEdit(hW, x, y, w, h)
style = _WS_CHILDWINDOW OR _WS_BORDER _
OR _WS_VISIBLE or _ES_MULTILINE
' --------- tried putting _ES_AUTOHSCROLL or _WS_HSCROLL here,
' but did not work
hInst=GetWindowLong(hW, _GWL_HINSTANCE)
calldll #user32, "CreateWindowExA",_
0 as long,"EDIT" as ptr,_
"" as ptr, style as long,_
x as long,y as long,w as long,h as long,_
hW as long, 0 as long, hInst as ulong,_
0 as long, CreateTextEdit as ulong
end function
|
« Last Edit: Jun 23rd, 2014, 10:45am by Sean » |
Logged
|
|
|
|
Richard Russell
Administrator
member is offline
Posts: 1348
|
|
Re: Impressed
« Reply #4 on: Jun 23rd, 2014, 7:23pm » |
|
on Jun 23rd, 2014, 10:45am, Sean wrote:Here is where I tried _ES_AUTOHSCROLL or _WS_HSCROLL but did not work |
|
Of course it didn't - you're using a totally different set of STYLEBITS (study the code I listed and you will see that those two bits are being turned off, not on)!
Why are you using an API call rather than the native LB code I listed? If you must use an API call - which I don't recommend - you are on your own and will need to consult MSDN.
Richard.
|
|
Logged
|
|
|
|
Sean
New Member
member is offline
Posts: 6
|
|
Re: Impressed
« Reply #5 on: Jun 24th, 2014, 12:30am » |
|
No, the above code works fine using normal LB.
However after some googling, I found this solution style = _WS_CHILDWINDOW OR _WS_BORDER OR _WS_VISIBLE OR _ES_MULTILINE OR _ES_WANTRETURN OR _WS_VSCROLL
The _ES_WANTRETURN did the trick and the _WS_VSCROLL gives me vertical scrollbars
|
« Last Edit: Jun 24th, 2014, 01:10am by Sean » |
Logged
|
|
|
|
Richard Russell
Administrator
member is offline
Posts: 1348
|
|
Re: Impressed
« Reply #6 on: Jun 24th, 2014, 1:36pm » |
|
on Jun 24th, 2014, 12:30am, Sean wrote:No, the above code works fine using normal LB. |
|
To reiterate, LB's TEXTEDITOR is not a standard Windows GUI control, therefore it will not respond to STYLEBITS as you might expect. In particular, LB's texteditor cannot do wordwrap at all.
LBB's TEXTEDITOR is a standard Windows GUI control, therefore it will respond to STYLEBITS as documented in MSDN, including wordwrap if the style is carefully chosen.
The LBB code I listed works by clearing two of the STYLEBITS which are otherwise set by default when a TEXTEDITOR is created.
Richard.
|
|
Logged
|
|
|
|
|