|
 | | |
| Autor | Správa |
ha2
 Užívateľ
 Založený: 21.12.2008 Príspevky: 114
 | Zaslal: Pi 10.09.10 17:43 |   |
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. |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1052
 | Zaslal: Pi 10.09.10 19:43 |   |
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. |
| |
   |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Pi 10.09.10 21:24 |   |
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; |
|
| |
  |
 |
|
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.
|
| |