Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Текстовые константы , новый пользовательский файл Text.h






Текстовые строки Си++ записываются в виде последовательности символов, заключенных в кавычки. Это так называемые текстовые константы, которые удобно описывать с помощью ключевого слова const и выносить в отдельный заголовочный файл.

Ведь если понадобится перевести программу на другой язык, то тогда не надо будет искать в каждом файле текстовые константы и переводить их, стирая старое значение. Достаточно подготовить несколько заголовочных файлов и просто менять их по мере необходимости.В С++Builder есть гибкие возможности, позволяющие выполнять включение различных фалов и даже компиляцию отдельных частей кода в зависимости от некоторых условий — это так называемаяусловная компиляция.

Выделение текстовых констант в отдельный файл делается так.

1. Выполните команду File-> New-> Other.. (Файл-> Создать), в открывшемся диалоговом окне на вкладке New выберите значок Text (см. рис.7) и щелкните на кнопке ОК. В Редакторе откроется новый файл File1.txt.

Рис. 6. Создание файла текстовых констант

 

2. Сохраните этот файл в каталоге проекта с помощью команды File-> SaveAs (Файл -> Сохранить как), дав ему имя Text.h (произвольно выбранное название, обозначающее, что в этом файле будут располагаться текстовые константы).

3. Введите первую текстовую константу. При ее определении после ключевого слова const надо явно указать тип этой константы (по умолчанию считается, что тип константы — целое число (int), во всех остальных случаях этот тип требуется указывать:

const AnsiString LAST_DICE_STR = " Последнийбросокбыл ";

Пробел в конце текстовой константы вставлен, чтобы слово «был» не сливалось с последующей цифрой.Для того чтобы отличать текстовые константы от числовых, к названиям текстовых констант в конце обычно приписывается суффикс _STR.

4. Включите этот файл командной строкой #include " Text.h" в файл DiceUnit.cpp перед командой включения DiceUnit.h.

Хотя используемые в программе текстовые константы и вынесены в отдельный файл, некоторые строки задаются в C++Builder с помощью Инспектора объектов (например, заголовки окон или всплывающие подсказки). Непосредственно в тексте приложения они не хранятся и заменять их вручную при переходе к другому языку весьма неудобно. Для решения проблемы поддержки нескольких национальных языков на всех уровнях C++Builder в Интернете можно легко найти подходящие бесплатные компоненты.

Текстовую константу LAST_DICE_STR надо сцепить с переведенным в текстовый вид значением переменной LastValue, входящей в состав объекта Dice (такое обращение к LastValue запишется как Dice.LastValue). Однако сама переменная Dice не доступна напрямую в создаваемой программе, так как скрыта в классе TReferee. К ней можно обратиться так:

Referee.DiceТогда полное обращение к LastValue запишется в виде:

Referee.Dice.LastValue

В этом выражении выделение элемента класса происходит два раза и выполняется, согласно правилам Си++, слева направо. Сначала в переменной Referee выделяется переменная Dice класса TDice: Referee.Dice, а затем в переменой Dice выделяется переменная LastValue.

Тогда сцепление текстовой константы LAST_DICE_STR и результата вызова функции! ntToStr() будет выглядеть следующим образом:

LAST_DICE_STR + IntToStr(Referee.Dice.LastValue)

Итоговую строку, полученную выше, необходимо показать на форме через свойство Caption объекта LastDice, который сразу покажет свое содержимое в соответствующем поле окна программы. Это свойство доступно через указатель

LastDice-> Caption = LAST_DICE + IntToStr(Referee.Dice.LastValue); // Эту строку впишите в код метода ShowInfo():

 

void TForm1:: ShowInfo()

{//здесь будет располагаться текст метода, с использованием текстовых констант из нового

// файла Text.h

 

LastDice-> Caption = LAST_DICE_STR + IntToStr(Referee.Dice.LastValue);

 

}

Теперь надо описать еще четыре текстовые константыв текстовом файле и вписать код в метод

const AnsiString HUMAN_CURRENT_STR = " Вовремяходачеловекапоканабрано ";

con st AnsiString HUMAN_ALL_STR = " Всегочеловекнабрал ";

const AnsiString COMPUTER_CURRENT_STR = " Вовремяходакомпьютерапоканабрано ";

const AnsiString COMPUTER_ALL_STR = " Всегокомпьютернабрал ";

 

Их использование в методе ShowInfo() будет выглядеть так:

LastHumanScore-> Caption = HUMAN_CURRENT_STR +IntToStr(Referee-Human.CurrentScores);

HumanScore-> Caption = HUMAN_ALL_STR + IntToStr(Referee.Human.Scores);

LastComputerScore-> Caption = COMPUTER_CURRENT_STR +IntToStr(Referee.Computer.CurrentScores);

ComputerScore-> Caption = COMPUTER_ALL_STR + IntToStr(Referee.Computer.Scores);

 

Метод Showlnfo() будет вызываться в программе довольно часто, так как именно он ответственен за вывод информации пользователю.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.