#970 Dialog hangs with connectListViewEvent

Mark Miesfeld
ooDialog (58)

Dialog with listview and extendedstyle atrribute CHECKBOXES, hangs when reading an external file to populate the listview.
This order doesn't work
1. connectListViewEvent(IDC_LIST1, "CHECKBOXCHANGED",LIST1_Checkbox)
2. read file to fill the listview

this order works as long as you don't read same or another file afterwards
1. read file to fill the listview
2 connectListViewEvent(IDC_LIST1, "CHECKBOXCHANGED",LIST1_Checkbox)
BUT if trying to read another/same file again after the 2 last statements will hang the program again.

Se also comments in errdialog.rex (initdialog)
Attached is a testprogram for the problem, You must edit the errdialog.rex and reverse the order of statments to get the error(hang)

This is on win7 64bit and oorexx ooRexx420_6518-x86_64 and also on win XP SP3 and ooRexx420_6244-x86_32


  • Mark Miesfeld
    Mark Miesfeld

    Thanks for opening this up.

    Including an example program to reproduce the bug sure helps. I'll look at it as soon as I can. But, I haven't done my Christmas shopping yet. <grin>

  • Mark Miesfeld
    Mark Miesfeld

    Thanks again for testing ooDialog 4.2.0. There is a bug here that I have. There is also a bug in your program.

    When you connect the check box changed event first, each time a new list view item is added, you LIST1_Checkbox method gets called. Your readFile() method is executing, it is unguarded. At the first line it reads, a list view item is loaded and LIST1_Checkbox is invoked. It is also unguarded. It can not execute until readFile() is finished. The interpreter is waiting for LIST1_Checkbox to return. Things are hung.

    However, I also have a bug in some of the list view methods not being unguarded. In particular the items() and getCheck() methods need to be unguarded. So, even if you make your LIST1_Checkbox() and your LIST1_Click() methods unguarded, as they need to be, your program will still hang.

    I intend to update the ooDialog 4.2.0 download from SourceForge fairly often as bugs are found and / or I get more of the documentation finished. I will probably put up a new version sometime after Christmas as I have made good progress on the docs and have several bugs fixed.



Cancel   Add attachments