Как имитировать выделение / отмену выделения текста на холсте в Delphi?

#delphi #canvas #selection #delphi-7

#delphi #холст #выделение #delphi-7

Вопрос:

Я хочу имитировать на холсте выделение / отмену выделения текста (например, в TEdit) в Delphi 7. Я использую fillRect для изменения цвета фона и TextOut для рисования текста. Но мне нужно знать 4 значения цвета для:

  • невыбранный текст;

  • выделенный текст;

  • фон невыбранного текста;

  • фон выделенного текста.

Эти значения меняются, когда пользователь меняет тему Windows или редактирует внешний вид окон. Для классической темы в Windows XP значения: clBlack, clWhite, clWhite, clNavy. Может быть, для этого в Delphi есть константы cl * или, может быть, мне нужно использовать функции Api для их получения. Кто-нибудь знает, как …? Спасибо.

Комментарии:

1. Возможно, вам лучше использовать API темы для рисования текста.

2. @David Heffernan Я тоже попробую, спасибо.

Ответ №1:

Невыбранный:

 clWindow
clWindowText
  

Выделенный:

 clHighlight
clHighlightText