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

Вниз

ListView   Найти похожие ветки 

 
Dzmitry   (2003-02-15 20:22) [0]

повторю вопрос - как вставить в ListView ProgressBar, что было нечто подобное, как ReGet... или хотя бы идея как подступиться к подобному, хотя просто рисование - это не то...


 
dzmitry   (2003-02-16 12:05) [1]

так никто и не ответил...
неужели никто не знает как вставить изображение в SubItems?


 
Asker   (2003-02-17 01:24) [2]

создать наследника с перекрытым paint


 
MBo   (2003-02-17 06:16) [3]

у ListView куча событий CustomDrawXXX
И никакого наследника не нужно.
Можно и TGauge в него засунуть.


 
dzmitry   (2003-02-18 08:44) [4]

ладно, я уже как-то выкрутился, хотя это и не правильно, но при изменении ширины колонок не вызывается событий...
(vsReport). а тут как быть?


 
MBo   (2003-02-18 08:45) [5]

ловить WM_notify с hdn_*** у родителя ListView


 
MBo   (2003-02-18 08:54) [6]

кстати, это необязательно, если по CustomDraw делаешь - там же известен прямоуг. вывода


 
Yuri-7   (2003-02-18 10:53) [7]

Попробуй проще - заполняй символами ||||||||||. Можно цветными


 
CAHbKA   (2003-02-18 11:20) [8]

ProgressBar1->Parent = StatusBar;
кажется так


 
Игорь Шевченко   (2003-02-18 11:25) [9]

Пример:
unit main;

interface

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

type
TThreadData = class
Thread : Integer; { временно }
Gauge : TGauge;
Progress : Integer;
end;

TfMain = class(TForm)
ListView: TListView;
Button: TButton;
procedure ListViewCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
procedure ButtonClick(Sender: TObject);
private
FNextThread : Integer;
procedure AddThread (ThreadID : Integer);
function GetSubItemRect (AListView : TListView; AListItem : TListItem; SubItemIndex : Integer) : TRect;
public
{ Public declarations }
end;

var
fMain: TfMain;

implementation

{$R *.DFM}

procedure TfMain.ListViewCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Assigned(Item.Data) then
with TThreadData(Item.Data) do begin
Gauge.Progress := Progress;
// Gauge.Refresh();
end;
DefaultDraw := true;
end;

procedure TfMain.AddThread(ThreadID: Integer);
var
LI : TListItem;
ThreadData : TThreadData;
ARect : TRect;
begin
Inc(FNextThread);
LI := ListView.Items.Add();
LI.Caption := IntToStr(FNextThread);
ARect := GetSubItemRect(ListView, LI, 1);
ThreadData := TThreadData.Create();
ThreadData.Thread := FNextThread;
ThreadData.Progress := Random(100);
ThreadData.Gauge := TGauge.Create(Self);
with ThreadData.Gauge do begin
Parent := ListView;
ParentFont := false;
Left := ARect.Left;
Top := Succ(ARect.Top);
Width := ListView.Columns[1].Width;
Height := ARect.Bottom - ARect.Top - 1;
MaxValue := 100;
ForeColor := clNavy;
Visible := true;
end;
LI.Data := ThreadData;
end;

procedure TfMain.ButtonClick(Sender: TObject);
begin
AddThread(0);
end;

function TfMain.GetSubItemRect(AListView : TListView; AListItem : TListItem;
SubItemIndex: Integer): TRect;
var
I : Integer;
begin
Result := AListItem.DisplayRect(drBounds);
for I:=0 to Pred(SubItemIndex) do
Inc(Result.Left, ALIstView.Columns[I].Width);
end;

end.


 
dzmitry   (2003-02-21 11:24) [10]

что ж, код просмотрел, я практически так уже сделал, только с учётом, скроллинга (а здесь он не работает)...
а отлов изменения ширины колонок всё равно отсутствует...



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

Форум: "Основная";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.047 c
14-5719
MsGuns
2003-02-07 11:36
2003.03.03
Еще о музыке


7-5896
s.ts
2002-07-04 20:47
2003.03.03
Изменение/добавление/удаление ресурсов из PE.


1-5494
VP
2003-02-20 17:35
2003.03.03
Delphi - RichEdit - Font


3-5444
Kaginava
2003-02-13 12:39
2003.03.03
Как определить что IBDataBase потерял соединение с базой


8-5666
evgeniy_t
2002-11-19 12:44
2003.03.03
звуковые файлы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский