1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Скомпилировал html файл справки(формат .chm),его требуется вызывать из программы на pascal. Pascal открывает .com и .exe. Мысли две: конвертировать chm в exe и открыть exe из программы(или паскаль открывает только dos-программы???),2я-это написать bat-файл со строчкой start help, и уже bat как-то вызвать из программы.
Сообщение отредактировано: Unconnected -
--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
{$M $4000,0,0 } { 16K stack, no heap } uses Dos; begin SwapVectors; Exec(getenv('comspec'), '/c hh.exe cpp.chm'); SwapVectors; WriteLn('...back from Exec'); if DosError <> 0 then WriteLn('Dos error #', DosError) else WriteLn('Exec successful. Child process exit code = ', DosExitCode); end.
запускает этот самый cpp.chm, но проблема в том, что пока ты его не закроешь (т.е., пока субпроцесс не завершится), основная программа не продолжит выполняться...
запускает этот самый cpp.chm, но проблема в том, что пока ты его не закроешь (т.е., пока субпроцесс не завершится), основная программа не продолжит выполняться...
Ну,это вполне приемлимо.Буду пробовать!
--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
Вставил код в процедуру(Doserror мне не нужен), сначала просто главная программа сворачивалась и ничего не происходило,а потом вообще никакой реакции...
А вот теперь верни на место DosError, запусти еще раз программу, и скажи, какое выдается сообщение, чему этот самый DosError равен... Я не просто так его оставил, оно ж для диагностики...
Все нормально отправилось через PM, но вот проблема: твой проект не компилируется... А исправлять по второму разу то, что я тебе уже где-то показывал, я не имею никакого желания. Или присоединяй тот проект, который нормально (без ошибки #49) собирается, или ищи баг сам...
Volvo, сорри, случайно прикрепил модули шифрования,вызывающие ошибку 49. Сейчас прикрепил уже скомпилированные рабочие TPU(думаю,исходники модулей для шифрования не понадобятся).
Сообщение отредактировано: Unconnected -
--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
Я чужими TPU-шками не пользуюсь (я уже говорил, что не запускаю бинарники. Хочешь я тебе вместо процедуры initgr2 всуну процедуру, которая отформатирует диск, откомпилирую и ты запустишь?)... Но проблема у тебя в том, что ты понапихал в свой проект столько всего, что даже обычная InitGraph завершается с ошибкой "не хватает памяти для инициализации графической подсистемы". Похоже, что проект надо серьезно перерабатывать, тут заменой двух-трех строк не отделаешься.
Volvo ,то есть ты хочешь сказать,что без переработки программы подключить справку не удастся? Просто переработать проект(как я понял,ты имел в виду оптимизацию и уменьшение размера кода) я просто не успею.
--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
1) программа будет сворачиваться, поскольку работает в полноэкранном режиме. Т.е., свернулась, справка показалась, закрыл справку, щелкнул на иконку программы в TaskBar-е, чтобы ее развернуть (с учетом пункта 3 это у меня отработало, правда я поставил вызов spravka сразу после инициализации графики); 2) возможно, будет утеряно изображение, хранившееся на экране в момент, когда запускалась справка - придется перерисовывать его; 3) директиву {$M} в главной программе измени на
{$M $4000, 0, 65535}
4) пройдись по программе, хотя бы в процедурах op1 и op2 вынеси одинаковые массивы строк как типизированную константу в начало секции Implementation, чтоб не инициализировать массив так, как ты это делаешь; 5) процедура prisv вообще лишняя: точно так же mas2 выносится как типизированная константа, да и x1, x2, y1, y2 тоже. Randomize вносится в блок инициализации модуля, между begin и end... 6) Процедура Gen: зачем выделяется 52 строки по 255 символов, если используется только по 62? Можно же сделать String[62]... Памяти слишком много? Стек резиновый? Как видишь, нет... То же самое касается и всех остальных переменных (а особенно - массивов) типа String: проверь, не берешь ли ты их "с запасом", здесь он тебе совершенно не нужен - проект большой, лучше не перерасходовать память. 7) в модулях директива {$M} не работает (читай справку TP), можешь смело ее убирать оттуда.