|
Hi Jan,
What's the command to wrap text in the OCX version of brainchild?
Thanks
|
|
|
|
|
Shakti Goel wrote: What's the command to wrap text in the OCX version of brainchild?
There is no support for text wrapping in brainchild.
Bye,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
I can open the compiled HTML help file and see the table of contents, but none of the pages can be displayed. Is it trying to reach a web site that is no longer available?
|
|
|
|
|
h.lee wrote: I can open the compiled HTML help file and see the table of contents, but none of the pages can be displayed. Is it trying to reach a web site that is no longer available?
The help file does not link to any external web pages so that can't be the problem... I've just downloaded the Help file and there does not seem to be anything wrong with it. All pages seem to work just fine. Perhaps there is a problem with you HTML help installation? Do other chm files work properly?
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
A tried a few other chm files and all work properly.
Anyway, after decompile and recompile and file and it's working now.
|
|
|
|
|
My application needs to process plain text files with fixed-column fields, e.g., columns 1-5 for ID, 6-10 for name, and 11-20 for values, etc. Thus an requirement is to display different background colors for different columns.
Can I customize Brainchild for this purpose?
(I've considered some other controls such as Grid and RichEdit and decided they are not suitable for the app. for various reasons.)
|
|
|
|
|
h.lee wrote: My application needs to process plain text files with fixed-column fields, e.g., columns 1-5 for ID, 6-10 for name, and 11-20 for values, etc. Thus an requirement is to display different background colors for different columns.
Can I customize Brainchild for this purpose?
Depending on what you want to do exactly it is ofcourse possible to change the parser to change coloring depending on the character position on the line. It is not a something you can do with the control by default.
If that is the only requirement it should be possible to adjust the "ParseLine" function in parser.c. This is where the syntax coloring magic happens. Simply setting up the array of SYNTAX_COLOR blocks which are passed to this function with the correct colors and offsets should do the trick.
If you also need to change the text edit behaviour based on these columns a lot more work needs to be done. I can't recommend doing this.
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
Thanks for the tips. I was hoping I can simply specify the rules in a "bcp" file without the need to modify the control.
Just glanced thru the ParseLine function and it seems straightforward to modify it for the purpose, except for short lines. I have to color all columns even if there's no text. Hopefuly it won't be too much trouble to adjust line lengths.
|
|
|
|
|
Do you plan to release a C# version of your control? I mean a Wrapper class which can be used in .NET applications. It looks like a real cool control.
the approach rather than the solution
|
|
|
|
|
Pavan Podila wrote: Do you plan to release a C# version of your control? I mean a Wrapper class which can be used in .NET applications. It looks like a real cool control.
The ActiveX (OCX) version can be used in .NET applications. It is a simple wrapper around the control which makes it possible to use brainchild in VB, .NET etc.
Bye,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
Anyway to set the length of the line numbers? After 99,999 lines, the line number gutter only displays dashes.
Granted, that's a lot of lines, but it'd be nice to have the option to specify how many line number characters there are.
BTW, I am using the OCX version in a VB6 app.
|
|
|
|
|
FCBLogin wrote: Anyway to set the length of the line numbers? After 99,999 lines, the line number gutter only displays dashes.
Granted, that's a lot of lines, but it'd be nice to have the option to specify how many line number characters there are.
BTW, I am using the OCX version in a VB6 app.
Currently it is not possible to specify this behaviour. The control simply decides that the line number margin has a maximum of 5 characters. Never thought anybody would run against this limit I will put option this on my TODO list.
Enjoy,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
I just spent the day troubleshooting this problem:
BCDLL.CPL silently fails to load.
The application I am writing suddenly began to crash when it begins to run.
I finally narrowed it down to fact that I set the registry information as described in step 10. The CPL files were put into the directory described in the Settings string item.
The first problem is that during SetupProcess() you are concatenating the logged in user name to the path described in the Setting registry item. I don't see this documented anywhere. Okay, so you are creating the user directory if it doesn't exist; that leads us to the second problem which is there aren't any CPL files put into that directory after it is created. What happens is that LoadParserFiles() fails which leads to SetupProcess() failing. If you look at line 404 of thread.c, it looks like you are adding the default node back but at line 416 you are freeing and then you are freeing the memory pool at line 421 and then returning false. I think, somewhere else, you are writing to this memory pool or accessing the default node.
I suspect that you really want the line "return TRUE ;" right after line 404 if the files are not present... and I did that and it is much better behaved. This problem doesn't exist if the Settings registry entry does not exist.
BCDLL.cpl now lets me know there are no files in the directory before it goes away which is only slightly better than before when it would just crash.
|
|
|
|
|
Michael Bergman wrote: I suspect that you really want the line "return TRUE ;" right after line 404 if the files are not present... and I did that and it is much better behaved. This problem doesn't exist if the Settings registry entry does not exist.
I have put this one on my TODO list. Sorry for the inconvenience.
Michael Bergman wrote: BCDLL.cpl now lets me know there are no files in the directory before it goes away which is only slightly better than before when it would just crash.
There are plans to change this behaviour and let the configuration tool respond as follows:
1) No registry settings?
Popup a directory selector and let the user select a directory to store settings files.
2) No files?
Save at least the default configuration in the selected directory.
Enjoy,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
Jan,
It seems that when you open the search dialog, and type in the search word, two instances of the dialog box are opened. I am using the OCX control.
If you do not type in the search word and select the search word from the drop down box then there is only one instance of the Find dialog box.
Would you know why that is? I would not expect a new instance to open when the search word is typed as opposed to it being selected from the drop down list.
Thanks
Shakti
|
|
|
|
|
Shakti Goel wrote:
It seems that when you open the search dialog, and type in the search word, two instances of the dialog box are opened. I am using the OCX control.
If you do not type in the search word and select the search word from the drop down box then there is only one instance of the Find dialog box.
Would you know why that is? I would not expect a new instance to open when the search word is typed as opposed to it being selected from the drop down list.
I can't reproduce this behaviour. It seems strange though because each instance of the control only has one instance of the search and one instance of the replace dialog. If two dialogs show then it seems more likely that both the search and replace dialogs are open at the same time rather than two search dialogs, not that this would be correct behaviour though...
Does this happen on specific search strings or all search strings?
Bye,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
Hello,
Thanks for the nice control. However, it does not work correctly with French keyboard layout - it is impossible to type {, }, [ and ] characters. On that layout these characters are produced when holding left alt key with the special key combinations; but the control does not accept this.
Any resolution of this problem?
|
|
|
|
|
I have just tried out the control and encountered the same problem. On the german keyboard layout the characters '{', '[', ']' and '}' are located on the keys 7-0 used in comination with the special key Ctrl+Alt.
So what you have to do is to enter those combinations into your language definition files like this:
;
; Keyboard settings
;
Key=Ctrl Alt 7
InsertText={
EndKey
I think the way character messages are handled is very unfortunate in this matter (especially since these seem not to be inherited from the default set), but it still is a very good control though.
-- * Computers make very fast, very accurate mistakes.
|
|
|
|
|
Hi
Sometimes there are strings which have embedded single quotes. For example
v_str = 'select * from emp where ename
= ''SCOTT'' and deptno = 10';
The string is on two lines.
The two single quotes around SCOTT are supposed to embedded inside the single quote before SELECT and after 10.
The entire string from select ... deptno=10
should be highlighted in red (chosen color for strings).
However, the string is highlighted in red only in the first line but in the second line it is no longer in red.
How can I modify the T-SQL parser to show the entire string in red with embedded single quotes?
It seems that it something that needs to be fixed in the dll.
Thanks
|
|
|
|
|
Jan,
Any word on this? When there are two strings next to each other, syntax highlighting does not work.
E.g.,
'grgaer''gergare
htyhrty'
Thanks
Shakti
|
|
|
|
|
Shakti Goel wrote:
Any word on this? When there are two strings next to each other, syntax highlighting does not work.
Nothing other than it is on my TODO list. It appears to be a parser bug...
Bye,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
I alway get access violations in the function UpdateSettings.
This comes from the fact, that the very first parser in plParsers is freed with FreeParserNode, but afterwards the same parser is also member of the list pll, so pll->lpnFirst->lpnNext == 0xfeeefeee.
This of cause crashes in the loop
while (( lpp = ( LPPARSER )RemHead(( LPLIST )&pll )) != NULL )
I could not figure out, how a parser can be member of two lists. This is due to the fact, that you have internal and non-internal pools which get mixed in the same lists - very difficult to debug for someone else than the author
The Saviour of the World is a Penguin and Linus Torvalds is his Prophet.
|
|
|
|
|
ReorX wrote:
I could not figure out, how a parser can be member of two lists. This is due to the fact, that you have internal and non-internal pools which get mixed in the same lists - very difficult to debug for someone else than the author
Actually a parser should never be (and can't be) a member of two different lists. What the code does (or is supposed to do) is load the new settings files into a temporary list, add manually loaded parser files to this temporary list and free old parsers making the temporary list the main parser list. I am not behind my development machine right now so I can't test this yet but but it seems to go wrong with freeing the parsers and there is no default parser loaded. What you should try is the following change in the UpdateSettings() function:
while (( lpp = ( LPPARSER )RemHead(( LPLIST )&plParsers )) != NULL )
{
if ( lpp->bHasBeenAdded == TRUE )
AddTail(( LPLIST )&pll, ( LPNODE )lpp );
else
FreeParserNode( pMainPool, lpp );
}
change the else line to:
else if ( lpp != lpDefault )
Thanks for finding this one and my appologies for the bug hunt.
Enjoy,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|
|
I changed the line, but now, upon leaving the "Keywords"-Dialog, I get into a non-terminating loop:
/*
* Copy the new situation.
*/
while (( lpp = ( LPPARSER )RemHead(( LPLIST )&pll )) != NULL )
AddTail(( LPLIST )&plParsers, ( LPNODE )lpp );
I'm sorry ...
Can you reproduce this or shall I post my bcl-configuration?
Regards, Jens
The Saviour of the World is a Penguin and Linus Torvalds is his Prophet.
|
|
|
|
|
First of all sorry for the late response. I have been away for a couple of weeks.
ReorX wrote:
I'm sorry ...
Can you reproduce this or shall I post my bcl-configuration?
Don't be sorry, if there is a problem in my code I should be sorry. Anyway I am currently having some trouble with my Visual Studio installation. As soon as I have that fixed I will have a closer look at this problem.
I would appreciate it if you could send me your settings files. No need to post them, simply email them to baard25(at)zonnet(dot)nl.
Bye,
Jan
We are the all singing, all dancing crap of the world. - Tyler Durden
|
|
|
|