Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Вниз

Утечка 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.035 c
3-1086861049
GanibalLector
2004-06-10 13:50
2004.07.11
IBDataSet


14-1087584156
Yegorchic
2004-06-18 22:42
2004.07.11
HTML. Меню...


1-1088535721
Reviewreal
2004-06-29 23:02
2004.07.11
перевод из RTF в HTML


3-1086943167
Digitman
2004-06-11 12:39
2004.07.11
Ошибка при исполнении MSSQL-скрипта..


4-1085668419
Aleksandr.
2004-05-27 18:33
2004.07.11
Какое сообщение получает окно, когда его активируют через панель?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский