Problem z odświeżeniem TTreeView

0

W jaki sposób zmienić ikonkę w TTreeView, na czas wykonywania dłuższej operacji? Mam taki kod:

  //...
  Node.ImageIndex := 6;
  TreeView1.Repaint;
  DlugoDzialajacaProcedura;
  //...

i niestety nie działa.
Efekt jest taki, że dopiero po wykonaniu się długiej procedury ikonka zmieni się na szóstą. Próbowałem jeszcze innych funkcji typu Invalidate czy Update, ale nadal nie działa. Czy ktoś może wie gdzie popełniam błąd?

0

Spróbuj:

  //...
  Node.ImageIndex := 6;
  TreeView1.Repaint;
  Application.ProcessMessages;
  DlugoDzialajacaProcedura;
  //...

a jak nie działa to w procedurze też wstaw Application.ProcessMessages, tak aby co jakis czas sie wykonało (np. jeżeli jest tampętla to w pętli) Wtedy program nie będzie zachowywał się jak zawieszony podczas działania procedury. Jeżeli onawykonuje się bardzo długo to wstaw ją do wątku.

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