Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 154
от 05.06.2003, 03:00

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 274
Отправлено ответов: 961
Активность: 350.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Дмитрий
Статус: Опытный
Общий рейтинг: 153.41
[Подробней >>]
Tancho
Статус: Опытный
Общий рейтинг: 153.69
[Подробней >>]
BOLT
Статус: Профессиональный
Общий рейтинг: 171.3
URL: В помощь начинающему программитсу Assembler, C/C++
[Подробней >>]
 
_vt
Статус: Опытный
Общий рейтинг: 119.18
[Подробней >>]
Tigran K. Kalaidjian
Статус: Опытный
Общий рейтинг: 117.56
URL: Методы оптимизации работы ПК
[Подробней >>]
Bill
Статус: Доверительный
Общий рейтинг: 182.14
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 118.95
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.11
[Подробней >>]
[MozgC]
Статус: Профессиональный
Общий рейтинг: 171.84
[Подробней >>]
 
DoS@
Статус: Доверительный
Общий рейтинг: 129.33
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 262. Здрасивуйте Эксперты! Спасибо всем кто ответил на вопрос 260. В моих прогах все нормально работает. ... (ответов: 3)
Вопрос № 263. Всем большой привет. Вопрос такой, почему у меня некорректно работает программа заливки. Она закраш... (ответов: 8)
Вопрос № 264. Всем снова большой привет. Этот вопрос такой, как сделать так, что бы у меня в экранном режиме в па... (ответов: 7)

Вопросов: 3, ответов: 18


 Вопрос № 262

Здрасивуйте Эксперты!
Спасибо всем кто ответил на вопрос 260. В моих
прогах все нормально работает. Подскажите
а почему у меня неполучаеться передать
параметр командной строке Windows 2k (cmd.exe).



Вопрос отправлен: 01.06.2003, 07:10
Отправитель: Ilu

[Следующий вопрос >>] [Список вопросов]

Отвечает Дмитрий

Доброе время суток, 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)? А может просто неверно написана программа?
Подскажите чего-нибудь.
Заранее благодарю.


Приложение:


Вопрос отправлен: 01.06.2003, 12:57
Отправитель: ROTTEN (ROTTEN@intbel.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Доброе время суток, 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).
Заблаговременно благодарю.



Вопрос отправлен: 01.06.2003, 13:03
Отправитель: ROTTEN (ROTTEN@intbel.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Tancho

Здравствуйте, 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.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (29)
Perl (5)
Builder / Delphi (16)
Pascal (28)
Basic / VBA (11)
Java / JavaScript (11)
PHP (7)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (31)
"Железо" (26)
Поиск информации (14)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (8)
Юристу
Гражданское право (5)
Семейное право (2)
Трудовое право (3)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное