|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Разбить строку разделителями
Приветствую.
Задача такая. Надо реализовать типа заводки будильника/таймера. Есть строка вида 00:00:00 Есть виртуальная клавиатура (аля калькулятор) Мне надо что б числа с клавиатуры записывались с права на лево. После каждых двух чисел ставился разделитель ":". На клаве есть кнопка удаления. Она должна удалять один, самый правый символ. (наподобии как в стандартном виндовом калькуляторе работает кнопка со стрелкой). При удалении в самый правый символ должен записываться ноль (что б баланс сохранялся). Короче должно всегда быть три группы по 2 символа разделённых двоеточиями. Тип такого: 03:10:06 или 00:00:07 Например что б завести таймер на 2часа и 10 минут, надо нажать на клавиатуре 21000 (02:10:00 Часы : Минуты : Секунды) И если можно продублировать ввод с виртуальной клавиатуры и с обычной. И ограничить ввод только целыми числами (что б нельзя было вводить буквы, дроби, и символы. Только числа). Спасибо. Вставку в конец строки делаю так: Код:
uses System .... var Target: string; begin Target:= '12345678'; Insert('-+-', Target, Length(Target)+1); // Как определить какая кнопка была нажата и добавить число соответствующее? Что б не писать кучу проверок. ShowMessage('Target '+Target); end; Удаление делаю так: Код:
var Target: string; begin Target:= '12345678'; delete(Target,Length(Target),Length(Target)); // Удаляем символ с конца Insert('0', Target, 0); // Записываем ноль в начало ShowMessage('Target '+Target); end; Последний раз редактировалось TEKTON, 15.09.2018 в 06:52. |