Я хотел бы выбираемый элемент управления "метка", как тот в снимке экрана. Это могло быть сделано с безграничным TEdit, но я задавался вопросом, существует ли иначе, который работал бы с фоном градиента?
пример http://usera.ImageCave.com/brk303/SelectableLabel.png.jpg
Для разъяснения я использую простой PageControl, который начиная с Победы XP имеет рисунок градиента, безграничный TEdit, помещенный на странице, не гармонирует отлично:
Редактирование на PageControl http://usera.ImageCave.com/brk303/Gradient.png.jpg
Обновление:
Мне удалось получить половину пути там путем добавления
procedure CNCtlColorStatic(var AMsg: TWMCtlColorStatic); message CN_CTLCOLORSTATIC;
procedure TTransparentEdit.CNCtlColorStatic(var AMsg: TWMCtlColorStatic);
begin
with ThemeServices do
if ThemesEnabled then
begin
SetBkMode(AMsg.ChildDC, Windows.TRANSPARENT);
DrawParentBackground(Handle, AMsg.ChildDC, nil, False);
AMsg.Result := GetStockObject(NULL_BRUSH);
end
else
inherited;
end;
Это теперь прозрачно, но что-то еще должно быть сделано, поскольку рисование, когда текст выбран, не работает правильно. Поведение трудно объяснить, я займусь расследованиями далее и обновлю здесь...