Здрасивуйте Эксперты! Спасибо всем кто ответил на вопрос 260. В моих прогах все нормально работает. Подскажите а почему у меня неполучаеться передать параметр командной строке Windows 2k (cmd.exe).
Доброе время суток, Ilu! Вообще в ОС линейки NT нет ДОСа. Там есть его эмулятор. Возможно происходит несостыковка, когда из ДОС-проги вызывается командная строка с параметрами. P.S. Хотелось бы на фрагмент кода взглянуть. Может дело в исходнике?
Ответ отправлен: 02.06.2003, 12:03 Отправитель: Дмитрий Отвечает Tancho
Здравствуйте, Ilu! Ну давай твоя прога в Приложение - из которой "неполучаеться передать параметр командной строке Windows 2k (cmd.exe)". А так просто надо болтать кем что угодно. Ответ отправлен: 02.06.2003, 19:26 Отправитель: Tancho Отвечает BOLT
Приветствую Вас, Ilu! Опиши ка ты его передаешь, а мы посмотрим - правельно ты сделал или в чем ошибся! Да прибудет с тобой Велика Сила! Ответ отправлен: 02.06.2003, 14:04 Отправитель: BOLT
Вопрос № 263
Всем большой привет. Вопрос такой, почему у меня некорректно работает программа заливки. Она закрашивает вне области многоугольника. Хотя, если пройти программу по F8, то закраска происходит корректно, а если запустить программу, то выходит ерунда. Может дело в функции GetPixel(X,Y)? А может просто неверно написана программа? Подскажите чего-нибудь. Заранее благодарю.
Доброе время суток, ROTTEN! В паскале есть стандартная процедура FillPoly, зачем изобретать велосипед?
Ответ отправлен: 02.06.2003, 21:26 Отправитель: _vt Отвечает --- Нет данных ---
Здарово, ROTTEN! А у меня одинаково заполняет и при выполнении и по F8. Попробуй сменить компилятор на Turbo Pascal.
Ответ отправлен: 01.06.2003, 14:49 Отправитель: --- Нет данных --- Отвечает Tigran K. Kalaidjian
Доброе время суток, ROTTEN! Странно, у меня программа не закрашивает область вне многоугольника, а даёт лишь "лишние" полосы. Проблема в том, что закраска прекращается если число "столкновений" с пикселем цвета В чётно. Но Вы забываете, что это может быть вершина многоугольника, поэтому и появляются полосы вне многоугольника и внутри него. Следует анализировать цвет пикселей вокруг исследуемого пикселя. Если это не принципиально, то используйте FillPoly(n+1, A) вместо Fill(A,white) - это намного проще и быстрее. Если возникнут вопросы - пишите. Ответ отправлен: 01.06.2003, 18:59 Отправитель: Tigran K. Kalaidjian Отвечает BOLT
Доброе время суток, ROTTEN! А че она вообще делать-то должна? Че-то закрашивает... Да будет с тобой Великая Сила! Ответ отправлен: 01.06.2003, 19:09 Отправитель: BOLT Отвечает Bill
Добрый день, ROTTEN! Используй лучше FillPoly - в примерах посмотри как работает. Просто и надежно. Переделаешь за пять минут
Ответ отправлен: 02.06.2003, 10:58 Отправитель: Bill Отвечает Ayl
Добрый день, ROTTEN! Ну, у меня и по шагам не происходит. Все дело в том, что твой алгоритм закраски неправильный. Твой алгоритм способен закрашивать только выпуклые фигуры (скорее всего). Твой же многоугольник невыпуклый. В первой строке у него 2 вершины. Смотри как работает твой алгоритм: 1. Находит самую левую точку, принадлежащую границе фигуры. 2. Пропускает всю границу. Причем начало заливки у тебя - левая точка границы, а не правая, что уже неправильно. 3. Находит следующую граничную точку и проводит линию (затирая горизонтальную границу многоугольника). Тут еще одна ошибка алгоритма: если в вершине изменение направления сторон, то ты проведешь линию за пределами фигуры. Исключение - только если справа от вершины не будет граничной точки. Попробуй изменить алгоритм. Посмотри в инете алгоритмы закраски или попробуй найти одну из книжек: М.Абраш.
Таинства программирования графики. Р.Уилтон. Видеосистемы ПК IBM PC и PS/2. Руководство по программированию.
Ответ отправлен: 02.06.2003, 12:16 Отправитель: Ayl Отвечает vitya
Приветствую Вас, ROTTEN! Если честно я не стал копаться в исходнике, но у меня есть предложение использовать функции FloodFill или FillPoly. Ответ отправлен: 02.06.2003, 13:31 Отправитель: vitya Отвечает Tancho
Приветствую Вас, ROTTEN! Зачем тебе эта процедура Fill, когда есть FillPoly? Мне кажеться что не надо каждый стремиться открывать Америку когда кто то уже сделал! Так что смотри Приложение! Здесь полигон заполнен как надо.
Приложение: Ответ отправлен: 02.06.2003, 15:14 Отправитель: Tancho
Вопрос № 264
Всем снова большой привет. Этот вопрос такой, как сделать так, что бы у меня в экранном режиме в паскале были русские буквы, а не крякозяблики. В оконном всё в порядке. Или в 2000-й форточке так не будет?(У меня Win 2000). Заблаговременно благодарю.
Здравствуйте, ROTTEN! У меня Windows XP Home Edition и вещи идут так : 1)Создаль bat - файл у котором в первом строке кирилизируящая прога, а в втором строке вызов IDE среда Turbo(Borland) Pascal'е;( смотри приложение). 2)Создаль Shortcut to MS DOS к Bath file,а в самом Batch файле настроить от Properties/program/Bath file/ <путь/имя bat file>,а у Properties/Compatibility/Run выбрать Windows 2000; 3) Осталнаые настроек из Properties как тебе удобно;
Приложение: Ответ отправлен: 04.06.2003, 12:26 Отправитель: Tancho Отвечает [MozgC]
Для решения необходимо в реестре по адресу: HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout изменить значение ключа 00000409 в папке DosKeybCodes на "ru". Кроме этого, в файле "autoexec.nt", расположенном в Windowssystem32, надо добавить строку "lh %SystemRoot%system32kb16.com ru". После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Данный метод нормально работает в том случае, если Language settings for the system (апплет Regional Options) в качестве Default стоит Cyrilic. Если Вас не устраивают возможности предоставляемые системой, можете поставить внешний русификатор, например, проверенный временем RKM v.3.0. Удобнее всего прописать его в файле autoexec.nt (аналогично kb16). Можно
взять здесь: http://www.chem.univ.kiev.ua/~adsh/win2k/soft/rkm.php.
При запуске в Windows 2000 старого DOS-приложения (FOX Pro) процессор (вполне современный) оказывается загружен на все 100%. Можно ли что-нибудь с этим сделать?
Да, можно. Лучше всего использовать специальную утилиту, исправляющую этот сбой при работе старых программ в среде многозадачных OS, называется она RESFREE.COM v3.0, а найти ее можно в интернете, например, здесь: suvorov.chat.ru/ADDON/DOS/CONSOLE/resfree.rar. Распакуйте архив в папку Winnt/System32 и вставьте в файл С:WinntSystem32autoexec.nt строку "lh %SystemRoot%system32ResFree 10". Утилита будет запускаться автоматически при загрузке DOS-программ. Параметр "10" можно изменять в диапазоне от 0 до 65535 - поэкспериментируйте сами, изучив инструкцию к программе, которую найдете по адресу suvorov.chat.ru/ADDON/DOS/CONSOLE/resfree.htm. Для
правильной работы кодировки последней строкой %windir%SYSTEM32autoexec.nt допишите строку запуска драйвера клавиатуры/экрана, например отлично подходит KEYRUS с ключами /FULL /ALL /FAST. Проверено. KEYRUS.COM можно скопировать в SYSTEM32 1. Надо внести изменения в реестр. 2. Перенести оба (Keyrus.com и Resfree.com) в папку %windir%SYSTEM32 3. Нести необходимые изменения в файл autoexec.nt Строки, которые надо ввести в Autoexec.nt lh %SystemRoot%system32KEYRUS /FULL /ALL /FAST lh %SystemRoot%system32ResFree 10 lh %SystemRoot%system32kb16.com ru
Ответ отправлен: 01.06.2003, 13:24 Отправитель: [MozgC] Отвечает --- Нет данных ---
Снова здарово, ROTTEN! Это вечная проблема всей Системы. Самый лёгкий выход - устанавливай перед выполнением резидентный русификатор. Ruskey.com, например.
Ответ отправлен: 01.06.2003, 14:49 Отправитель: --- Нет данных --- Отвечает DoS@
Добрый день, ROTTEN! Заходи на karatetski.narod.ru и скачивай рабочие Паскали! Ответ отправлен: 01.06.2003, 15:51 Отправитель: DoS@ Отвечает Bill
Добрый день, ROTTEN! Поставьте руссификатор. Можно RKM: http://www.chem.univ.kiev.ua/~adsh/win2k/soft/rkm.php Были у меня и еще какие-то. Если надо, поищу Ответ отправлен: 02.06.2003, 10:30 Отправитель: Bill Отвечает Дмитрий
Доброе время суток, ROTTEN! Сейчас у тебя какая ОС? У меня WinME и все нормально как в полноэкранном, так и в оконном режиме. В ОС NT линейки иногда возникают проблемы с кодировками командной строки. От проги это не зависит! Если ось коряво настроена, то даже нормально написанная прога будет выводить нечитаемые символы. В рассылке по WinNT были ответы по русификации осей. Покопайся в архиве. Ответ отправлен: 04.06.2003, 05:36 Отправитель: Дмитрий Отвечает BOLT
Здравствуйте, ROTTEN! Надо в реестре по адресу: HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout -> DosKeybCodes изменить значение ключа 00000409 с "us" на "ru". И кроме этого, в файле autoexec.nt, расположенном в %SystemRoot%system32, надо добавить сл. строку "lh %SystemRoot%system32kb16.com ru". После перезагрузки, переключение раскладок клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Все. Признаюсь: стащил с Xakep.tu Да прибудет с тобой Велика Сила! Ответ отправлен: 02.06.2003, 14:01 Отправитель: BOLT
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.