Вопрос: Как запретить изменение размера моего компонента в design-time? Ответ: Поместите в конструктор компонента код, устанавливающий размеры по умолчанию. Переопределите метод SetBounds и проверяйте в нем "componentstate". Если компонет находится режиме "design-time" (csDesigning in ComponentState) просто передавайте значения ширины и высоты (width и heights) компонента по умолчанию (в нашем примере 50) методу класса-предка Прочитать остальную часть записи »
Вопрос: Можно ли как-то уменьшить мерцание при перерисовке компонента? Ответ: Если добавить флаг csOpaque (непрозрачный) к свойству ControlStyle компонента - то фон компонента перерисовываться не будет. Пример: constructor TMyControl.Create; begin inherited; ControlStyle := ControlStyle + [csOpaque]; end;
Вопрос: Как сделать клавишу-акселератор (keyboard shortcut) компонету у которого нет заголовка? Ответ:
Возможный вариант – присвоить
ссылку на этот компонент свойству FocusControl TLabel’а. В примере используется
невидимый Label для создания “быстрой” клавиши (Alt+M) компонента Memo. Чтобы
использовать пример, разместите на форме компонет TMemo, Label и несколько других
компонентов, которые могут принимать фокус ввода. Запустите программу, перевидите
фокус ввода куда-нибудь вне Memo и нажмите Alt+M – фокус ввода вернется в Memo. Прочитать остальную часть записи »
Вопрос: Как программно заставить выпасть меню? Ответ:
В примере показано как
показать меню и выбрать в нем какой-то пункт, эмулируя нажатие “быстрой кдавиши”
пункта меню. Если у Вашего пункта меню нет “быстрой клавиши” Вы можете посылать
комбинации VK_MENU, VK_LEFT, VK_DOWN, и VK_RETURN, чтобы программно “путешествовать”
по меню. Прочитать остальную часть записи »
Вопрос: Как обновить список дисков компонента TDriveComboBox, учитывая, что могуд быть подключены/отключены сетевые диски и произведена "горячая замена" plug&play дисков? Ответ: Следующий пример вызывает защищенный (protected) метод класса TDriveComboBox BuildList() для регеирации списка дисков. (использовая так наз. "class cracer") Прочитать остальную часть записи »