|
Prev: Tip of the Day
Next: Support Tools
From: Geoff Chambers on 18 Jul 2008 10:42 I am starting a new application and moving from Classmate over to Just VO with Vo2ADO and bBrowser. I need some suggestions on the way to design the user interface. I was recently in Georgia for the MasterCIass Geoff Schaller gave and I am using most of his enhanced LIBS for VO. I created an app with a Splitwindow with 2 panes, the first pane holds a FabOulookBar ( I like this interface and want to keep this) and the second pane holds a shell window. I select the file I need from Outlook bar and dispaly and MDI window in the Shell. I run into a couple of problems when I do this. First, I have added a background collor to the shell, I need the caption bar of the DataWindow to be the same color as the background, otherwise some repainting isn't going on. (If a tooltip covers and area that area is repainted with the shell background color. I I resize using cascade.horiz/vert the caption bar is repainted to the shell background color. So where in my Init of the DataWindow can I assign this color? Second, (this is my reason for maybe changing the interface a liitle and not use a ShellWindow) When I maximize the DataWindow, I lose the caption bar or it becomes part of the SpitWindow, not sure what is going on here. I could always shut off the maximize button of the caption bar in the DataWindow, but really didn't want to do this. Would really like some suggestion for the interface. All windows will hold either a single browse window that will open a dialog window for editing/adding. Others may hold a bBrowse window with a Tab Control that will hold several bBrowse Windows that are Child tables of the main Browse or I may design it to hold just the single browse window and open a seperate window that would show current record of the Browse with a Tab Control that would contain browse windows for each child table of the parent table. I then would edit/add record using a seperate dialog window. Hope I explained it enough TIA Geoff C.
From: Amilcar A. Camargo on 18 Jul 2008 18:03 Hi Geoff, On Fri, 18 Jul 2008 07:42:18 -0700 (PDT), Geoff Chambers <gchambers02(a)msn.com> wrote: >I am starting a new application and moving from Classmate over to Just >VO with Vo2ADO and bBrowser. I need some suggestions on the way to >design the user interface. I was recently in Georgia for the >MasterCIass Geoff Schaller gave and I am using most of his enhanced >LIBS for VO. > >I created an app with a Splitwindow with 2 panes, the first pane holds >a FabOulookBar ( I like this interface and want to keep this) and the >second pane holds a shell window. I select the file I need from >Outlook bar and dispaly and MDI window in the Shell. I run into a >couple of problems when I do this. > >First, I have added a background collor to the shell, I need the >caption bar of the DataWindow to be the same color as the background, >otherwise some repainting isn't going on. (If a tooltip covers and >area that area is repainted with the shell background color. I I >resize using cascade.horiz/vert the caption bar is repainted to the >shell background color. So where in my Init of the DataWindow can I >assign this color? If i understand correctly, the caption isn't repainted but covered by the shellwindow background, correct? This maybe due to some paint messages being swallowed or executed out of phase. I don't know for sure. What is sure is that a Shellwindow is designed to be your 'primary' window and not a 'child' of another (the splitwindow in this case). I don't think you can overcome this in a simple way short of writing your own ChildShellWindow class. Can you 'spy++' your window and check what messages are being delivered and their sequence. Not an easy task but i guess the only way to now what's happening (or missing). >Second, (this is my reason for maybe changing the interface a liitle >and not use a ShellWindow) When I maximize the DataWindow, I lose the >caption bar or it becomes part of the SpitWindow, not sure what is >going on here. I could always shut off the maximize button of the >caption bar in the DataWindow, but really didn't want to do this. An interfase change would be in order to avoid time waste unless somebody else has done this and shares it with you. If you want to have the outlook bar on the left maybe you can use a normal Shellwindow, sublass it and change, manually, the size of the underlying MDI Client window (there have being a couple of examples how to handle this, one of them showed how to paint a bitmap on the shell background). This way, you could put a modeless dialog window without caption on the left and the windows standard behaviour will see only the surface of the MDI Client for your document windows. This is just a thought. Best regards, Amilcar A. Camargo F. Guatemala, C. A.
From: Carlos Rocha on 18 Jul 2008 18:23 Geoff, My own interface used to be similar to what you are describing but I had lots of troubles with menus and events (in VO2.7 days). Now I'm using XTremeDockingPane (from Codejock) and it works as expected. It's a lot better than VO SplitWindow Try this: As the top window use TopAppWindow. In there put the SplitWindow with OwnerAlignement := OA_FULL_SIZE, and in the client pane use ChildAppWindows. Inside the ChildAppWindow you can put what you want. Carlos
From: Geoff Schaller on 18 Jul 2008 19:31 Geoff. Although I don't know anything about the faboutlookbar, I suspect you are making this too complex from a messaging point of view. Also, the new additions from Sven Ebert to many of the controls broke a lot of messaging whilst fixing other things. There are issues here that no-one is addressing but I have two suggestions: 1. Use the splitwindow as your primary window but put the toolbar directly on the split window, not as a pane. By making it a pane you are in fact divorcing it from the main message flow, making extra work for yourself. 2. Use a ShellWindow as your primary window (where menus and toolbars etc are just automatic) but put the SplitView control on the surface of the shell. Or get whacky and zoom out a modeless dialog with a splitview control on it. It depends on the effect you need. You didn't really explain the overall design so I don't know what role the split window is supposed to play. You probably need to inspect the SDK because nothing stops you stealing things from the shell window class and giving it to the splitwindow. But don't forget that in 2.8 the splitview class can be used like any other control and it gives you the ability to use it on any window. Perhaps your master window should just be a stand-alone datawindow??? Geoff
From: Geoff Chambers on 19 Jul 2008 15:12
On Jul 18, 7:31 pm, "Geoff Schaller" <geo...(a)softxwareobjectives.com.au> wrote: > Geoff. > > Although I don't know anything about the faboutlookbar, I suspect you > are making this too complex from a messaging point of view. Also, the > new additions from Sven Ebert to many of the controls broke a lot of > messaging whilst fixing other things. There are issues here that no-one > is addressing but I have two suggestions: > > 1. Use the splitwindow as your primary window but put the toolbar > directly on the split window, not as a pane. By making it a pane you are > in fact divorcing it from the main message flow, making extra work for > yourself. > > 2. Use a ShellWindow as your primary window (where menus and toolbars > etc are just automatic) but put the SplitView control on the surface of > the shell. Or get whacky and zoom out a modeless dialog with a splitview > control on it. > > It depends on the effect you need. You didn't really explain the overall > design so I don't know what role the split window is supposed to play. > You probably need to inspect the SDK because nothing stops you stealing > things from the shell window class and giving it to the splitwindow. But > don't forget that in 2.8 the splitview class can be used like any other > control and it gives you the ability to use it on any window. Perhaps > your master window should just be a stand-alone datawindow??? > > Geoff I'll try and explain the overall design better. Basically I have a SplitWindow with 2 Panes. The Left Pane holds a Dialog Window (FabOutlookBar)and the other pane holds a shell window. The lft pane Dialog Window basically provides me with buttons to selct files. When I press a button in the dialog window of the left pane it passes amessage up to the SplitWindow to open a DataWindow in the Shell window pane. This is working ok and all of the messaging seems to be handle correctly. I can Cascade and Tile the windows, Close all , etc... If I press a button in the left dialog and the window is already opened, it becomes the active window. The only problem is if I maximize the DataWindow the caption bar for the datawindow gets lost in the splitwindow. If I cascade or tile, the caption reappears. I need to somhow add minimize/maximize/close under the splitwindow caption bar so I can restore the datawindow. Looking at Fabrice's SplitShellWindow he is able to do it, the min/max/ close buttons appear directly below the splitwindow caption bar, but it looks like he is creating his SplitShell from ShellWindow. Geoff, I wanted to use your split window and shell, because I like the way you add the background to your windows. This is a small problem for now and not a show stopper. Rewriting the App not using Classmate, that's the goal for now. |