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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 12:13   #11
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Подправил свой пример.
Цитата:
var s:string;
begin
For I := 0 To Memo1.Lines.Count - 1 Do
s:= UpperCase(Memo1.Lines[I]);
s[1]:=UpperCase(s[1]);
end;
Позвольте, а нафига вы UpperCase два раза вызываете?
Цитата:
У меня в Edit
Тогда убираете внешний цикл. Если не работает UpperCase с русскими - пишете свой с Chr
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.01.2011, 12:23   #12
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Подправил свой пример.
Позвольте, а нафига вы UpperCase два раза вызываете?
опечатка
пыжок
maloun вне форума Ответить с цитированием
Старый 13.01.2011, 12:56   #13
angel_ok
Пользователь
 
Регистрация: 30.06.2008
Сообщений: 17
По умолчанию

так как сделать для edit?
повторюсь:
with Sender as TEdit do
if (SelStart = 0) or
(Text[SelStart] = ' ') then
if Key in ['a'..'z'] then
Key := UpCase(Key) ;

работает для анг.расскладки,можно это как-нить сделать для русского алфавита?
angel_ok вне форума Ответить с цитированием
Старый 13.01.2011, 13:06   #14
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Вот функция
Код:
 // Верхний регистр

function UpCaseRus(ch: Char): Char;
asm
  CMP   AL,'a'
  JB    @@exit
  CMP   AL,'z'
  JA    @@Rus
  SUB   AL,'a' - 'A'
  RET
@@Rus:
  CMP   AL,'я'
  JA    @@Exit
  CMP   AL,'а'
  JB    @@yo
  SUB   AL,'я' - 'Я'
  RET
@@yo:
  CMP   AL,'?'
  JNE   @@exit
  MOV   AL,'?'
@@exit:
end;
А это как ее вызвать
Код:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
   with Sender as TEdit do
    if (Text = '') or (Text[SelStart] = ' ')
      or (SelLength = Length(Text)) then
        if Key in ['а'..'я'] then
          Key :=UpCaseRus(Key)
          else
      if Key in ['a'..'z'] then
          Key :=UpCase(Key) ;
  end;
Aleksandr вне форума Ответить с цитированием
Старый 13.01.2011, 13:33   #15
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Вот исходник.
Вложения
Тип файла: rar регистр.rar (5.5 Кб, 7 просмотров)
Aleksandr вне форума Ответить с цитированием
Старый 14.01.2011, 08:41   #16
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
По умолчанию

<CODE>
with Sender as TEdit do
if (SelStart = 0) or
(Text[SelStart] = ' ') then
if Key in ['a'..'z'] then (* замените ['a'..'z'] на ['а'..'я'] *)
Key := UpCase(Key)
</CODE>
Хоть мельком смотрите,что написано.
Темы для WordPress. Русские WordPress шаблоны
Alexei91 вне форума Ответить с цитированием
Старый 14.01.2011, 15:05   #17
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от angel_ok Посмотреть сообщение
так как сделать для edit?
...
работает для анг.расскладки,можно это как-нить сделать для русского алфавита?
Код:
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var num: integer;
    tmp,tmps: string;
begin
tmp:=(Sender as TEdit).Text;
tmps:='';
for num:=1 to Length(tmp) do
begin
if num=1 then
tmps:=tmps+AnsiUpperCase(tmp[num]) else
tmps:=tmps+AnsiLowerCase(tmp[num]);
end;
(Sender as TEdit).Text:=tmps;
if Length(tmps)=1 then
(Sender as TEdit).SelStart:=2;
end;
asmodey1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
большой цикл bulldog5293 Общие вопросы Delphi 7 15.12.2010 15:06
Большой екзешник MBentefor C++ Builder 4 16.04.2010 10:24
Все ли эти слова написаны с большой буквы dip Помощь студентам 11 02.11.2009 20:42
Большой шрифт vitalik007 HTML и CSS 5 25.10.2007 14:33