Сборник часто задаваемых вопросов по программированию в среде Borland C++ Builder





Сборник часто задаваемых вопросов по программированию в среде Borland C++ Builder


    Сборник часто задаваемых вопросов
    Версия 1.01 (20 февраля 2003 года) Изменения: Исправлен ответ на вопрос про доступ к родительским контролам Данный сборник часто задаваемых вопросов с ответами подготовлен на основе материалов сам...
Вопрос: Как узнать каталог, где находится запускаемая программа?
Вопрос: Как узнать каталог, где находится запускаемая программа? Ответ : ExtractFilePath(Application->ExeName);...Вопрос: Как преобразовать строку в wchar_t*?
Вопрос: Как преобразовать строку в wchar_t*? Ответ : а) wchar_t nameSrv[MAX_PATH]; Edit1->Text.WideChar(nameSrv, MAX_PATH); б) В VCL есть функция StringToWideChar(...)...Вопрос: Как произвести принудительный скроллинг в TRichEdit?
Вопрос: Как произвести принудительный скроллинг в TRichEdit? Ответ : Пошлите этому объекту сообщение такого типа SendMessage(RichEdit1->Handle, WM_VSCROLL, MAKEWORD(SB_LINEDOWN, 0), 0 );...Вопрос: Как, зная путь к файлу (например через OpenDialog), найти имя этого файла?
Вопрос: Как, зная путь к файлу (например через OpenDialog), найти имя этого файла? Ответ : String ExtractFileName(const AnsiString FileName);...Вопрос: Как убрать иконку из верхнего левого угла программы?
Вопрос: Как убрать иконку из верхнего левого угла программы? Ответ : Закомментируйте в файле проекта строчку: USERES("Project1.res");...Вопрос: Нужно задержать выполнение...
Вопрос: Нужно задержать выполнение ф-ии на интервал, меньше секунды.Как мне можно это сделать? Ф-ии Delay(), которая это прекрасно делает в BCB 5.0 отсутствует, а Sleep не устроит. Ответ : code: -...Вопрос:Как програмно сымитировать нажатие клавиш CTRL+V ?
Вопрос:Как програмно сымитировать нажатие клавиш CTRL+V ? Ответ : code: -------------------------------------------------------------------------------- BYTE keys[256]; GetKeyboardState(keys); key...Вопрос: Как написать обработчик...
Вопрос: Как написать обработчик события? Создал класс, производный от TTabSheet в этот класс включил объект FMemo класса TMemo. В ходе программы объекты этого производного класса создаются и уничт...Вопрос: Как во время выполнения создать Items в PopupMenu?
Вопрос: Как во время выполнения создать Items в PopupMenu? Ответ : code: -------------------------------------------------------------------------------- TPopupMenu* pum; //Создаем новый пункт TMe...Вопрос: Как узнать сколько на...
Вопрос: Как узнать сколько на данный момент созданно форм? Есть приложение – одна форма main и много других, создаваемых при вызове пунктов меню. Как узнать сколько на данный момент созданно форм?...Вопрос: Как копировать файл в C++ Builder?
Вопрос: Как копировать файл в C++ Builder? Ответ : Есть WinApi-функция: CopyFile("c:\\config.sys", "c:\\windows\\config.new", false); Здесь копируется файл и меняется имя, если третий параметр - f...Вопрос: Как получить список всех процессов?
Вопрос: Как получить список всех процессов? Ответ : Примерно так: code: -------------------------------------------------------------------------------- HANDLE hSnap = CreateToolhelp32Snapshot(TH3...Вопрос: Как определить версию программы?
Вопрос: Как определить версию программы? Ответ : code: -------------------------------------------------------------------------------- const char* szAppName = "MyApp.exe"; char szVerBuff[255]; ch...Вопрос: Как заставить иконку в таскбаре мигать?
Вопрос: Как заставить иконку в таскбаре мигать? Ответ : Функция FlashWindow заставляет мигнуть окно один раз. code: --------------------------------------------------------------------------------...Вопрос: Как перетащить файл на мою форму?
Вопрос: Как перетащить файл на мою форму? Ответ : В хедере формы в private пишем: code: -------------------------------------------------------------------------------- void __fastcall WmDropFiles...Вопрос: Как узнать Ascii код нажатой кнопки?
Вопрос: Как узнать Ascii код нажатой кнопки? Ответ : code: -------------------------------------------------------------------------------- void key(unsigned char scn, unsigned char asc) { union {...Вопрос: Как создать в ListBox горизонтальную прокрутку, если ее не оказалось после заполнения ListBox?
Вопрос: Как создать в ListBox горизонтальную прокрутку, если ее не оказалось после заполнения ListBox? Ответ : code: -------------------------------------------------------------------------------...Вопрос: Как определить родительскую форму известного TControl (TEdit,TButton и т.п.)?
Вопрос: Как определить родительскую форму известного TControl (TEdit,TButton и т.п.)? Ответ : code: -------------------------------------------------------------------------------- TMyForm* __fast...Вопрос: Как выловить нажатие Shift при запуске программы?
Вопрос: Как выловить нажатие Shift при запуске программы? Ответ : Используйте GetKeyState() из Win32API; В OnCreate формы пишешь: code: ------------------------------------------------------------...Вопрос: Как запустить только один экземпляр приложения? Если оно уже запущено, то активизировать его?
Вопрос: Как запустить только один экземпляр приложения? Если оно уже запущено, то активизировать его? Ответ : code: --------------------------------------------------------------------------------...Вопрос: Как перерисовать окно приложения, которое делает некоторый расчет, используя цикл?
Вопрос: Как перерисовать окно приложения, которое делает некоторый расчет, используя цикл? Ответ : В тело цикла нужно добавить: Application->ProcessMessages();...Вопрос: Как копировать файлы?
Вопрос: Как копировать файлы? Ответ : code: -------------------------------------------------------------------------------- BOOL CopyFile( LPCTSTR lpExistingFileName, // указатель на имя существу...Вопрос: Как узнать версию Windows?
Вопрос: Как узнать версию Windows? Ответ : Нужно использовать следующие функции из MS SDK int GetWindowsMajorVersion(void): int GetWindowsMinorVersion(void);...Вопрос: Как из середины бинарного файла удалить определённое количество байт?
Вопрос: Как из середины бинарного файла удалить определённое количество байт? Ответ : 1. исходный файл переименовываешь на какой-то временный 2. открываешь новый файл с именем файла оригинала 3. с...Вопрос: Как получить все иконки которые есть в exe-файле?
Вопрос: Как получить все иконки которые есть в exe-файле? Ответ : code: -------------------------------------------------------------------------------- typedef HICON* phIcon; void __fastcall TFor...Вопрос: При моем запущенном приложении...
Вопрос: При моем запущенном приложении работа Windows завершиться не может, что делать? Подробнее: Написал прогу для обмена сообщениями по локальной сети с помощью компонентов NMMsg и NMMSGServ. П...Вопрос: Существует ли функция вывода укороченного пути к файлу?
Вопрос: Существует ли функция вывода укороченного пути к файлу? Ответ : Есть две функции получения короткого имени. PathCompactPath - для того чтобы текст влез в определённую ширину в пикселах. Pa...Вопрос: Как добавить пункт к системному меню, находящемуся рядом с названием окна?
Вопрос: Как добавить пункт к системному меню, находящемуся рядом с названием окна? Ответ : Примерно так code: -------------------------------------------------------------------------------- //h-f...Вопрос: Нужно отсортировать имена файлов в FileListBox, как это сделать(по имени и расширению)?
Вопрос: Нужно отсортировать имена файлов в FileListBox, как это сделать(по имени и расширению)? Ответ : code: -------------------------------------------------------------------------------- // жм...Вопрос: Нужно создавать формы...
Вопрос: Нужно создавать формы во время выполнения программы. Количество форм заранее не известно. На каждой форме нужно только рисовать. Цель - получить окошки с рисунками. Как сделать? Ответ : Пр...Вопрос: Как в реестр заносить данные в HEX виде?
Вопрос: Как в реестр заносить данные в HEX виде? Ответ : В Help'е перечислены методы компонента TRegistry, выберите нужный вам метод. Только может быть не соответствие тому что написано в Help'е с...Вопрос: Как узнать размер свободного места на сетевом диске, если путь к файлу указан как сетевой \\comp\folder\?
Вопрос: Как узнать размер свободного места на сетевом диске, если путь к файлу указан как сетевой \\comp\folder\? Ответ : На основе примера из SDK узнать количество свободного места на диске можно...Вопрос: Как организовать общую функцию для реагирования на события нескольких компонент?
Вопрос: Как организовать общую функцию для реагирования на события нескольких компонент? Ответ : Примерная реализация: code: -----------------------------------------------------------------------...Вопрос: Как на повернуть на 90...
Вопрос: Как на повернуть на 90 градусов шрифт на компоненте (например TPanel или TLabel), чтоб он отображался не справа налево, а сверху вниз? Ответ : Для этого придется самому писать такой компон...Вопрос: Как сделать Drag&Drop файлов с винта в мой ListBox?
Вопрос: Как сделать DragDrop файлов с винта в мой ListBox? Ответ : Вся эта конструкция работает без проблем code: -------------------------------------------------------------------------------- v...Вопрос: Как программно зарегистрировать собственное расширение для файлов в WINDOWS?
Вопрос: Как программно зарегистрировать собственное расширение для файлов в WINDOWS? Ответ : code: -------------------------------------------------------------------------------- TRegistry *Reg;...Вопрос: Как изменить формат печати...
Вопрос: Как изменить формат печати для принтера? Печатаю с помощью TPrinter. Надо изменить формат листа на котором печатает принтер (например с A4 на Letter) без вызова диалога свойств принтера (п...Вопрос: Как организовать подгрузку...
Вопрос: Как организовать подгрузку ресурсов из DLL для разноязычных версий? Как мне записать и считать из DLL свойство Caption компонента TButton(я делаю русскую и анг. версию) и при переключении...Вопрос: Как получать данные, выводящиеся...
Вопрос: Как получать данные, выводящиеся программой, написанной под DOS? У меня в программе происходит запуск досовской программы, которая все свои действия выводит в стандартный поток вывода. Как...Вопрос: Как работать с функцией GetVolumeInformation?
Вопрос: Как работать с функцией GetVolumeInformation? Ответ : Создай пустой проект замени в файлах все на это: Код: Unit1.cpp ========================= //------------------------------------------...Вопрос: Как перетащить окно, созданное winAPI и не имеющее ниодного объекта TControl?
Вопрос: Как перетащить окно, созданное winAPI и не имеющее ниодного объекта TControl? Ответ : Перетаскивать окно с нажатой в нём левой кнопкой мыши можно так: code: -------------------------------...Вопрос: Как сделать ,чтобы мое приложение всегда было в фокусе?
Вопрос: Как сделать ,чтобы мое приложение всегда было в фокусе? Ответ : Можно так: code: -------------------------------------------------------------------------------- void BringToFrontWindow(HW...Вопрос: Как получить список запущенных задач?
Вопрос: Как получить список запущенных задач? Ответ : Получить список запущенных задач: имена их файлов и PID, можно так: code: --------------------------------------------------------------------...Вопрос: Как закрыть чужую прогу...
Вопрос: Как закрыть чужую прогу (Ворд, винамп), зная только её екзешник? Например ворд через FindWindow не закроешь, так-как у него меняеться заголовок окна, а вот если через екзешник, то тогда вс...Вопрос: Как сымитировать нажатие...
Вопрос: Как сымитировать нажатие левой кнопки мыши? Как мне сымитировать нажатие левой кнопки мыши? Чтоб по таймеру каждую секунду нажималась левая кнопка мыши? Ответ : Этот код жмёт. code: ------...Вопрос: Как конвертировать строку из кодировки win в KOI?
Вопрос: Как конвертировать строку из кодировки win в KOI? Ответ : Вот вариант перекодировки из Win в Koi8. code: -------------------------------------------------------------------------------- An...Вопрос: Как заблокировать или...
Вопрос: Как заблокировать или перехватывать системную кнопку закрытия программы? Кнопка Восстановить-Развернуть должна работать! Прога должна закрываться только от нажатия клавиши, ну например Esc...Вопрос: Как убрать иконку у программы?
Вопрос: Как убрать иконку у программы? Ответ : В главном файле проекта, это там где стоит WinMain закоментарьте строчку: USERES("Project1.res"); Иконка у exe-файла совсем не уберётся, вместо неё б...Вопрос: Как для созданного списка файлов и папок получить системные иконки для отображения в списке?
Вопрос: Как для созданного списка файлов и папок получить системные иконки для отображения в списке? Ответ : Для одного файла это делается примерно так: code: -------------------------------------...Вопрос: Как програмно зарегистрировать...
Вопрос: Как програмно зарегистрировать расширение файлов? Хотелось бы чтобы при двойном-клике на файлах, стартовала бы моя прога и в нее загружался этот файл. Ответ : Данный пример регистрирует ра...







Содержаие