Как мне сделать выбор диапазона даты и времени в моем приложении Delphi? - PullRequest
3 голосов
/ 08 марта 2012

Я хочу, чтобы пользователь мог указать что-то вроде «вторник с 10 до 11».

Могу ли я сделать это с одним сложным элементом управления, или мне лучше использовать 3 отдельных более простых элемента управления, таких как комбинированные окна, по одному на день и по одному на время запуска / остановки?

Ответы [ 2 ]

7 голосов
/ 08 марта 2012

Было бы лучше, если бы у меня было 3 поля со списком, по одному на день и по одному на время старта / остановки?

Выберите любое решение, не требующее обработки естественным языком. Это менее «круто» и может выглядеть немного устаревшим, но держу пари, что это проще для пользователей, потому что они могут делать весь выбор мышами и всегда знать, что они получают то, что хотят. Естественный язык сложен, люди могут что-то упускать из-за букв, вводить невозможные данные или вводить в заблуждение. Что вы делаете, если они вводят что-то вроде этого:

"Marţi, de la 22 la 21"

(преднамеренно написано не на английском языке, с обращенными часами в 24-часовом формате!). И даже не думайте о том, чтобы попросить не-носителей английского языка НАПИСАТЬ свидания на английском, это пытка.

Другими словами, если у вас нет способности Google обрабатывать естественные языки на нескольких языках, используйте простую настройку с несколькими комбинированными списками с соответствующими редакторами для каждого сегмента: один для даты, два для времени.

5 голосов
/ 08 марта 2012

У JEDI VCL есть множество вариантов.

Если вы хотите иметь возможность делать что-то вроде Календаря Google, где вы можете выбрать диапазон от 9 до 11 часов визуально, в определенный день, вы можете использовать компоненты JvTimeFramework (персональный органайзер). Для просмотра одного дня со временем из определенного диапазона в другой конкретный диапазон идеально подходит компонент TJvTFDays:

enter image description here

Вы нажимаете на время, когда хотите начать, как это делает Календарь Google. Затем вы набираете «Обед с Дейвом» и нажимаете ввод, затем вы берете нижнюю часть квадрата и перетаскиваете его вверх и вниз, чтобы зафиксировать длительность, или перетаскиваете верхнюю часть квадрата вверх и вниз, чтобы изменить время начала. Если вы дважды щелкнете по нему, вы сможете напрямую вводить данные с помощью диалогового окна - диалоговое окно «Добавить встречу», показанное на снимке экрана, является только одним вариантом, доступным пользователям. Они могут работать без этого и просто напрямую вводить данные на страницу управления таймером.

В противном случае, если вы хотите придерживаться ввода текста, я бы объединил несколько элементов управления, включая JvDateTimePicker.

Ознакомьтесь с демонстрацией examples\JvTimeFrameWork\PhotoOp в папке примеров JVCL для вышеуказанной программы.

...