Ниже приведен простой пример поля ID, содержащего A,B,C, для вывода (и
обновления) *всех* элементов управления как 1,2,3:
procedure TForm1.Table1IDGetText(Sender: TField;
var Text: OpenString; DisplayText: Boolean);
var
s: string;
begin
s := (Sender as TStringField).Value;
case s[1] of
'A': Text := '1';
'B': Text := '2';
'C': Text := '3';
else
Text := '9'
end;
end;
procedure TForm1.Table1IDSetText(Sender: TField; const Text: string);
var
s: string;
begincase Text[1] of
'1': s := 'A';
'2': s := 'B';
'3': s := 'C';
else
s := 'Z'
end;
(Sender as TStringField).Value := s;
end;
Перевод на русский язык:
Код Delphi демонстрирует реализацию процедур SetText и GetText для поля типа строка в таблице базы данных. Специфический случай использования - поле с именем "ID", содержащее значения 'A', 'B' или 'C'. При извлечении значения поля (GetText) оно должно быть преобразовано в соответствующее числовое значение (1, 2 или 3). С другой стороны, при вводе числового значения в поле (SetText), оно должно быть преобразовано обратно в его оригинальное буквенное значение ('A', 'B' или 'C').
Расшифровка кода:
Процедура GetText:
Процедура Table1IDGetText вызывается при извлечении значения поля "ID".
Она принимает три параметра:
Sender: Объект, который инициировал событие (в этом случае - поле "ID").
var Text: Переменная, которая будет содержать извлеченное текстовое значение.
DisplayText: Булевый параметр, не используемый в этом примере.
Процедура преобразует значение поля "ID" в строку (s) и использует оператор case для определения соответствующего числового значения буквы.
Если входное значение буквы не совпадает с ожидаемыми значениями ('A', 'B' или 'C'), оно по умолчанию принимается за 9.
Процедура SetText:
Процедура Table1IDSetText вызывается при установке нового значения для поля "ID".
Она принимает два параметра:
Sender: Объект, который инициировал событие (в этом случае - поле "ID").
const Text: Константная строковая переменная, которая будет преобразована в букву.
Процедура преобразует входное числовое значение в букву с помощью оператора case и присваивает ее временной строковой переменной (s).
Если входное значение не совпадает с ожидаемыми значениями (1, 2 или 3), оно по умолчанию принимается за 'Z'.
Наконец, преобразованная буква присваивается обратно значению поля "ID".
Пример статьи описывает реализацию процедур SetText и GetText для строки, которая преобразует символы A, B, C в соответствующие целочисленные значения 1, 2, 3 и обратно.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.