Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Вниз

Как вызвать прерывание ?   Найти похожие ветки 

 
S.G.K.   (2003-06-16 15:08) [0]

Уважаемые мастера ! Подскажите, пожалуйста, как работать с прерываниями в Дельфи ? Существуют ли в Дельфи процедуры, подобные процедурам WinDos unit ?
Нигде не могу ничего найти по этому поводу, помогите чем можете.


 
Ihor Osov'yak   (2003-06-16 15:21) [1]

Тут делфи непричем. Виндовс имеет несколько иную идеологию, чем дос. Если коротко - из приложения Win32 нельзя обработать прерывания, а с программного вызова тоже ничего не выйдет хорошего.. Можно только вызвать прерывание шлюза перехода в защищенный режим, но даже это не проблема прикладной программы - это делает операционка тогда, когда считает нужным..

Сформулируйте задачу в целом, можеч что и получится посоветовать


 
Digitman   (2003-06-16 15:21) [2]

Зачем они тебе, "прерывания" эти, понадобились вдруг ?
Ядро Win32 работает с прерываниями самостоятельно, на наивысшем уровне привелегий и защиты, взамен этого предоставляя тебе вполне достаточный в большинстве случаев по объему и функц-ти интерфейс для реализации в твоем приложении асинхронных операций ввода/вывода.


 
Федя   (2003-06-16 15:45) [3]

Копай в сторону прерывания 31h, и функции 0300h, это функции DPMI
для программ которые находятся в защищенном режиме и которые хотят вызвать перерывание код которых работает в real-mode


 
Слесарь Матерящийся   (2003-06-16 16:15) [4]

Прерывание в Windows - это когда на экране возникает message box с тремя кнопками: Abort, Retry, Ignore.
Первая кнопка вызывает прерывание.


 
S.G.K.   (2003-06-17 17:04) [5]

Спасибо за ответы. Если я правильно понял, для работы с прерываниями можно использовать процедуры операционной системы, но это рискованно (во-всяком случае для меня как человека, не имеющего такого опыта ). Попробую разобраться, если будет время
- основное мое занятие - это проведение экспериментов по регистрации электрических потенциалов и токов нервных клеток - именно для этой цели и пишу программы. ( запускаемого в обработчике нажатия кнопки) Спасибо за ответы. Если я правильно понял, для работы с прерываниями можно использовать процедуры операционной системы, но это рискованно (во-всяком случае для меня как человека, не имеющего такого опыта ). Попробую разобраться, если будет время
- основное мое занятие - это проведение экспериментов по регистрации электрических потенциалов и токов нервных клеток - именно для этой цели и пишу программы.

А задача у меня следующая:
надо прекратить выполнение некого цикла (запускаемого в обработчике нажатия кнопки) через определенный временной интервал.
Пытался я использовать для этой цели таймер из меню "System"-
(меняя в обработчике таймера состояние переменной, контролирующей цикл), но ничего не получается - таймер во время выполнения цикла не cрабатывает.

Может быть существует какое - нибудь простое решение этой проблемы ?


 
VMcL   (2003-06-17 17:50) [6]

>S.G.K. (17.06.03 17:04)
>таймер во время выполнения цикла не cрабатывает

Application.ProcessMessages



Используй GetTickCount и/или QueryPerformanceCounter+QueryPerformanceFrequency.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-1593
k-man
2003-08-13 20:18
2003.09.01
Странности 2


1-1464
Александр из Минска
2003-08-18 11:46
2003.09.01
TChartFX


7-1695
Chieftain
2003-06-18 18:26
2003.09.01
Есть *.vxd - файл. Как заставить систему видеть *.vxd файл?


3-1334
jack128
2003-08-07 13:35
2003.09.01
Отчет с двумя Summary bands


14-1631
vano
2003-08-14 12:07
2003.09.01
Как восстановить исходники из exe файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский