Borland C++ VCL FAQ
Страница 5.



Как получить шестнадцатеричное представление числа?

Для перевода числа в шестнадцатеричную систему счисления воспользуйтесь функцией IntToHex() из модуля Sysutils.hpp. Первый параметр функции - исходное число, второй параметр - количество знаков в шестнадцатеричном представлении числа. Функция возвращает строку, представляющую число в шестнадцатеричной системе счисления. Вот код:
int Number = 12;
AnsiString HexNumber = IntToHex(Number, 8);
В HexNumber будет содержаться "0000000С".

Как изменить стиль формы во время выполнения?

Имеются проблемы при изменении стиля формы (значение свойства FormStyle) во время выполнения. А иногда надо поменять стиль формы с fsNormal на fsStayOnTop, например. В таком случае можно воспользоваться следующим кодом:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_SHOWWINDOW);
где Handle - дескриптор той формы, стиль которой надо изменить, а Left, Top, Width, Height - координаты левого верхнего угла, ширина и высота формы, соответственно.
Для изменения стиля формы с fsStayOnTop на fsNormal используйте следующий код:
SetWindowPos(Handle, HWND_NOTOPMOST, Left, Top, Width, Height, SWP_SHOWWINDOW); 


Всплывающие подсказки в ListView при наведении мыши на элемент списка

Поместите на форму компонент TListView (ListView1), установите у него свойство ShowHint в true и напишите обработчик события OnMouseMove следующим образом:
void __fastcall TForm1::ListView1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
TListItem *pListItem = ListView1->GetItemAt(X, Y);
if(pListItem) ListView1->Hint = pListItem->Caption;
}


Всплывающие подсказки в ListBox при наведении мыши на элемент списка

Поместите на форму компонент TListBox (ListBox), установите у него свойство ShowHint в true и напишите обработчик события OnMouseMove следующим образом:
void __fastcall TForm1::ListBox1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{

static int OldIndex = -1;
int Index = ListBox1->ItemAtPos(Point(X, Y), true);

if((Index > -1) && (Index != OldIndex))
{
ListBox1->Hint = ListBox1->Items->Strings[Index];
Application->ActivateHint(Mouse->CursorPos);
}

OldIndex = Index;
}


Преобразование объекта TDateTime в строку

Для преобразования объекта TDateTime в строку воспользуйтесь функцией
extern PACKAGE AnsiString __fastcall DateTimeToStr(System::TDateTime DateTime).
Для ее использования не забудьте подключить Sysutils.hpp.

Как получить аргументы командной строки для приложения?

Чтобы получить аргументы командной строки, с которыми было запущено ваше приложение, можно воспользоваться переменной CmdLine из модуля System.hpp. CmdLine представляет собой указатель на завершающуюся нулем строку, содержащую аргуметы командной строки, указанные в момент запуска приложения.

Проверка буфера обмена на наличие в нем текста

Чтобы проверить буфер обмена на наличие в нем текста, вы должны подключить в свою программу файл Clipbrd.hpp и написать следующий код:
if (Clipboard()->HasFormat(CF_TEXT))
// обработка при наличии текста в буфере обмена
else
// текста в буфере обмена не существует

Метод HasFormat(CF_TEXT) вернет true, если в буфере обмена содержится текстовый фрагмент.


Прокрутка ListBox на одну строку вниз

Чтобы программно прокрутить содержимое списка (TListBox) на одну строку вниз, напишите следующий код:
SendMessage(ListBox1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);
где ListBox1 - имя вашего списка.

Список всех шрифтов, установленных в системе (VCL вариант)

Список всех шрифтов, установленных в системе, содержится в свойстве Fonts глобальной переменной Screen. Нижеприведенный пример показывает заполнение именами шрифтов выпадающего списка:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for (int i = 0; i < Screen->Fonts->Count; i++)
ComboBox1->Items->Add(Screen->Fonts->Strings[i]);
}

Но лучше так:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
ComboBox1->Items->Assign(Screen->Fonts);
}
 
« Предыдущая статья   Следующая статья »