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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 15:35   #1
Dzeto
Новичок
Джуниор
 
Регистрация: 12.02.2011
Сообщений: 2
По умолчанию По нажатию кнопки каждое слово в TMemo должно начинаться с большой буквы

Здравствуйте.
По заданию нужно создать кнопку, по нажатию которой каждое слово, введенное в Memo1, должно начинаться с заглавной буквы.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 i,n:integer;
 str,buf:string;
begin
  str:=memo1.Text;
  buf:=' ';
  memo1.clear;
  for i:=1 to length(str) do
 begin
     if ((buf=' ')or(buf='/n'))and(str<>' ') then
     if (str in ['a'..'z', 'а'..'я']) then     
     str:= chr(ord(str) - 32);
     memo1.Text:=memo1.Text+str;
     buf:=str;
 end;
end;
Ссылается на ошибку в строке if (str in ['a'..'z', 'а'..'я']) then. Пишет Incompatible types: 'String' and 'Char'
Помогите, пожалуйста, как исправить данную ошибку?



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Dzeto; 30.05.2011 в 16:53.
Dzeto вне форума Ответить с цитированием
Старый 30.05.2011, 16:43   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
if (str in ['a'..'z', 'а'..'я']) then
Как строка может входить в множество? Нужно обращаться к конкретному символу строки
Код:
if (str[i] in ['a'..'z', 'а'..'я']) then
P.S. По моему у вас код будет работать для одного единственного слова в Memo1.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 31.05.2011, 08:48   #3
Dzeto
Новичок
Джуниор
 
Регистрация: 12.02.2011
Сообщений: 2
По умолчанию

Да, надо было str[i] везде. В общем, код такой

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,n:integer; 
str,buf:string; 
begin 
str:=memo1.Text;
buf:=' '; 
memo1.clear; 
for i:=1 to length(str) do 
begin 
if ((buf=' ')or(buf='/n'))and(str<>' ') then 
if (str[i] in ['a'..'z', 'а'..'я']) then
str[i]:= chr(ord(str[i]) - 32);
memo1.Text:=memo1.Text+str[i];
buf:=str[i];
end; 
end;
Dzeto вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод с большой буквы angel_ok Общие вопросы Delphi 16 14.01.2011 15:05
Составить программу, которая записывает каждое слово в тексте в обратном порядке.Delphi grongost Помощь студентам 4 23.09.2010 20:23
Мучаю учебник по Си :) Каждое слово на отдельной строке, вроде все нормально, но... Матвейка Помощь студентам 1 10.06.2009 19:56
Сколько раз в тексте встречается каждое слово. 08ekhiv1 Помощь студентам 2 11.03.2009 10:56
Нужно вывести на экран каждое слово на новой строке. Юлёк PHP 5 28.01.2008 14:57