[Delphi] TListView - automatyczne skracanie wpisów

0

Witam!

Od kiedy używam TListView, zawsze mam ten sam problem. Po dodaniu nowej pozycji komponent wyświetla cały wpis, np. "alamakota". Po bliżej nieokreślonym zdarzeniu wpisy w komponencie ulegają automatycznemu skróceniu, np. do takiej postaci: "alam...". Chciałbym temu zapobiec.

Dzięki.

0

Hmm... To wszystko zależy od szerokości kolumny (przynajmniej przy vsReport). Jak kolumna jest za wąska, to skraca wpisy (wyświetlane, wartości dalej są te same). Jak chcesz tego uniknąć, to zrób coś, co pozwoli Ci na automatyczne rozszerzanie kolumn do szerokości najszerszego wpisu (np. dla każdego elementu sprawdzasz długość jego wpisu w pikselkach i największą z tych wartości przypisujesz do ListView.Columns[0].Width). Oczywiście to dotyczy sytuacji, kiedy masz vsReport, poza tym to nie wiem, jak to jest...

0

Adam.Pilorz: Numer ze sprawdzaniem szerokości nie działa... sam robiłem konkurs co do tego i żadne rozwiązanie nie było wystarczające. to praktycznie nie działa...

0

a mi taki kodzik smiga bez zarzutu.

procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
var i:integer;y:integer;
begin
y:=0;
for i:=0 to ListView1.Items.Count-1 do
begin
if y<listview1.Canvas.TextWidth(ListView1.Items[i].caption)+10 then
y:=listview1.Canvas.TextWidth(ListView1.Items[i].caption)+10;
end;
listview1.Columns[0].Width:=y;
end;
0

Dzięki, problem rozwiązany.

Na początku używałem trybu wyświetlania 'vsList', natomiast po zmianie na 'vsReport', wyłączeniu wyświetlania Headers oraz dodaniu kolumny o odpowiedniej szerokości skracanie nie występuje.

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