Инкрементация строкового поля
Свойства text элемента управления является строкой, в свою очередь являющейся
массивом символом. Вы не можете осуществить преобразование символа в строку. Тем
не менее, вы можете получить доступ ко всем символам строки через их индекс.
Попробуйте это:
var
s: string;
begin
s := RevField.text;
s[1] := chr(ord(s[1]) + 1);
RevField.text := s;
end;
|
Здесь кроются 2 проблемы:
- Для увеличения значения вам необходимо извлекать символы из строки.
- Хотя вы можете получить доступ к отдельным символам через выделение
подстроки, данный метод не срабатывает у некоторых свойств, таких как, например,
свойство TStringField Text.
Лучшим решением, по-видимому, будет написание специфической функции.
Например, в случае, если revision-символ всегда является конечным символом
строки, функция могла бы выглядеть следующим образом:
function IncrementTrailingVersionLetter(Str: string): string;
begin
Str[Length(Str)] := Char(Ord(Str[Length(Str)]) + 1);
IncrementTrailingVersionLetter := Str;
end;
|
и использовать ее следующим образом:
with RevField do
Text := IncrementTrailingVersionLetter(Text);
|
|