Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 11 total
Thread TDateEditComboBox behaviour
Wed, Aug 26 2015 7:07 PMPermanent Link

Malcolm Taylor

I have updated my little test app to 2.01

The only bit that is not working quite as I expected is the
TDateEditComboBox.

I am leaving the .SelectedDate (and .Text) clear and requiring the user
to provide a value.
If the calendar button is clicked/tapped, the calendar appears,
displaying the current date (Now).
If that date is clicked/tapped, then the Calendar closes but no date is
returned.  o(
If any other date is picked from the Calendar a date is returned.

Am I doing something wrong?  
Must I pre-set a .SelectedDate if there is any possibility that the
user may select Now?
It does not seem reasonable to expect a  user wishing to enter today's
date, to have to first select a different date (which closes the
calendar), then re-open the calendar to select today.
Thu, Aug 27 2015 10:07 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Malcolm,

<< I am leaving the .SelectedDate (and .Text) clear and requiring the user to provide a value. If the calendar button is clicked/tapped, the calendar appears, displaying the current date (Now). If that date is clicked/tapped, then the Calendar closes but no date is returned.  o( If any other date is picked from the Calendar a date is returned. >>

I'm uploading a 2.01 B2 right now, and it fixes this issue.

Thanks,

Tim Young
Elevate Software
www.elevatesoft.com
Fri, Aug 28 2015 7:30 AMPermanent Link

Malcolm Taylor

Tim Young [Elevate Software] wrote:

>
> I'm uploading a 2.01 B2 right now, and it fixes this issue.
>

Thanks for fixing that, Tim.

I have been spending some time testing this component and while it
mostly works fine on a desktop or laptop with a keyboard, I hit a few
snags when running on virtual keyboard devices.  I planned to write a
single post listing all my comments and experiences, but there is one
that has me stumped so I will concentrate on it for now.

When the dropdown calendar is triggered, any VKbd is closed (in my
experience) so it is only possible for the user to tap the calendar.
This seems to make it impossible to use the numeric keypad or arrow
keys to navigate the Calendar and/or change views.  That leaves only
the month inc/dec icons available to the user.

So I attempted to initialise the view to cvYear in the DropDownShow
event ... but the only compilable code I could come up with was:
   TCalendar(Sender).View := cvYear;
But then the IDE's web server threw the error "Object doesn't support
property or method 'x_Ra'.
What is the correct way to set the view in code.  Surprised

Perhaps there is a case for including a 'view' navigation icon
(up/down)?


Fri, Aug 28 2015 12:06 PMPermanent Link

Malcolm Taylor

Some more TEditDateComboBox observations.

These comments are all in the context of a small format device without
hardware keyboard.
Only then do they become apparent.

Calendar Size/Position:
-----------------------
When displayed, the calendar is positioned at the same Left coordinate
as the EditBox and cannot be dragged by the user (AFAICT).

On a smaller device (say nominal 5") in portrait layout and with the
default calendar dimensions it is thus very likely that the right side
will be off-screen unless the EditBox is placed close to the left
margin.  The top or bottom may also be off-screen if the EditBox is
about midway down the screen - and certainly in landscape.

It would be great if the calendar could float centrally on a smaller
device, or be dragged by the user, or be positioned in code.

Of course, the Height and Width of the calendar can be reduced for
smaller screens, but make it too small and the user will need pointy
fingers!

Calendar Close (DropDownHide):
------------------------------
Selecting a date hides the calendar and returns the focus to the
EditBox.
But it also triggers the VKbd which can then obscure the EditBox if it
is too low down the screen.
This means the user must either:
 * start to enter something, causing the component to float up into
view, or
 * close the VKbd to actually see the date selected

My solution to this has been to assume the user got it right (!) and
skip straight to the next input component by popping this code into the
DropDownHide action:

begin
 MyDateEditComboBox.Tab;
end;

Unfortunately that bypasses the component's OnExit action in which I
have some code, so I also have to include or call that code.
No big deal, but I have to remember to do it.

These pesky VKbds !!!

Maybe I can solve some of the above by making sure my TForm is big
enough to accommodate the excess width and height so that the user can
scroll if necessary(?)  I tried and failed once - I will have another
stab, even if the form looks a bit lopsided ....
Fri, Aug 28 2015 2:51 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Malcolm,

<< When the dropdown calendar is triggered, any VKbd is closed (in my experience) so it is only possible for the user to tap the calendar. This seems to make it impossible to use the numeric keypad or arrow keys to navigate the Calendar and/or change views.  That leaves only the month inc/dec icons available to the user. >>

Just tap on the date at the top of the calendar.

Tim Young
Elevate Software
www.elevatesoft.com
Fri, Aug 28 2015 2:57 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Malcolm,

<< It would be great if the calendar could float centrally on a smaller device, or be dragged by the user, or be positioned in code. >>

I'll see what I can do.  Most likely, I'll just add a placement property.

<< Selecting a date hides the calendar and returns the focus to the EditBox. But it also triggers the VKbd which can then obscure the EditBox if it is too low down the screen. >>

This I can't do anything about.  The problem is that Chrome for Android does not overlay the virtual keyboard, like *it should*.  People have been complaining about this for years.  Windows Touch and iOS handle this correctly.

<< Maybe I can solve some of the above by making sure my TForm is big enough to accommodate the excess width and height so that the user can scroll if necessary(?)  I tried and failed once - I will have another stab, even if the form looks a bit lopsided .... >>

Unfortunately you're fighting a losing battle.  During EWB 2 development, I spent at least a couple of weeks trying to come up with a solution to the virtual keyboard causing a resize of the browser window on Android, and it's just not possible to reliably do so.   There is no "the keyboard opened" event for browsers, and so one has to try to "guess" what the combination of circumstances are that are causing the browser window to resize, and it just isn't reliable enough for everyday use.

Tim Young
Elevate Software
www.elevatesoft.com
Fri, Aug 28 2015 8:12 PMPermanent Link

Malcolm Taylor

Tim Young [Elevate Software] wrote:

>
> Just tap on the date at the top of the calendar.
>

Ah, yes, I see.  I was unaware that could change the view.  Hmm, is
that something (younger) users will know.
Fri, Aug 28 2015 8:26 PMPermanent Link

Malcolm Taylor

Thanks for all that, Tim.

Placement could make the diference for me.
But for now I have reverted back to my previous component.

I did try using the TCalendar on its own instead of the combo so that I
could place it, but I could not work out how to Hide/Show it.  It
seemed to ignore all my attempts to Show/Hide or move to Front/Back,
remaining Visible on top at all times.  Surprised
Mon, Aug 31 2015 10:05 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Malcolm,

<< Hmm, is that something (younger) users will know. >>

I'm not sure what you're asking here ??  The calendar works like the one in Windows, and several others that have been made for UIs like Bootstrap for JS/browsers.

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Aug 31 2015 11:33 AMPermanent Link

Malcolm Taylor

Tim Young [Elevate Software] wrote:

> Malcolm,
>
> << Hmm, is that something (younger) users will know. >>
>
> I'm not sure what you're asking here ??  The calendar works like the
> one in Windows, and several others that have been made for UIs like
> Bootstrap for JS/browsers.
>

Hi Tim,

Yes, I discovered that last night.  
I just never thought to click the caption bar except on the < > icons.
Having discovered it, I then tried on another website with a calendar
... and it works exactly the same, so just put it down to my ignorance.
Surprised
Page 1 of 2Next Page
Jump to Page:  1 2
Image