Вопрос: При попытке присвоить значение свойству "selected" ListBox'а вырабатывается exception "Index is out of bounds". В чем тут дело и как присвоить значение свойству selected? Ответ: Свойство "selected" компонента ТListBox может быть использованно только если свойство MultiSelect установленно в True. Если Вы работаете с ListBox'ом у которого MultiSelect=false то используйте свойство ItemIndex.
Вопрос: Как отправить сообщение сразу всем элементам управления формы? Ответ:
Можно использовать Screen.Forms[i].BroadCast(msg);
где [i] – индекс той формы, которой Вы хотите переслать сообщение. BroadCast
работает со всеми компонентами, потомками TWinControls и отправляет сообщение
всем дочерним компонентам из массива Controls. Если один из дочерних компонентов
обрабатывает это сообщение и устанавливает Msg.Result в ненулевое значение -
дальнейшая рассылка сообщения останавливается.
Вопрос: Как добится того чтобы TMemo и TEdit имели работали не только в режиме вставки символов, но и в режиме замены? Ответ:
Элементы управления Windows
TEdit и TMemo не имеют режима замены. Однако этот режим можно эмулировать установив
свойство SelLength edit’а или memo в 1 при обработке события KeyPress. Это заставит
его перезаписывать символ в текущей позиции курсора. В примере этот способ используется
для TMemo. Режим вставка/замена переключается клавишей “Insert”. More »
Вопрос: Я хочу создать в своей программе меню "а-ля Дельфи 4". Как это сделать? Ответ: 1. Разместите на форме TControlBar. (закладка Additional) Установите Align = Client. 2. Разместите TToolBar (закладка Win32) внутри TControlBar. 3. Установите в True свойства Flat и ShowCaptions этого TToolBar. 4. Создайте на TToolBar столько TToolButtons сколько Вам нужно. (щелкнув по TToolBar правой кнопкой и выбрав NewButton) 5. Установите свойство Grouped = True для всех TToolButtons. Это позволит меню выпадать при перемещении курсора между главными пунктами меню (если меню уже показано). 6. Разместите на фоме TMainMenu и убедитесь, что оно *НЕ присоденено* как меню главной формы. (посмотрите свойство Menu формы). 7. Создайте все пункты меню (щелкнув по TMainMenu кнопкой и выбрав Menu Designer) 8. Для каждой TToolButton установите ее MenuItem равным соответсвующему пункту TMainMenu.
Вопрос: Как узнать размеры TComboBox с показанным выпадающим списком до показа списка? Ответ:
На событии FormShow пошлите
сообщение CB_SHOWDROPDOWN в ComboBox дважды – один раз чтобы заставить список
выпасть, второй – чтобы убрать его. Затем пошлите сообщение CB_GETDROPPEDCONTROLRECT,
передав в качестве параметра адрес TRect. TRect будет содержать экранные кординаты
прямоугольника описывающего ComboBox вместе с выпавшим списком. Затем Вы можете
вызвать ScreenToClient чтобы преобразовать экранные кординаты в координаты клиентской
области окна. More »
Вопрос: Как изменить оконную процедуру для TForm? Ответ:
Переопределите в подклассе
TForm оконную процедуру WinProc класса. В примере оконная процедура переопределяется
для того чтобы реагировать на сообщение WM_CANCELMODE, показывающее, что выполняется
messagebox или какой-либо еще диалог. More »
Вопрос: Где в Delphi обьявленны VK_Key для A-Z и 0-9? Ответ: Они не обьявлены в Delphi поскольку они просто могуть быть заменены буквами. VK_0 до VK_9 то же что и ASCII '0' до '9' ($30 - $39), VK_A до VK_Z то же что и ASCII 'A' до 'Z' ($41 - $5A).
Вопрос:
Как заставить Delphi выполнять еще более строгую проверка типов? Напрмер – я создаю пользовательский тип, унаследованный от double и могу передавать его любым функциям, принимающим параметр типа double.
Как заставить компилятор проводить более строгую проверку типов и выдавать предупреждение
в таких случаях?
Ответ: См. ответ. More »
Вопрос: Как получить строку сообщения об ошибке Windows код которой получен функцией GetLastError? Ответ: Функция RTL SysErrorMessage(GetLastError). Пример:
Вопрос:
Мне нужно программно установить некоторые файлы с установочного диска Windows. На многих компьютерах CAB-файлы установки Windows находятся в каком-то каталоге на жестком диске, на других – Windows был установлен с CD. Как узнать откуда была установленна Windows?
Ответ: Эту информацию можно получить из реестра. More »