функции С и C++, библиотек C++Builder, API Windows________________901

Функции getenv и putenv позволяют работать с переменными окружения. Пе-
ременные окружения представляют собой строки таблицы параметров окружения
в виде name=string\0. Функция getenv ищет или удаляет указанную переменную
окружения name. Если в функции getenv задать имя переменной окружения, она
вернет указатель на строку, содержащую значение этой переменной. Например,
оператор

Labell->Caption = getenv("PATH");

отображает в метке Label 1 содержание строки переменной PATH.

Имена переменных DOS и OS/2 должны записываться в верхнем регистре. Оста-
льные переменные могут записываться как в верхнем, так и в нижнем регистрах.

Если переменная окружения с этим именем отсутствует, то возвращается
NULL. Если в функции getenv задать параметр name в виде getenv <iname=», то
переменная name будет удалена из окружения. Например, оператор

getenv("РАТН=") ;

очистит переменную PATH.

Функция putenv устанавливает переменную окружения. Параметр name зада-
ется в виде «name=string». Например:

putenv("РАТН=с:\\temp") ;

Функции ShortCut, ShortCutToText и TextToShortCut используются для за-
дания свойства ShortCut раздела меню, определяющего соответствующую этому
разделу комбинацию «горячих» клавиш. Функция ShortCut создает из параметра
Key, определяющего виртуальный код клавиши, и параметра Shift, задающего
комбинацию вспомогательных клавиш типа Shift, Ctrl и Alt структуру типа TShort-
Cut (см. в главе 15). Функция TextToShortCut создает аналогичную структуру из
строки текста. Функция ShortCut выполняется быстрее, но зато функцию Text-
ToShortCut удобнее использовать в диалоге, когда комбинацию «горячих» кла-
виш задает пользователь с помощью окна редактирования.

Функция ShortCutToText позволяет получить текстовое описание структуры
ShortCut типа TShortCut. Эту функцию удобно использовать для вывода пользова-
телю принятой в разделе меню комбинации «горячих» клавиш, если ему предо-
ставляется возможность изменять эту комбинацию.

Рассмотрим примеры использования этих трех функций. Оператор

MOpen->ShortCut = Shortcut('О', TShiftState() « ssCtrl) ;

задает разделу меню с именем МОреп «горячие» клавиши Ctrl-0. Оператор

MOpen->ShortCut = ShortCut (''О', TShiftState () <<ssCtrl«ssAlt) ;

задает тому же разделу комбинацию Ctrl-Alt-0.

Еще один пример. Приведенные ниже процедуры обеспечивают задание поль-
зователем комбинации «горячих» клавиш для раздела меню, названного в про-
грамме Open. Первая процедура с помощью ShortCutToText задает начальное зна-
чение текста в окне редактирования, равное исходной комбинации клавиш. А вто-
рая — с помощью функции TextToShortCut изменяет комбинацию на заданную
пользователем. Пользователь может задать, например, комбинацию Ctrl-0 или как
«^О», или как «Ctrl+O».

void _fastcall TFormI::ButtonlClick(TObject *Sender)
{

Editl->Text = ShortCutToText (MOpen->ShortCut);

}

//———————————————————————

void _fastcall TFormI::Button2Click(TObject *Sender)
{

MOpen->ShortCut = TextToShortCut(Editl->Text);