Добавил исправления, проверь, то ли я добавил
Редактировалось 1 раз(а), последний 2018-12-28 15:41:14
Этот топик читают: Гость
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
То, что надо. Спасибо.
|
|||
карма: 26 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Опечатку маленькую нашел в своей последней редакции WinExec - вместо onConsoleError выдавалось событие onConsoleResult (проклятый копи-паст!). nesco, коммитни поправленный *.pas.
|
|||
карма: 26 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Netspirit писал(а): Опечатку маленькую нашел в своей последней редакции WinExec - вместо onConsoleError выдавалось событие onConsoleResult (проклятый копи-паст!). nesco, коммитни поправленный *.pas.Только в понедельник поправлю. Скинь исправленный кусок кода прямо сюда. Редактировалось 1 раз(а), последний 2019-01-11 18:28:48 |
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Возьми файл - там в нескольких местах поправки.
|
|||
карма: 26 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Netspirit писал(а): Возьми файл - там в нескольких местах поправки.Вижу, обязательно поправлю. |
|||
карма: 22 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Закоммитил, проверяй
|
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Все нормально.
|
|||
карма: 26 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Ты там еще какое-то условие добавил, это для чего?
|
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Там одной строчкой вызывается 3 раза функция и создаются 6 каналов. Если результат этого выражения "ложь", то значит один из вызовов функций завершился ошибкой. Если 1-ый - тогда остальные вызовы не произойдут и ни одна пара каналов создана не будет. А вот если первый-второй вызов прошли успешно, а третий - нет, то будет создано 2-4 канала, а результат выражения все равно "ложь". Вот уничтожение этих каналов в случае ошибки и добавлено.
При написании кода это было неочевидно. С другой стороны, это маловероятная ситуация, поэтому я не акцентировал на этом внимание, но для "полноты кода" - необходимо. Ведь кто-то возьмёт и скопипастит его себе и так и будет кочевать по рукам. Редактировалось 1 раз(а), последний 2019-01-15 17:00:47 |
|||
карма: 26 |
|
Ответов: 44
Рейтинг: 0
|
|||
После обновления компонента, работать он стал гораздо лучше.
Но есть маленький баг. При запуске bat файла, информация передается в RichEdit и вот иногда, "батник" продолжает работать, а RichEdit перестает заполнятся текстом. Возможно исправить? |
|||
карма: 0 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Событие onConsoleResult происходит в параллельном потоке - текст на RichEdit пробуй выдавать через компонент Synchronize. Попробуй замени RichEdit на Memo - так же себя ведет?
BaseD писал(а): "батник" продолжает работать, а RichEdit перестает заполнятся текстом |
|||
карма: 26 |
|
Ответов: 4
Рейтинг: 0
|
|||
Netspirit, нет, это обычное echo.
Вот очень простенькая схемка, с рабочим батником и нужными консольными программами. Понажимайте кнопку тест. Конечное:
Срабатывает не всегда. Редактировалось 1 раз(а), последний 2019-01-20 22:52:38 |
|||
карма: 0 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Запускать непонятное не хочется. Обрати внимание на полный путь к файлу: если в пути будут пробелы - у тебя не сработает. Полный путь с именем файла нужно заключать в двойные кавычки.
Есть такие соображения. В компоненте происходит ожидание завершения процесса. Предполагаю: пока я жду на FProcessH, конечный процесс может успеть записать в буфер канала последнию часть вывода и завершиться. Я на ожидании получаю сигнал завершения и прекращаю работу. А та последняя записанная в буфер часть остаётся мной непрочитанной и теряется. Может по получении сигнала завершения процесса надо ещё 1 раз прогнать проверку каналов на наличие данных? in1975, попробуй замени файлами из этого архива и проверь: /getfile/38574. Желательно проверить нет ли нигде потери данных (сделать вывод того же батника из cmd.exe в файл и сравнить с тем, что выдаёт компонент). Редактировалось 6 раз(а), последний 2019-01-21 12:36:18 |
|||
карма: 26 |
|
Ответов: 2059
Рейтинг: 132
|
|||
...
Беру свои слова обратно. Всё заработало. Редактировалось 7 раз(а), последний 2019-01-21 20:05:29 |
|||
карма: 6 |
|