IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @993
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Vyhraj Lego Duplo každý deň

Zapojte sa do súťaže a vyhrajte! Je to tak jednoduché! www.duplo.lego.com

Spoločnosti Online s.r.o.

Ponúkame čisté spoločnosti. Obchodný register vybavíme za vás! www.spolecnostionline.cz

NIVEA proti celulitíde

Rad Q10 plus pre viditeľne pevnú a hladkú pokožku už za dva týždne. www.NIVEA.sk

Zaregistruj sa!

Tvoj názor stojí peniaze. Vyplňte dotazník a zarobte si! www.marketagent.com

Všetko za 9,90€

obľúbené Topshop produkty za skvelú cenu len 9,90€! Kliknite a nakupujte. Topshop www.topshop.sk

[Delphi] Progressbar do Listview

Zaslať odpoveď
AutorSpráva
ha2
Užívateľ
Užívateľ

Založený: 21.12.2008
Príspevky: 114

PríspevokZaslal: Pi 10.09.10 17:43Odpovedať s citátomNávrat hore

Ako vlozim progressbar do urcitej bunky? Pri Listview1.ViewStyle:=vsReport; Teda napr. do prveho riadoku a 3. stlpca. Napadlo ma vlozit iba takto.

kód:

var
    pb: TProgressBar;
begin
 pb:= TProgressBar.Create(self);
 pb.Parent := Listview1;
end;


Samozrejme ze to iba plave a potrebujem aby to bolo vlozene dnu, reagovalo na pohyb obsahom a pod.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Pi 10.09.10 19:43Odpovedať s citátomNávrat hore

ProgressBar sa vytvorí po kliknutí na tlačidlo:
kód:
procedure TForm1.Button1Click(Sender: TObject);
var
  polozka: TListItem;
  polozkaRect: TRect;

begin

  pb := TProgressBar.Create(nil);
  pb.Parent := ListView1;
  pb.Position:= 60;

  polozka := ListView1.Items.Add;
  polozka.Data:= pb;

  polozkaRect := polozka.DisplayRect( drBounds );
  polozkaRect.Left := 1;       // kde ma ProgressBar zacinat
  polozkaRect.Right := ListView1.Columns[0].Width - 1;  // kde ma koncit (je to vlastne jeho sirka)
  pb.BoundsRect := polozkaRect;

end;


Stačí už len prispôsobiť pozície, podľa toho, v akom stĺpci sa má nachádzať. Čo sa týka zmeny šírky pri zmene stĺpca, tak ListView nemá udalosť OnColumneResize. Takže treba buď použiť iný komponent alebo nejako inak kontrolovať zmenu šírky stĺpca.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 936

PríspevokZaslal: Pi 10.09.10 21:24Odpovedať s citátomNávrat hore

ja osobne by som to riesil cez event OnCustomDrawItem
kód:
procedure TForm2.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
  var bnds : TRect;
begin
  if (Item.Data<>nil) and TObject(Item.Data).ClassNameIs('TProgressBar') then begin //otestujem ci item ma priradeny objekt a ci ten objekt je typu progressbar
      bnds := Item.DisplayRect(drBounds );
      DefaultDraw := true; // nastavit aby prvy stlpec mal zachovane povodne vykreslovanie
      with TProgressBar(Item.Data) do begin
        SetBounds(bnds.Right- Sender.Column[2].Width,bnds.Top,Sender.Column[2].Width,bnds.Bottom-bnds.Top);
      end
  end;
end;
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd