http://www.fotka.in.tarnow.pl/delphi/

0

http://www.fotka.in.tarnow.pl/delphi/

wejdźcie tam i pomóżcie...--To jest właśnie złośliwość rzeczy martwych...

0

Uparłeś się na to :D Wiele Ci nie pomogę. Mogę tylko dawać pomysły, żebyś próbował. Może przed rysowaniem nowego Repaint?--Pomoc i analiza źródeł wszystko czego potrzebujesz ( no i może odrobinę logicznego myślenia)

0

Uparłem się bo muszę to mieć, a Repaint nie bedzie, a zreszta jak on miał by takie odświeżanie 25 pozycjami to ja dziękuje to tego listView bym nie zobaczył to jednak musi być komponent..., albo nie wiem może zna ktoś jakaś funcję która by mazała to co wcześniej narysuje na ListView??? Bo wtedy to tylko dorobić w Event OnColumnResize i wszystko by grało!!! Pomóżcie :) {brawo} --To jest właśnie złośliwość rzeczy martwych...

0

Dobra będzie komponent jak ktoś mi powie jak przechytrzyć procedurę w TCustomListView. Tam jest procedura UpdateColumns. Ona jest wywoływana za każdym razem, gdy zmieni się kolumna. Muszę przechwycić jej wykonywanie przesunąć ProgressBara (wystarczy użyć Left i Width :D już sprawdzałem ) i przekazać wykonywanie dalej. Mam tylko mały problem. Ta procedura jest zadeklarowana jako static i nie mogę jej nadpisać ;( override. Może ktoś zna jakiś sposób aby to ominąć?--Pomoc i analiza źródeł wszystko czego potrzebujesz ( no i może odrobinę logicznego myślenia)

0

Chyba ktos wspominal o uzyciu timera do odswiezania?

procedure TForm1.Button1Click(Sender: TObject);
var
r: TRect;
pb: TProgressBar;
begin
Listview1.Columns.Add.Width := 100;
Listview1.Columns.Add.Width := 200;
Listview1.ViewStyle := vsReport;
Listview1.Items.Add.Caption := 'Text';

r := Listview1.Items[0].DisplayRect(drBounds);
r.Left := r.Left + Listview1.columns[0].Width;
r.Right := r.Left + Listview1.columns[1].Width;

pb := TProgressBar.Create(Self);
pb.Parent := Listview1;
pb.BoundsRect := r;
pb.Position := 30;
Listview1.Items[0].Data := pb;
Timer1.Enabled:=True; //nowe
end;

procedure TForm1.Button2Click(Sender: TObject);
var
pb: TProgressBar;
begin
pb := TProgressBar(Listview1.Items[0].Data);
pb.StepIt;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
r: TRect;
pb: TProgressBar;
begin
pb := TProgressBar(Listview1.Items[0].Data);
r := Listview1.Items[0].DisplayRect(drBounds);
r.Left := r.Left + Listview1.columns[0].Width;
r.Right := r.Left + Listview1.columns[1].Width;
pb.BoundsRect := r;
end;

Timera ustaw w OI na Enabled=False i Interval=40 [25 fps]

i teraz sprawa dlaczego tamten stary progres bar pozostawal? bo tworzyles drugi nie usuwajac starego.--sys:&gt logout....

0

Sheitar .. dzieki za podpowiedź...Twoja meta jest extra...tylko muszę znaleźć komponent ListView, który by miał coś takiego jak OnColumnResize i wtedy można bedzie ominać te timerki bo np. jak bedzie 25 Itemów to raczej bedzie to kiepsko sie prezentowało (chociaz moze sie myle, ale i tak 25 timerkow to stanowczo za duzo a jakbym chcial w jednym to musze uzyc petli for)...THX jeszcze raz {brawo} --To jest właśnie złośliwość rzeczy martwych...

0

poszukalem na wszystkich searchengine'ach jakie znam i jedyny komponent posiadajacy zdarzenie OnCOlumnResize to ExDBGrid :(. Gdybys jednak chcial cos tam w nim zobaczyc, to tu jest link do archiwum:

http://ftpdem.ubi.pt/dsp/ftp/d30free/texdbgrd.zip

a tu do strony z opisem:

http://ftpdem.ubi.pt/dsp/newl/midxd50f.htm--- - -
Roszi

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0