Вот чтото этого нужно юзать
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Length(Edit1.Text) < 1) and (Key in ['а'..'я']) then
Key := AnsiUpperCase(Key)[1]
else
Key := AnsiLowerCase(Key)[1];
end;
Не работает когда ты выделил весь текст и начинаешь заново его писать... Ошибка в этом условии Length(Edit1.Text) < 1