Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2012, 23:51   #21
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Предлагаю такое решение (проверил, вроде работает):

В переменных класса объявляем:

public
{ Public declarations }
ShiftState: boolean;

Добавляем процедуру:

procedure TForm1.Edit7KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShiftState:=Shift=[ssShift];
end;

и меняем условие в исходной процедуре KeyPress:

s:= Key;
if (Edit7.SelStart=0) or ShiftState then
s:=AnsiUpperCase(s)
else
s:=AnsiLowerCase(s);
Key:=s[1];
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.08.2012, 18:21   #22
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Первое, что пришло в голову:
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if edit1.SelStart=1 then                 begin
 Edit1.text := AnsiUpperCase(Edit1.text[1]) + Copy(Edit1.text, 2, MaxInt) ;
 edit1.SelStart:=1;
 end
end;
Kix.IV вне форума Ответить с цитированием
Старый 13.08.2012, 11:31   #23
Vigi
Пользователь
 
Аватар для Vigi
 
Регистрация: 25.09.2008
Сообщений: 38
По умолчанию

Ну вот как вариант до кучи. На форму таймер с интервалом 10

Код:
procedure TForm2.tmr1Timer(Sender: TObject);
begin
  if Copy(edt1.Text,1,1)<> AnsiUpperCase(Copy(edt1.Text,1,1)) then
   begin
     edt1.Text := AnsiUpperCase(edt1.Text);
     Edt1.SetFocus;
     Edt1.SelLength:=0;
     Edt1.SelStart:=Length(Edt1.Text);
    end;
end;
Я с Вами где-то рядом...

Последний раз редактировалось Vigi; 13.08.2012 в 11:39.
Vigi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить в группе ячеек с текстом регистр букв Wespe Microsoft Office Excel 2 21.06.2010 09:01
Запись в регистр Vitek-pm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 17.02.2010 04:00
Привязка к файлам, Перезагрузка и обновление формы, Регистр букв, Шифровка данных Лукманов Александр Общие вопросы Delphi 2 24.12.2008 15:17
Регистр для русских букв Kulibim Общие вопросы Delphi 2 28.10.2007 17:36
регистр vitalik007 Общие вопросы Delphi 2 15.09.2007 02:41