898 Глава 14

функция	синтаксис / описание	файл
swab	void swab(char *from, char *to, int nbytes)Копирует nbytes байтов строки from в строку to, меняя местами каждую пару смежных байтов	stdlib.h
GetLongHint	extern PACKAGE System::AnsiString GetLongHint( const System::AnsiString Hint)Возвращает вторую часть строки формата, используемого в свойствах компонентов Hint	Controls.hpp
GetShortHint	extern PACKAGE System::AnsiString GetShortHint(const System::AnsiString Hint)Возвращает первую часть строки формата, используемого в свойствах компонентов Hint	Cont-rols.hpp
ShortCut	extern PACKAGE TShortCut ShortCut(Word Key, Classes::TShiftState Shift)Создает структуру, используемую для задания комбинации «горячих» клавиш Key и Shift разделу меню	Menus.hpp
ShortCutTo Text	extern PACKAGE System::AnsiString ShortCutToText(TShortCut ShortCut)Преобразует структуру ShortCut, содержащую комбинацию «горячих» клавиш раздела меню, в строку текста	Menus.hpp
TextToShort Cut	extern PACKAGE TShortCut TextToShortCut( System::AnsiString Text)Создает из строки текста Text структуру, используемую для задания комбинации «горячих» клавиш разделу меню	Menus.hpp

Комментарии

Макросы va_start, va_arg и va_end позволяют создавать функции, в которые
передаются списки аргументов неопределенной длины. Работа с этими макросами
подробно рассмотрена в главе 11 в разделе 11.5.5.

Макросы EXISTINGARRAY, ARRAYSIZE, OPENARRAY обсуждаются в гла-
ве 12 в разделе 12.10.3. Они используются при передаче в функции массивов. Осо-
бо следует обратить внимание на макрос OPENARRAY, создающий временный от-
крытый массив для передачи его в функции, требующие передачу подобного аргу-
мента по значению. Создание временного открытого массива (до 19 элементов раз-
личных типов) непосредственно в вызове функции, конечно, удобнее, чем специа-
льная организация массива типа TVarRec в памяти.

Например, метод FindNearest поиска записи в базе данных (см. главу 9 раз-
дел 9.11.6) определен как

bool   fastcall FindNearest(const System::TVarRec * KeyValues,
const int KeyValues_Size) ;

и требует передачи в него открытого массива KeyValues ключей полей различного
типа (для этого используется тип TVarRec) и значения последнего индекса масси-
ва KeyValues_Size, на единицу меньшего его размера. Оба эти параметра могут
быть заменены одним макросом OPENARRAY:

Tablel->FindNearest(

OPENARRAY(TVarRec,(Editl->Text,Edit2->Text,Edit3->Text)));