[ erekoz @ 19.09.2003. 11:13 ] @

Pozdrav svima prisutnima,

Imam jedan problem sa upotrebom listbox-a.Kako da kada osvezavam listbox, sprecim ono treptanje ekrana svaki put kada ga osvezi? U listbox se svake sekunde ucitava sadrzaj fajla, a listbox se pre toga brise...


unapred zahvalan erekoz
[ goblin @ 19.09.2003. 11:31 ] @
Pokusaj da uopste ne brises elemente u lsitbox-u, vec samo da odradis LoadFromFile.
Ako ne uspe, sam kreiraj TStrings, iscitaj podatke i menjaj svaki red u listbox-u samo pod uslovom da postoji razlika u odnosu na napisano.
Ako ti ni to ne odgovara, ako umes, pogledaj listu poruka za listbox u helpu za WinAPI (ide uz Delphi), kreiraj svoju komponentu, descendant od TListBox pa sam obradjuj neke od poruka (samo, ovo je besmislen savet ako nisi vec radio nesto slicno).

P.S. ja zaista ne vidim smisla u citanju podataka iz fajla u listbox svake sekunde... ???
[ erekoz @ 19.09.2003. 11:42 ] @

Hvala na savetima.

To sto se smisao na prvi pogled ne vidi, ne znaci da ne postoji... :-)
[ morlic @ 19.09.2003. 22:27 ] @
Uspeva li korisnik da selektuje nesto u tom ListBox-u :))
[ erekoz @ 20.09.2003. 14:54 ] @

Resio sam problem tako sto pre nego sto se krene sa osvezavanjem ekrana, proverim da li je broj stringova u fajlu iz kojeg se cita promenjen. Ako nije, listbox se ne osvezava, pa korisnik moze nesto i da selektuje iz listbox-a. :-)

Opet hvala na savetima

P.S. Moram da se zahvalim kreatorima ovog sajta i svim njegovim korisnicima. Da nije Vas, produktivnost na poslu bi mi bila 10 puta manja. Ako mogu bilo sta da ucinim za dobrobit elitesecurity-a, bice mi zadovoljstvo to da ucinim
[ silverglider @ 22.09.2003. 11:13 ] @
Jedna samo stvar u vezi osvezavanja - morao to da radis svake sekunde ili ne, sasvim svejedno: kada preturas sadrzaj bilo koje komponente koja sadrzi tstrings, uvek iskoristi beginupdate i endupdate metode. One ce spreciti da maticna komponenta (tipa tlistbox) reaguje na svaku promenu sadrzaja i samim tim osvezava automatski - time izbegavas treperenje u svakom slucaju.
Dakle, nesto poput ovoga:

Code:

with MyListBox do
begin
  Items.BeginUpdate;
  ...
  (brisi sadrzaj/menjaj/ucitavaj/sortiraj)
  ...
  Items.EndUpdate;
end;