Subject Re: [IBO] Restructure minor problems and some requests
Author mmenaz
--- In IBObjects@y..., "Kaputnik" <delphi@k...> wrote:
> > -----Original Message-----
> > From: mmenaz [mailto:mmenaz@l...]
> > Sent: Sunday, March 03, 2002 1:38 AM
> > To: IBObjects@y...
> > Subject: [IBO] Restructure minor problems and some requests
> >
> >
> > Nothing serious but...
> > a) "OK" and "Cancel" buttons should be on the right side of the
> > window, not left.
>
> It is simply a personal preference, but can be changed

It's a window standard...

>
> > b) If you move an item to the top or the bottom of the list using
> > the "go to top" and "go to bottom" button, the item looses focus
>
> yes, this is intended, but can be changed easily. The reason is simply, that
> by moving an item to the top or bottom, you're normally done with your work
> and select new columns anyway. Can be changed though

Ok, but it can also be used like a "fast forward" and then refine the position.

>
> > c) if you have item 1...9 and hide 2,3,4,5, if you then take the
> > first item and click the down arrow to move it down, you have to
> > click 6 times to have it move to the second position. It's like
> > the code is stepping through the list without jumping the hidden
> > (so not more present) elements of the visible columns.
>
> Yes, this is intended. I am moving the items through all fields order, not
> all visible fields order. Doing the latter would have introduced some
> complexity I did not have enough time to cope with. You can see the behavoir
> at full work, if you move one column up while having several invisible
> columns over it and set these columns visible again. I prefer this that way
> but I think there is a possiblility to change the behavior in the future

It's confusing... you don't know if you clicked the button or not, or what is happening. As a programmer, I can understand such behaviour, but a simple user will not.

>
> > d) if I resize full screen the window, then move the vertical
> > separator right to be centred, and then revert back the window to
> > the original size, the vertical separator is not put in a
> > proportional position, it's full right (hiding the "visible
> > fields" panel) (btw, are you sure you need a resizable window?)
>
> Yes, I want it to be resizeable. One complaint I always have about almost
> every app (inlcuding MS Office) is, tha for many tasks, the listboxes are
> too small. Take e.g. the tree-nodes editor in delphi. The tree in there is
> way to small to be usefull. I have tables, where there are more than 40
> columns in. A non-resizable windows would lessen its usefullness.

Ok, you are right! I'm often irritated by non sizeable window. I tested your component with 10 columns, but when you have 40 resize is a must :)

The
> default delphi splitter behavior (I am using a plain TSplitter here) has no
> support for proportional splitting, so I would need to code it by hand, and
> I don't see too much use for this right now...

It's just making thing more useful

>
> > e) I HATE flat buttons, they break one of the basic interface
> > design principles, so I always set the bar Flat to false.
> > Unfortunately, your window ignores this setup... ;)
> >
>
> Ouch, you mean the flat buttons for moving the columns? Well, flat or not
> flat is personal preference and not design principle and is not a subject of
> discussion for me.
> I like them, you not. Period.

Ok, but IT IS A DESIGN PRINCIPLE. If you put somebody in fron of something that has the look of being pushable, he will try to push it. If flat, who can imagin that can be pressed? IE is one of the worse interface I've seen. You can't understand what button is active if you don't move the mouse on it, and you have to imagin that those stragne pictures are buttons and not decorative effects. Of course, you can learn it, but you can also leark WordStar key combinations...
(have a look to www.cooper.com).
But, of course, what Microsoft does, everybody likes...

> I will change the SearchBar
> code to check the flat-type of the bar in the btnclick and set the
> flat-properties of the BitBtn's accordingly. Btw, never did really think of
> the possibility, that someone is really using the bars not-flat :-)
Thanks for the fix (btw, I love being alone ;)

>
> > Request of improvements:
> > "Restructure" is a too generic name... better would be
> > "GridRestructure" or something similar...
> >
>
> Thats for Jason to decide.....
>
> > If I hide a column, why not automatically select the following
> > item? If I want to hide 3 sequent column, I have to locate the
> > remaining every time, and it's not easy.
> >
>
> The list-boxes are multi-select!! Just mark all of them at the same time and
> hide them. Use the ctrl-key for individual selections and the shift-key for
> selection areas just as you are used it from the Windows-Explorer.
Oh, yes... thanks, I don't use multiselect often :) Neverless an autorefocus would be cool.

>
> > When the window pops up, it should have the first column of the
> > visible fields selected
> >
>
> Will be changed, of course
>
> > You are using buttons of type TBitBtn, while the ordering window
> > uses Tbutton. I do prefer and always use TBitBtn with glymps, but
> > you or Jason should change to have uniformity (btw, Jason, if you
> > are reading, why not set focus to the current item of the
> > ordering window, instead of on the OK button? Since OK can be
> > pressed with Enter, you could change the current ordering column
> > using only keyboard and in a snap, instead of using the mouse or
> > tab until you get the list).
> >
>
> Thats for Jason to decide. Using GExperts, changin the button to TButton is
> a matter of seconds for me, if he likes so.
>
> > What about having some more property to customize? Like colors...
>
> What do you mean with this? You mean an interface for TIB_SessionProps?
No, please, not. Just grid properties (fonts, selected color, etc.... but maybe it's a wrong idea, some user could make a mess of the grid :(

> I think this should be fairly simple provided I can find a nice colorpicker
> which is Public Domain (and NOT Freeware) to inlcude the units directly into
> IBO, and not to require third-party stuff to be installed along with IBO.
>
> > add a PageControl... but ask Jason first. What I would like to
> > have, and is a general consideration, is a component that can
> > save forms (I mean, components, grids, etc.) state to a blob
> > field of a table with form_name+user_id fields, so every time a
> > user reopens the form, the values he used the last time are
> > presented back (very useful for forms asking parameters...).
>
> I use TFormStorage from RXLib to save that stuff into the registry....I do
> not want to bloat the Database with such stuff. I have Formstorages in
> Datamodules with a custom onRestorePlacement and onSavePlacement handler,
> where all Queries on a Datamodule are looped through and the properties
> FieldsIndex, FieldsVisible, OrderingItemNo and FieldsDisplayWidth are saved
> and restored. Works like a charm, and RXLib is free....
> When I create a form in any kind of app, the first thing I do is to drop the
> TFormPlacement onto it, and set the registry-key. Saving formposition, size
> and all kinds of properties gathered trhough RTTI is such a nice thing, I
> would NEVER try to code this stuff myself. Use what's already there, and
> RXLIb is definitely a must-be to consider for every delphi-installation :-)

Ok, but I don't like put things in registry. If you reinstall Windows, you loose your setup. But thanks for the suggestion. I will have a look at Rx components, and adapt them to IBO properties and definitions :: I think it will a good starting point (btw, si RxLib still alive? Their site is... something different now! http://www.rxlib.com/)

>
> > I will work on that in the future, since adding memory to a program
> > is one of the better thing you can do to your users (anyone here
> > has ideas to give me about that? Already done code? Requests?).
> > In this regards customizing grid in more details can be interesting.
> >
> > Even if you, as you stated, are not an artist I like the icon ;)
> I hate the icons in the form itself...they are blue, what I like, but
> somehow clumsy IMO :-)
> > I do think you have provided a very good code, I like it. What I
> > wrote is just because only good work can be even better ;)
>
> The code is a quick hack and pretty clumsy IMO, and I will definitely rehaul
> it when I find the time to do so....using the Stringlists and
> ShadowStringLists to separate displayLabels and FieldNames is only a
> workaround.... Comments are always appreciated :-)

Oh, time... sigh! It's my problem too :(
Many thanks for your reply and your work :)

Marco Menardi