Имеется Listbox в который подгружаются имена файлов из выбранной директории. По нажатию вручную на какую-либо строку листбокса, выполняются действия с файлом, по завершению которых данная строка удаляется вместе с ним.
Файлов бывает много и тыкать 100500 раз попросту занадаело. Решил прикрутить нажималку по таймеру которая будет каждые 10 секунд нажимать на первую строку листбокса.
Пробовал на таймер вешать код: ListBox1.Selected[0]:=True;
Но компилируется с ошибкой и выделением выше указанного кода: [dcc64 Error] Unit1.pas(99): E2149 Class does not have a default property
Непонятно, а зачем здесь нужен таймер и "нажимания"? Почему просто не вызывать нужную процедуру в цикле? Это будет гораздо оптимальнее по времени и безопаснее. Вдруг 10 секунд не хватит на Вашу операцию - всё ли будет хорошо? А если действие заведомо короче 10 секунд, то на большом списке много времени будет тратиться впустую.
Вы конечно правы по поводу оптимальности. 10 секунд я привел для примера. На самом деле, время нажатия регулирую в зависимости от размера обрабатываемых файлов(от нескольких мс до нескольких минут). Время нажатия на безопасность выполнение операции не влияет. Так как операция с каждым файлом происходит в своем отдельном от этой программы потоке. Таймер прикрутил для того, что бы регулировать время нажатия в зависимости от размера файлов(программа автоматически импортирует файлы из какой либо папки в бд postgresql - данные файлов формата "data|name", размер файлов от 10Кб до десятков Гб.,
кол-во файлов до нескольких тысяч). Просто не совсем разумно будет запускать каждые 10 мс - 10 потоков импорта файлов размер которых гигов по 10-20.