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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.01 c
14-5746
michael_b
2003-02-15 20:30
2003.03.03
Ограничение по времени


3-5382
Rule
2003-02-11 23:04
2003.03.03
Вопрос по Интербейз и подключение из Интернета.


7-5875
dimkaa
2003-01-03 20:07
2003.03.03
Одновременная работа двух програм с СОМ портом?


14-5791
malkolinge
2003-02-12 16:38
2003.03.03
!!!!


1-5488
Silver_
2003-02-20 16:23
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский