Страница 5 из 13
Как получить шестнадцатеричное представление числа?Для перевода числа в шестнадцатеричную систему счисления воспользуйтесь функцией 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); }
|