olegy123 писал(а):так надо либо в потоке IdHTTPServer1CommandGet создавать lazReport
см. выше, я так и написал "в потоке создаю объекты lazReport ..."
olegy123 писал(а):либо синхронизировать с главным потоком.
уже не помню точно какие, но тоже проблемы были.
olegy123 писал(а):можно, если не используется проприетарное библиотека.
Уже не актуально, т.к. файлы оказались кстати.
Т.к. сама задача предоставляла возможность, сделал проще.
0. LazReport работает в основном потоке.
1. Всегда перед запросом конкретной PDF запрашивается список этих отчетов. Список не большой от 1 до примерно 20-30 позиций.
2. в Методе выдачи списка, заполняется спец.таблица ListPDF с идентификаторами отчетов и пустым полем "имя файла".
3. Метод в конце посылает сообщение PostMessage который ловится в основном потоке.
4. из ListPDF делается выборка записей с пустым полем "имя файла"
5. LazReport в цикле формирует PDF-ки сохраняя их в определенную папку , а имена записывается в ListPDF
6. к тому моменту когда прилетает запрос на конкретную PDF файлы уже готовы.
7. если файл не готов то в потоке обработки запроса PDF делается sleep 10 раз , а там или файл уже появится или будет возврат сообщения об отсутствии файла.