Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.03.2019
Сообщений: 131

Склонение слова

18.06.2022, 16:56. Показов 948. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, прошу прощения за новичковый вопрос.

Такой вопрос на форме Label2 и Edit1.
Что нужно: если в Edit1 ставят цифру 1, то Label2 меняется на слово "лист", если цифра 2 = "листов" и тд.
Нужно чтобы работало до 200 страниц.

Такой просто код не очень удобный, да и простой:
Delphi
1
2
3
4
5
procedure TMAIN.Edit1Change(Sender: TObject);
begin
if (Edit1.Text = '1') or (Edit1.Text = '21') then
Label2.Caption:='лист';
end;
Видел тему:
Правильное склонение слова "рубль" в зависимости от введенной суммы
Там код от Verevkin:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
function WordsToStr(const ACount: DWORD): string;
begin
  Result:= IntToStr(ACount);
  case ACount mod 100 of
    11..14: Result:= Result + ' слов';
  else case ACount mod 10 of
         1:    Result:= Result + ' слово';
         2..4: Result:= Result + ' слова';
       else    Result:= Result + ' слов';
       end; //case
  end; // case
end;
Но не пойму как применить данную функцию для Edit и Lable.

По сутки, все также можно сделать для Edit и Lable через массив, но я не знаю как.

Может подскажите интересные варианты, заранее благодарю
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2022, 16:56
Ответы с готовыми решениями:

Правильное склонение слова "рубль" в зависимости от введенной суммы
Составить программу, которая в результате ввода числа от 1 до 30 находила бы соответствие рубль, рубля, рублей (3 – «3рубля», 5 – «5...

склонение фамилии
помогите пожалуйста.. нужно к примеру в Edit1 вводится фамилия (например Ряховский) т.е. если заканчивается на -ИЙ то заменяется на -ОМУ и...

Склонение временных единиц
Как склонять секунды в Label, чтобы менялось окончание по смыслу. Например: 0 секунд 1 секунд(а) 2 секунд(ы) 5 секунд 11...

12
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
18.06.2022, 17:26
Цитата Сообщение от Eirstrean Посмотреть сообщение
подскажите интересные варианты
У вас уже весь код написан. Меняйте "слов" на "листов" и вперёд.

Delphi
1
2
3
4
5
6
7
8
uses SysUtils;
...
var
   CntWords: Integer;
...
   If not TryStrToInt(Edit1.Text, Abs(CntWords)) then exit;
 
   Label2.Caption := WordsToStr(CntWords);
1
Злостный нарушитель
 Аватар для Verevkin
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,510
18.06.2022, 17:30
Лучший ответ Сообщение было отмечено Eirstrean как решение

Решение

Цитата Сообщение от Eirstrean Посмотреть сообщение
Но не пойму как применить данную функцию для Edit и Lable.
Да ёптыть...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function PagesToStr(const ACount: DWORD): string;
begin
  Result:= IntToStr(ACount);
  case ACount mod 100 of
    11..14: Result:= Result + ' листов';
  else case ACount mod 10 of
         1:    Result:= Result + ' лист';
         2..4: Result:= Result + ' листа';
       else    Result:= Result + ' листов';
       end; //case
  end; // case
end;
 
procedure Edit1Change(Sender: TObject);
var
  pages: int32;
begin
  if TryStrToInt(Edit1.Text, pages)
    then Label1.Caption:= PageToStr(pages)
    else Label1.Caption:= '';
end;
0
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
18.06.2022, 17:37
Цитата Сообщение от Verevkin Посмотреть сообщение
Да ёптыть...
Пусть бы ТС хоть немного мозгой пошевелил...
1
Злостный нарушитель
 Аватар для Verevkin
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,510
18.06.2022, 17:42
Цитата Сообщение от Gluck99 Посмотреть сообщение
Пусть бы ТС хоть немного мозгой пошевелил...
мне скучно.
1
0 / 0 / 0
Регистрация: 17.03.2019
Сообщений: 131
18.06.2022, 18:06  [ТС]
Согласен, додумал бы, но саму реализацию не понимал до конца как, спасибо за помощь

Добавлено через 29 секунд
Спасибо

Добавлено через 17 минут
Цитата Сообщение от Verevkin Посмотреть сообщение
мне скучно.
Все хорошо, только вот TryStrToInt не работает в Delphi 7))
0
Злостный нарушитель
 Аватар для Verevkin
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,510
18.06.2022, 18:07
Цитата Сообщение от Eirstrean Посмотреть сообщение
TryStrToInt не работает в Delphi 7))
Ну так выкинь эту срань.
0
0 / 0 / 0
Регистрация: 17.03.2019
Сообщений: 131
18.06.2022, 18:13  [ТС]
сильно
0
Злостный нарушитель
 Аватар для Verevkin
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,510
18.06.2022, 18:17
Цитата Сообщение от Eirstrean Посмотреть сообщение
сильно
Я суров, но справедлив.
0
Модератор
4138 / 2351 / 809
Регистрация: 15.11.2015
Сообщений: 9,396
18.06.2022, 19:28
Цитата Сообщение от Eirstrean Посмотреть сообщение
только вот TryStrToInt не работает в Delphi 7))
У вас какой-то неправильный Delphi 7. В моём TryStrToInt прекрасно работает. Да и с чего бы ему не работать?
0
AxBxC=X
 Аватар для harrybook
155 / 135 / 58
Регистрация: 27.04.2016
Сообщений: 549
18.06.2022, 20:10
TryStrToInt - "семёрочная" функция. Чтобы её использовать, в разделе uses вашего модуля должен быть SysUtils
0
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
18.06.2022, 20:31
Цитата Сообщение от Eirstrean Посмотреть сообщение
Все хорошо, только вот TryStrToInt не работает в Delphi 7))
См. мой код, там даже указан нужный модуль в uses, чтобы этого вопроса не возникло. Но вы всё равно умудрились его задать.
0
0 / 0 / 0
Регистрация: 17.03.2019
Сообщений: 131
19.06.2022, 05:10  [ТС]
SysUtils в uses я посмотрел изначально и не добавлял, так как от там был. Может быть проблема и моей делфи, попробую еще раз, посмотрю. Спасибо всем за ответы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2022, 05:10
Помогаю со студенческими работами здесь

склонение Ф.И.О
помогите пожалуйста, нужен код склонения Ф.И.О, у меня скоро дипломка, препод ваще ниче не знает, и еще можно просто код чтобы например...

Склонение слова
Напишите программу, которая принимает на вход слово и, если оно существительное, изменяет его по падежам и числам. Иначе – выводит...

склонение слова
нужно написать программу которая при вводе чисел от 1 до 999(денежные единицы), дописывала слово "рубль", "рублей",...

Склонение слова
Доброго времени суток! Задача такая: 11. Дано натуральное число n (n < 100), определяющее возраст человека (в годах). Дать для этого числа...

Склонение слова в таймере
Здравствуйте Есть форма обратной связи (php) после отправки письма использую js редирект c визуальным таймером обратного отсчета ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru