Перевод в верхний регистр первого вводимого символа
Сокращенное название Международной Ассоциации Старых Дев - "Интер-НЕТ!"
procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
beginif (DBEdit1.SelStart = 0) then
Key := upCase(Key);
end;
Или для Edit:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
beginwith Sender as TEdit doif (Text = '') or (Text[SelStart] = ' ')
or (SelLength = Length(Text)) thenif Key in ['a'..'z'] then
Key := UpCase(Key);
end;
Here's the translation of the Delphi code snippet into Russian:
Процедура 1: DBEdit1KeyPress
Эта процедура вызывается при нажатии клавиши в контроле DBEdit (редактор с учетом базы данных). Она проверяет, находится ли начало выделения (SelStart) в начале текста (т. е., имеет индекс 0). Если это так, она конвертирует входящий символ в верхний регистр с помощью функции UpCase и присваивает результат параметру Key.
Процедура 2: Edit1KeyPress
Эта процедура аналогична первой, но вызывается при нажатии клавиши в обыкновенном контроле TEdit (простой редактор). Она проверяет три условия:
1. Текст пуст (Text = '').
2. Начало выделения находится в начале текста и не выбрано ни одного символа (Text[SelStart] = ' ').
3. Длина выделения равна длине текста, что означает, что выбран только один символ.
Если любое из этих условий истинно, она проверяет, является ли входящая клавиша нижним регистром (Key in ['a'..'z']). Если это так, она конвертирует клавишу в верхний регистр с помощью UpCase и присваивает результат параметру Key.
Альтернативное решение
Вместо использования множества условий и проверок можно упростить код, используя одиночную проверку первого символа:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Sender is TEdit) and (TEdit(Sender).Text = '') then
Key := UpCase(Key);
end;
В этом варианте мы используем if-заявление, чтобы проверить, является ли отправитель контролем TEdit и если текст пуст. Если оба условия истинны, мы конвертируем клавишу в верхний регистр.
Обратите внимание, что в обоих процедурах вам нужно убедиться, что объект-отправитель является indeed контролем DBEdit или TEdit, соответственно.
Статья описывает программные решения для преобразования первого вводимого символа в верхний регистр на языках Delphi и Pascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.