Показать сообщение отдельно
  #1  
Старый 15.09.2018, 06:24
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию Разбить строку разделителями

Приветствую.
Задача такая.
Надо реализовать типа заводки будильника/таймера.

Есть строка вида 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;
Ответить с цитированием