Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

Утечка GDI ресурсов при рисовании по TListView.Canvas   Найти похожие ветки 

 
www.shegeda.by.ru   (2004-06-24 10:08) [0]

Форма:
object Form1: TForm1
 object ListView1: TListView
   Left = 8
   Top = 8
   Width = 250
   Height = 150
   Columns = <
     item
       AutoSize = True
     end>
   Items.Data = {
     500000000300000000000000FFFFFFFFFFFFFFFF000000000000000003313233
     00000000FFFFFFFFFFFFFFFF00000000000000000333343500000000FFFFFFFF
     FFFFFFFF000000000000000003353637}
   ReadOnly = True
   RowSelect = True
   TabOrder = 0
   ViewStyle = vsReport
   OnClick = ListView1Click
   OnCustomDrawItem = ListView1CustomDrawItem
 end
end

Код:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ComCtrls;

type
 TForm1 = class(TForm)
   ListView1: TListView;
   procedure ListView1Click(Sender: TObject);
   procedure ListView1CustomDrawItem(Sender: TCustomListView;
     Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ListView1Click(Sender: TObject);
begin
 ListView1.Invalidate;
end;

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
 Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
 with ListView1.Canvas.Brush do
 begin
   case Item.Index of
     0: Color := clYellow;
     1: Color := clGreen;
     2: Color := clRed;
   end;
 end;
end;

end.

Компилируем, запускаем. Предварительно толкаем "Индикатор сисменых ресурсов" (RSRCMTR.EXE)
Достаточно раз 20 щёлкнуть по ListView, чтобы увидеть значительное уменьшение ресурсов GDI (этот эффект, скорее всего не будет заметен в WindowsNT/2000/XP)
Люди! Подскажите, как этого избежать? Такой чудесный контрол, а я не могу его полноценно использовать из-за этого прикола...


 
www.shegeda.by.ru   (2004-06-24 12:35) [1]

ребятки, давайте подумаем! Я уже полгода мучаюсь, но раньше обходился StringGrid, а теперь припекло...



Страницы: 1 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
14-1087838328
MacroDenS
2004-06-21 21:18
2004.07.11
Матак Пати......


14-1087476394
Рамиль
2004-06-17 16:46
2004.07.11
Software Update Services


1-1088168029
oleg_
2004-06-25 16:53
2004.07.11
А можно ли opendialog превратить в createdialog


4-1085833368
Grinder
2004-05-29 16:22
2004.07.11
Как запретить выключение Windows НЕ используя CloseQuery?


14-1088147192
infom
2004-06-25 11:06
2004.07.11
Как вам это ?