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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TListView работа с иконками 
V
    Опции темы
Ak47black
  Дата 19.1.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

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



Здравствуйте.
Подскажите пожалуйста как тут можно исправить.
Хочу в real-time менять размер иконок. Но при смене у меня выходит, какбы одна лежит на другой. 
Как сделать правильно?
Сделал тестовый код, который чётко показывает проблему

Код

unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  Rect: TRect;
begin
  Rect:= Item.DisplayRect(drIcon);
  case Item.Index of
    0: ListView1.Canvas.Brush.Color:= clBlack;
    1: ListView1.Canvas.Brush.Color:= clRed;
    2: ListView1.Canvas.Brush.Color:= clLime;
  end;
  ListView1.Canvas.FillRect(Rect);
  DefaultDraw:= False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ImgList: TImageList;
begin
  ImgList:= TImageList.Create(Self);
  with ImgList do
  begin
    Width:= 60;
    Height:= 60;
  end;
  ListView1.LargeImages:= ImgList;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  ImgList: TImageList;
begin
  ImgList:= TImageList.Create(Self);
  with ImgList do
  begin
    Width:= 200;
    Height:= 200;
  end;
  ListView1.LargeImages:= ImgList;
end;

end.



Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  ListViewGap.rar 1,73 Kb
PM MAIL   Вверх
ivan219
  Дата 19.1.2008, 18:06 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



Гдето так:
Код

.
.
var
  Form1: TForm1;
  Flag: Boolean;

.
.
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  Rect: TRect;
begin
.
.
       end;
  end;
  if Flag then OffsetRect(Rect, ListView1.LargeImages.Width * Item.Index, 0);
  ListView1.Canvas.FillRect(Rect);
  DefaultDraw:= False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ImgList: TImageList;
begin
  Flag := True;
.
.
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  ImgList: TImageList;
begin
  Flag := True;
.
.
end;

end.


Это сообщение отредактировал(а) ivan219 - 19.1.2008, 18:08
PM MAIL ICQ   Вверх
Ak47black
Дата 19.1.2008, 18:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

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



Не этото неособо хороший вариант.
PM MAIL   Вверх
ivan219
  Дата 19.1.2008, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



Цитата(Ak47black @  19.1.2008,  18:22 Найти цитируемый пост)
Не этото неособо хороший вариант.

Интересно почему???

И какже выглядит интересный вареант???
PM MAIL ICQ   Вверх
Ak47black
Дата 20.1.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

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



Код

  TListView.ViewStyle:= vsSmallIcon;
  TListView.ViewStyle:= vsIcon;

Вот так интересный выглядит.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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