(relgui:21868): Gtk-CRITICAL **: gtk_tree_view_unref_tree_helper: assertion 'node != NULL' failed
**Gdk:ERROR:/home/jmm/scratch/gtk/gtk+2.0-2.24.25/gdk/gdkwindow.c:2888:gdk_window_end_implicit_paint: assertion failed: (private->implicit_paint != NULL)Aborted
(relgui:21897): Gtk-CRITICAL **: gtk_tree_view_unref_tree_helper: assertion 'node != NULL' failedTApplication.HandleException List index (-1) out of bounds Stack trace: $0000000000477780 $000000000045FC40 line 150 of form.pas $000000000065094E line 761 of include/customlistview.inc $000000000064BD4A line 840 of include/listitem.inc $000000000064BC74 line 817 of include/listitem.inc $000000000064E29F line 823 of include/listitems.inc $000000000074AE0C line 235 of gtk2listviewtreemodel.pas $00007F3469DE0ACA
And most recently I have had an element of the TListView disappear and have the GUI fail to respond to closing the window, but with the elements still responsive.
QuoteAnd most recently I have had an element of the TListView disappear and have the GUI fail to respond to closing the window, but with the elements still responsive.Because the whole design is not thread safe. By using a TCollection with each TCollectionItem containing a thread, basically you create an unsafe thread list. Whenever a TTCPClient(thread) is added or removed the list should be locked by using critical sections, but that's not happening. You should switch to a TThreadList instead. TThreadList already implements all the locking mechanism for you. One more thing replace TListView with TVirtualStringTree. It's painful in the beginning, but you won't regret it in the long term.
Is interrupting the GUI with a call to Repaint enough to cause the erroneous behavior?
I have seen many references to virtual tree views, so I will look into those at your recommendation.
QuoteI have seen many references to virtual tree views, so I will look into those at your recommendation.Please take a look at this basic example: http://forum.lazarus.freepascal.org/index.php/topic,35545.msg235381.html#msg235381Download virtual tree from here: https://github.com/blikblum/VirtualTreeView-Lazarus/releases/tag/lazarus-4.8.7-R4 , you must install lcl-extensions first.
Compile package bgracontrols 22.214.171.124: Exit code 256, Errors: 1bclistbox.pas(155,1) Error: resource compiler "windres" not found, switching to external mode
Grap needed files (windres.zip) from this bug report : http://bugs.freepascal.org/view.php?id=29698EDIT: Ah, sorry. It seems that you are developing under Linux OS. Then you need to install mingw package from your OS package repository.