Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ изменение регистра-?

Автор: 1147 6.11.2009 3:06

В DBEdit вводится некоторое слово кирилицей. Можно ли как-то организовать чтобы первая буква этого слова автоматически становилась заглавной, как-будто мы при этом нажали shift?

function UpCase(c : Char) : Char;
не годится, т.к. применима только к символам 'a'..'z'
пробовал использовать
AnsiUpperCase(DBEdit1.Text[1]);
но тоже чтото не получается. и с Upcase тоже.
Вообще достаточно ли для этой процедуры одной строки кода, как это делал я, или это намного сложней?

Автор: volvo 6.11.2009 3:24

Цитата
достаточно ли для этой процедуры одной строки кода, как это делал я, или это намного сложней?
Ненамного:
procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
//
with (Sender as TDBEdit) do
begin
if Length(Text) = 1 then
begin
Text := AnsiUpperCase(Text);
SelStart := 2; // Иначе после смены символа каретка перескочит в начало
end;
end;
end;