Scrollbars missing
- James Bott
- Posts: 4840
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Re: Scrollbars missing
Greg,
I am not clear what you are saying.
If you use LISTBOX...FIELDS, then it will pre-process to TXBrowse. Anything defined this way is not going to have a scrollbar unless you change the RC file by adding the LBS_DISABLENOSCROLL.
TCBrowse is a separate browse. I haven't used it in a very long time, but I don't think it is syntax compatible with TXBrowse. Are you saying that your TCBrowses don't have scrollbars either?
It is my suggestion for these types of problems, to create the simplest possible example that shows the problem then try to solve it with that example instead of a full-blown app. A simple test example also allows others to help with your problem.
If you want to get started with TXBrowse, then I would look at some of the examples in the fwh\samples directory.
Regards,
James
I am not clear what you are saying.
If you use LISTBOX...FIELDS, then it will pre-process to TXBrowse. Anything defined this way is not going to have a scrollbar unless you change the RC file by adding the LBS_DISABLENOSCROLL.
TCBrowse is a separate browse. I haven't used it in a very long time, but I don't think it is syntax compatible with TXBrowse. Are you saying that your TCBrowses don't have scrollbars either?
It is my suggestion for these types of problems, to create the simplest possible example that shows the problem then try to solve it with that example instead of a full-blown app. A simple test example also allows others to help with your problem.
If you want to get started with TXBrowse, then I would look at some of the examples in the fwh\samples directory.
Regards,
James
- Greg Gammon
- Posts: 105
- Joined: Fri Jun 09, 2006 3:27 pm
- Location: Bryan, Texas
- Enrico Maria Giordano
- Posts: 8736
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: Scrollbars missing
Greg,
Please keep in mind that with XBrowse you'll have to use
or something similar. The root of the problem is that you are using the wrong resource (LISTBOX, a standard Windows control) for a custom control. The best you can do for the future of your work is fix your resources now.
EMG
Greg Gammon wrote:I guess I just need to switch over to the xbrowse class.
Please keep in mind that with XBrowse you'll have to use
Code: Select all | Expand
CONTROL "", 1003, "TXBrowse", WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 15, 49, 335, 145
or something similar. The root of the problem is that you are using the wrong resource (LISTBOX, a standard Windows control) for a custom control. The best you can do for the future of your work is fix your resources now.
EMG
- Greg Gammon
- Posts: 105
- Joined: Fri Jun 09, 2006 3:27 pm
- Location: Bryan, Texas
Re: Scrollbars missing
Im sure I will have to be more imaginative in how to deal with editing the resources.
As I am continually updating the application using the RESEDIT GUI to build or change dialogs, when RESEDIT creates the .rc file, I would have to go in manually each time to change all of the LISTBOX structures as you are showing me. This wouldn't be a real issue if my application was particularly static, but we are continually making updates and improvements. Anyone have any advice on an "easy" way to handle this?
Thanks!
Greg
As I am continually updating the application using the RESEDIT GUI to build or change dialogs, when RESEDIT creates the .rc file, I would have to go in manually each time to change all of the LISTBOX structures as you are showing me. This wouldn't be a real issue if my application was particularly static, but we are continually making updates and improvements. Anyone have any advice on an "easy" way to handle this?
Thanks!
Greg
- Enrico Maria Giordano
- Posts: 8736
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: Scrollbars missing
Greg,
You have to use "custom control" not listbox.
EMG
Greg Gammon wrote:Im sure I will have to be more imaginative in how to deal with editing the resources.
As I am continually updating the application using the RESEDIT GUI to build or change dialogs, when RESEDIT creates the .rc file, I would have to go in manually each time to change all of the LISTBOX structures as you are showing me. This wouldn't be a real issue if my application was particularly static, but we are continually making updates and improvements. Anyone have any advice on an "easy" way to handle this?
Thanks!
Greg
You have to use "custom control" not listbox.
EMG
- Greg Gammon
- Posts: 105
- Joined: Fri Jun 09, 2006 3:27 pm
- Location: Bryan, Texas
Re: Scrollbars missing
Yes I have looked at that but haven't delved into it very deeply. Not sure how to save custom control parameters in ResEdit. I'll look into that. If anyone uses ResEdit and can help, much appreciated!
G
G
- James Bott
- Posts: 4840
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Re: Scrollbars missing
Greg,
Here is a simple example of how you use TXbrowse instead of Listbox.
Create a custom control called "TXBrowse" and edit the style to something like:
There is no REDEFINE XBROWSE syntax, so we have to use this:
Where "11" is the control ID number.
Here is the entire sample code showing both Listbox and TXBrowse:
And here is the RC file:
James
Here is a simple example of how you use TXbrowse instead of Listbox.
Create a custom control called "TXBrowse" and edit the style to something like:
Code: Select all | Expand
0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL
There is no REDEFINE XBROWSE syntax, so we have to use this:
Code: Select all | Expand
oBrw := TXBrowse():new( oDlg ):CreateFromResource( 11 )
Where "11" is the control ID number.
Here is the entire sample code showing both Listbox and TXBrowse:
Code: Select all | Expand
#include "fivewin.ch"
Function Main()
LOCAL oDlg, oLbx
USE customer
DEFINE DIALOG oDlg resource "DIALOG1"
REDEFINE LISTBOX oLbx fields FIRST, LAST ID 10 OF oDlg
oBrw := TXBrowse():new( oDlg ):CreateFromResource( 11 )
ACTIVATE DIALOG oDlg
return nil
And here is the RC file:
Code: Select all | Expand
/****************************************************************************
test01.rc
produced by Borland Resource Workshop
*****************************************************************************/
#define DIALOG_1 1
#define IDC_LISTBOX1 10
#define IDC_1 11
DIALOG1 DIALOG 6, 15, 275, 201
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "DIALOG1"
FONT 8, "MS Sans Serif"
{
LISTBOX IDC_LISTBOX1, 20, 15, 235, 75, LBS_STANDARD | LBS_DISABLENOSCROLL
CONTROL "", IDC_1, "TXBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL, 25, 104, 229, 71
}
James
- Enrico Maria Giordano
- Posts: 8736
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: Scrollbars missing
James,
This is enough:
EMG
James Bott wrote:Code: Select all | Expand
0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL
This is enough:
Code: Select all | Expand
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL
EMG
- James Bott
- Posts: 4840
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Re: Scrollbars missing
Greg,
A simple solution is to just load your RC file into a TEXT editor and change the LISTBOX definitions to custom TWBrowse controls as Enrico showed. In this example I have just commented out the LISTBOX line and added the CONTROL line. This will fix the scrollbar.
Backup your RC file, then just edit one browse as shown and save the RC file and compile. The scrollbar should be visible. I tried it here and it worked fine.
If you look at the preprocessor output the two outputs are identical. So the control name in the resource file seems to be what triggers the scrollbar. I know not why.
Let us know.
James
A simple solution is to just load your RC file into a TEXT editor and change the LISTBOX definitions to custom TWBrowse controls as Enrico showed. In this example I have just commented out the LISTBOX line and added the CONTROL line. This will fix the scrollbar.
Code: Select all | Expand
/*LISTBOX IDC_LISTBOX1, 20, 15, 235, 75, LBS_STANDARD*/
CONTROL "", IDC_LISTBOX1, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_VSCROLL, 20, 15, 235, 75
Backup your RC file, then just edit one browse as shown and save the RC file and compile. The scrollbar should be visible. I tried it here and it worked fine.
If you look at the preprocessor output the two outputs are identical. So the control name in the resource file seems to be what triggers the scrollbar. I know not why.
Let us know.
James
- James Bott
- Posts: 4840
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Re: Scrollbars missing
Enrico,
Thanks, I didn't know the zero wasn't needed.
Greg,
You can also leave off the WS_BORDER to get the more current flat look as I did in my previous example. So now you would have:
James
Thanks, I didn't know the zero wasn't needed.
Greg,
You can also leave off the WS_BORDER to get the more current flat look as I did in my previous example. So now you would have:
Code: Select all | Expand
CONTROL "", IDC_LISTBOX1, "TWBrowse", WS_CHILD | WS_VISIBLE | WS_VSCROLL, 20, 15, 235, 75
James
- Enrico Maria Giordano
- Posts: 8736
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: Scrollbars missing
James,
The symbol | (pipe) indicates OR so 0 OR something = something (0 is false).
EMG
James Bott wrote:Thanks, I didn't know the zero wasn't needed.
The symbol | (pipe) indicates OR so 0 OR something = something (0 is false).
EMG
- Greg Gammon
- Posts: 105
- Joined: Fri Jun 09, 2006 3:27 pm
- Location: Bryan, Texas
Re: Scrollbars missing
Thanks for all the good info! I will try this in the next few days. I guess it will just boil down to some extra work to manage the .rc file when I make screen changes....sigh.
G
G
- James Bott
- Posts: 4840
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Re: Scrollbars missing
Greg,
There will be no extra work when you make changes. When the RC file is loaded back into the resource editor, it will show up as a custom control. I presume the only changes you might be making are the size and location. When saved it should be the same code as you entered using the text editor with the only difference being the coordinates.
You could convert to custom controls using the resource editor, but it will be much more work than using a text editor. With a text editor you can just enter the new control line with the original to refer to. With a resource editor you would have to delete the original control, then create the custom control, redraw it, and then edit the style. No contest.
James
I guess it will just boil down to some extra work to manage the .rc file when I make screen changes....sigh.
There will be no extra work when you make changes. When the RC file is loaded back into the resource editor, it will show up as a custom control. I presume the only changes you might be making are the size and location. When saved it should be the same code as you entered using the text editor with the only difference being the coordinates.
You could convert to custom controls using the resource editor, but it will be much more work than using a text editor. With a text editor you can just enter the new control line with the original to refer to. With a resource editor you would have to delete the original control, then create the custom control, redraw it, and then edit the style. No contest.
James
- Greg Gammon
- Posts: 105
- Joined: Fri Jun 09, 2006 3:27 pm
- Location: Bryan, Texas
Re: Scrollbars missing
ResEdit will not load a native .rc file...it uses .res binary file and then creates an .rc file. I guess I need to switch to a different resource editor that will use native .rc file. Borland? I recall using Borland years ago and switched because of some problems I had with it...institutional memory is lapsing here.
Thanks,
Greg
Thanks,
Greg
- James Bott
- Posts: 4840
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Re: Scrollbars missing
Greg,
Hmm, well I suggest creating the RC with ResEdit then edit it with a text editor (just one listbox-to-TWBrowse conversion), then using Borland's Workshop, load it and save it, then compile and test. If there are no problems then it would seem you are good to go with Workshop.
Or, you could just generate the RES with workshop after you are done with the text editor, and then use the RES file with ResEdit as usual.
Of course, make backups of everything first.
James
Hmm, well I suggest creating the RC with ResEdit then edit it with a text editor (just one listbox-to-TWBrowse conversion), then using Borland's Workshop, load it and save it, then compile and test. If there are no problems then it would seem you are good to go with Workshop.
Or, you could just generate the RES with workshop after you are done with the text editor, and then use the RES file with ResEdit as usual.
Of course, make backups of everything first.
James