Вопрос: Можно ли рисовать на рамке формы? Ответ: Обрабатывайте событие WM_NCPAINT. В примере рамка обводится красной линией толщиной в 1 пиксел. Прочитать остальную часть записи »
Вопрос: Как опеделить состояние списка ComboBox, выпал/скрыт? Ответ: Пошлите ComboBox сообщение CB_GETDROPPEDSTATE. Пример: if SendMessage(ComboBox1.Handle, CB_GETDROPPEDSTATE,0,0) = 1 the begin {список ComboBox выпал} end;
При использовании BitBtn Caption(текст) и картинка(bitmap) из файла не видны
Вопрос: При использовании BitBtn Caption(текст) и картинка(bitmap) из файла не видны одновременно. Почему? Ответ:
Это может происходить
если картинка слишком велика. Класс TBitBtn сначала рисует картинку, а затем
выводит текст над, под, слева или справа от картинки (в завивимости от свойства
Layout). Если размер картинки такой же как у всей кнопки для вывода текста просто
не остается места. Если Вам нужно получить кнопку такого же размера как Ваша
картинка и видеть при этом надпись на кнопке Вам придется выводить текст надписи
непосредственно на канву картинки. Прочитать остальную часть записи »
Как скрыть форму при старте приложения?
К сожалению при создании окна приложения ни в одном из первых событий (OnCreate,
OnShow, OnActivate) нет доступа к свойству Visible. Использование функции
ShowWindow с параметром SW_HIDE в OnActivate-событии решает проблему (но
при этом не избежать кратковременного мерцания окна перед “исчезновением”):
procedure TForm1.OnActivate(Sender: TObject); begin ShowWindow(Handle, SW_HIDE); end;
чтобы сделать окно опять видимым необходимо вызвать ту же функцию, но уже
с другим параметром:
ShowWindow(Handle, SW_SHOW); Прочитать остальную часть записи »
Как выяснить положение курсора в МЕМО?
Необходимо вызвать дважды API-функцию “SendMessage”:
var xChr, xRow, xCol: LongInt; ... xRow := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0); xChr := SendMessage(Memo1.Handle, EM_LINEINDEX, Zeile, 0); xCol := Memo1.SelStart - xChr + 1;