Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FocusRect у TListBox, (как убрать?) 
:(
    Опции темы
Alix
Дата 5.5.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 7
Всего: 23



Рисую элементы в TListBox со стилем lbOwnerDrawVariable. Но проклятый прямоугольник выделенного элемента (ну такой, черточками smile ) все-равно рисуется, зараза... Как сделать, чтобы он не рисовался?


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
drinkOut
Дата 5.5.2005, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 10.2.2005
Где: мой стакан?

Репутация: нет
Всего: нет



А если перед текстом нарисовать сплошной прямоугольник, чтобы он FocusRect замалевал? smile
Я просто сейчас не могу проверить свою гениальную идею... smile
--------------------
Жизнь жестока - когда у меня на руках все карты, она начинает играть в шахматы...www.certifications.ru - проверь себя
PM MAIL ICQ   Вверх
Yanis
Дата 5.5.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Нет


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
ДЫМ
Дата 6.5.2005, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: 8
Всего: 8



Код

unit NewListBox;

interface

uses
 SysUtils, Classes, Controls, StdCtrls, Messages, Windows, Graphics;

type
 TNewListBox = class(TListBox)
 private
   FDrawFocusRect: Boolean;
   procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;
   procedure SetDrawFocusRect(const Value: Boolean);
 public
   constructor Create(AOwner: TComponent); override;
 published
   property DrawFocusRect: Boolean read FDrawFocusRect write SetDrawFocusRect default False;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('MSX Controls', [TNewListBox]);
end;

constructor TNewListBox.Create(AOwner: TComponent);
begin
 inherited;

end;

procedure TNewListBox.CNDrawItem(var Message: TWMDrawItem);
var
 State: TOwnerDrawState;
begin
 with Message.DrawItemStruct^ do
 begin
   State := TOwnerDrawState(LongRec(itemState).Lo);
   Canvas.Handle := hDC;
   Canvas.Font := Font;
   Canvas.Brush := Brush;
   if (Integer(itemID) >= 0) and (odSelected in State) then
   begin
     Canvas.Brush.Color := clHighlight;
     Canvas.Font.Color := clHighlightText
   end;
   if Integer(itemID) >= 0 then
     DrawItem(itemID, rcItem, State) else
     Canvas.FillRect(rcItem);
   if (odFocused in State) and FDrawFocusRect then Windows.DrawFocusRect(hDC, rcItem);
   Canvas.Handle := 0;
 end;
end;

procedure TNewListBox.SetDrawFocusRect(const Value: Boolean);
begin
 if FDrawFocusRect <> Value then
 begin
   FDrawFocusRect := Value;
   Invalidate;
 end;
end;

end.
   

PM MAIL WWW   Вверх
Alix
Дата 6.5.2005, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 7
Всего: 23



2drinkOut не.. это было бы слишком просто... smile
2ДЫМ Во! Я так и знал, что нужно новый класс писать... Только не имея опыта в данном деле не мог smile Спасибо за совет! Все работает!..



--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0615 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.