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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.11.2009, 07:50   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ребята вы хоть пробовали то что написали?
В таком виде оно может заругаться. Надежнее делать так:
Код:
var e,s:string;
begin
 s:=Edit1.Text;
 e:=AnsiUpperCase(s[1]);
 s[1]:=e[1];
 Edit1.Text:=s;
end;
I'm learning to live...
Stilet вне форума
Старый 06.11.2009, 08:33   #12
Rabbit
Пользователь
 
Аватар для Rabbit
 
Регистрация: 12.01.2008
Сообщений: 12
По умолчанию

Извиняюсь! Протупил!
AnsiUpperCase() - функция, которая возвращает строку.

Stilet, твой окд работает, только его нужно помещать не OnChange, а в OnExit, а то он в начало строки добавляет заглавную букву каждый раз. Ну и естественно обработку на пустую строку.

Я это так сделал:
Код:
function UpCaseEdit(Str: string): string;
begin
  if Length(Str) = 0 then Exit;
  Result:=Str;
  Result[1]:=AnsiUpperCase(Result)[1];
end;

procedure TForm2.Edit1Exit(Sender: TObject);
begin
  Edit1.Text:=UpCaseEdit(Edit1.Text);
end;
Rabbit вне форума
Старый 06.11.2009, 12:03   #13
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

В принципе тот же вариант от Stilet.
В первом случае замена по "клику" кнопки
Код:
procedure TForm1.Button1Click(Sender: TObject);
var str: string;
begin
  str:= Form1.Edit1.Text;
  str[1]:= AnsiUpperCase(Edit1.Text)[1];
  Form1.Edit1.Text:= str;
end;
Или же автозамена при выходе из Edit (то же самое - потеря фокуса)
Код:
procedure TForm1.Edit1Exit(Sender: TObject);
  var str: string;
begin
  str:= Form1.Edit1.Text;
  str[1]:= AnsiUpperCase(Edit1.Text)[1];
  Form1.Edit1.Text:= str;
end;

procedure TForm1.Button1Click(Sender: TObject); // "уводим"  фокус с Edit
begin
  Form1.SetFocus;
end;
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума
Старый 06.11.2009, 12:35   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а то он в начало строки добавляет заглавную букву каждый раз.
Странно... С какого бы это? Вроде я проверял.
I'm learning to live...
Stilet вне форума
Старый 06.11.2009, 12:55   #15
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Все зависит от того в каком обработчике разместить код.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума
Старый 08.11.2009, 08:09   #16
Rabbit
Пользователь
 
Аватар для Rabbit
 
Регистрация: 12.01.2008
Сообщений: 12
По умолчанию

Цитата:
Цитата:
а то он в начало строки добавляет заглавную букву каждый раз.
Странно... С какого бы это? Вроде я проверял.
Я тоже с этим моментом не разобрался.
Rabbit вне форума
Старый 08.11.2009, 08:24   #17
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
procedure TForm1.Edt1KeyPress(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 :=chr(ord(Key)-32);
end;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума
Старый 09.11.2009, 10:53   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Key :=chr(ord(Key)-32);
Опасно... не на всякой раскладке сработает.
I'm learning to live...
Stilet вне форума
Старый 09.11.2009, 16:57   #19
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Опасно... не на всякой раскладке сработает.
Цитата:
if Key in ['а'..'п','р'..'я'] then
на русской сработает а для остальных вместо
Код:
Key :=chr(ord(Key)-32);
нужно
Код:
key:= upcase(Key)
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума
Старый 09.11.2009, 17:09   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нужно
Ошибаешся upcase только аглицкие буквы любит
Тут нужно AnsiUpperCase.

Впрочем думаю автор уже давно все понял.
I'm learning to live...
Stilet вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматически изменять первую букву в слове на заглавную для Microsoft Office Excel. agregator Microsoft Office Excel 17 24.02.2012 10:56
Заменить автоматически первую букву в ячейке на заглавную. agregator Microsoft Office Excel 2 02.07.2009 18:22
Помогите с написанием маленькой проги Nightprince Помощь студентам 6 16.01.2009 00:08
Не могу нарисовать блок-схему маленькой программы prikolist Паскаль, Turbo Pascal, PascalABC.NET 4 25.11.2008 23:40
Написать на маленькой кнопке SAndrus Microsoft Office Excel 5 15.07.2007 23:59