Subject RE: [IBO] Restructure minor problems and some requests
Author Kaputnik
> -----Original Message-----
> From: mmenaz [mailto:mmenaz@...]
> Sent: Sunday, March 03, 2002 1:38 AM
> To:
> 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

> 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

> 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

> 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. 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...

> 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. 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 :-)

> 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.

> 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? 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 :-)

> 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 :-)

Cu, Nick