Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Oberon
Перезагрузить страницу Каким образом можно прервать длительную операцию в BB
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию Каким образом можно прервать длительную операцию в BB - 16.10.2004, 13:14

Каким образом можно прервать длительную операцию в BB? Интересует либо стандартная комбинация клавиш, либо программный путь (наподобие проверки на какую-л. нажатую комбинацию и прерывание работы).
Ессно, надо хелп курить, но подскажите, плз, какую конкретно тему (темы) из хелпа забивать в трубку?
Ответить с цитированием
  (#2 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию Каким образом можно прервать длительную операцию в BB - 16.10.2004, 13:14

Каким образом можно прервать длительную операцию в BB? Интересует либо стандартная комбинация клавиш, либо программный путь (наподобие проверки на какую-л. нажатую комбинацию и прерывание работы).
Ессно, надо хелп курить, но подскажите, плз, какую конкретно тему (темы) из хелпа забивать в трубку?
Ответить с цитированием
  (#3 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Re: Прерывание длительной операции - 17.10.2004, 20:30

Цитата:
Originally posted by delpher
[b]Каким образом можно прервать длительную операцию в BB?
Ctrl+Break.
Но срабатывает не всегда.

Для длинных задач запускайте вторую копию ББ.
Ответить с цитированием
  (#4 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Re: Прерывание длительной операции - 17.10.2004, 20:30

Цитата:
Originally posted by delpher
[b]Каким образом можно прервать длительную операцию в BB?
Ctrl+Break.
Но срабатывает не всегда.

Для длинных задач запускайте вторую копию ББ.
Ответить с цитированием
  (#5 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию Re: Прерывание длительной операции - 18.10.2004, 14:59

Цитата:
Originally posted by info21+-->
Цитата:
Ctrl+Break.
Но срабатывает не всегда.
По какой причине?
<!--QuoteBegin-info21

[b]Для длинных задач запускайте вторую копию ББ.
Мда... Ответ в стиле: "если программа долго считает, запустите вторую копию Windows"

Тогда другой вопрос - как в программе определить, какая комбинация клавиш нажата в данный момент? По ключевому слову ReadKey (вспомнил турбопаскаль) нашел модуль XYPlane с методом ReadKey. Но к нему есть примечание: "This module is provided for compatibility with the book "Programming in Oberon" by Reiser/Wirth. It is useful when learning the language. It is not recommended for use in production programs." Существует ли метод определения нажатия клавиш (лучше если вместе с модификаторами), который "recommended for use in production programs"?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию Re: Прерывание длительной операции - 18.10.2004, 14:59

Цитата:
Originally posted by info21+-->
Цитата:
Ctrl+Break.
Но срабатывает не всегда.
По какой причине?
<!--QuoteBegin-info21

[b]Для длинных задач запускайте вторую копию ББ.
Мда... Ответ в стиле: "если программа долго считает, запустите вторую копию Windows"

Тогда другой вопрос - как в программе определить, какая комбинация клавиш нажата в данный момент? По ключевому слову ReadKey (вспомнил турбопаскаль) нашел модуль XYPlane с методом ReadKey. Но к нему есть примечание: "This module is provided for compatibility with the book "Programming in Oberon" by Reiser/Wirth. It is useful when learning the language. It is not recommended for use in production programs." Существует ли метод определения нажатия клавиш (лучше если вместе с модификаторами), который "recommended for use in production programs"?
Ответить с цитированием
  (#7 (permalink)) Старый
Trurl Trurl вне форума
Member
 
Сообщений: 108
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.08.2004
По умолчанию 18.10.2004, 18:31

Стандартная комбинация Ctrl+Break. У меня всегда срабатывает.

Как раз определение нажатия клавиш "not recommended for use in production programs". А так ReadKey вполне нормально. Но если надо вместе с модификаторами -> win32.hlp .

А в ObxActions пример как делать кооперативную многозадачность.
Ответить с цитированием
  (#8 (permalink)) Старый
Trurl Trurl вне форума
Member
 
Сообщений: 108
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.08.2004
По умолчанию 18.10.2004, 18:31

Стандартная комбинация Ctrl+Break. У меня всегда срабатывает.

Как раз определение нажатия клавиш "not recommended for use in production programs". А так ReadKey вполне нормально. Но если надо вместе с модификаторами -> win32.hlp .

А в ObxActions пример как делать кооперативную многозадачность.
Ответить с цитированием
  (#9 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию 18.10.2004, 20:57

Может, у кого-то исходник XYPlane есть? Хочу посмотреть реализацию ReadKey. Разве проверить нажатую комбинацию средствами BB так уж невозможно (хотя даже турбопаскаль это может) и надо юзать WinAPI?
Ответить с цитированием
  (#10 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию 18.10.2004, 20:57

Может, у кого-то исходник XYPlane есть? Хочу посмотреть реализацию ReadKey. Разве проверить нажатую комбинацию средствами BB так уж невозможно (хотя даже турбопаскаль это может) и надо юзать WinAPI?
Ответить с цитированием
  (#11 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Re: Прерывание длительной операции - 19.10.2004, 12:00

Цитата:
Originally posted by delpher+-->
Цитата:
Цитата:
Originally posted by info21@
[b]Ctrl+Break.
Но срабатывает не всегда.
По какой причине?
<!--QuoteBegin-info21
Цитата:
[b]Для длинных задач запускайте вторую копию ББ.
Мда... Ответ в стиле: "если программа долго считает, запустите вторую копию Windows"
Сосредоточьтесь на контенте и своей задаче.

Цитата:
Originally posted by delpher
[b]Тогда другой вопрос - как в программе определить, какая комбинация клавиш нажата в данный момент?
Ports.Frame.Input
Ответить с цитированием
  (#12 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Re: Прерывание длительной операции - 19.10.2004, 12:00

Цитата:
Originally posted by delpher+-->
Цитата:
Цитата:
Originally posted by info21@
[b]Ctrl+Break.
Но срабатывает не всегда.
По какой причине?
<!--QuoteBegin-info21
Цитата:
[b]Для длинных задач запускайте вторую копию ББ.
Мда... Ответ в стиле: "если программа долго считает, запустите вторую копию Windows"
Сосредоточьтесь на контенте и своей задаче.

Цитата:
Originally posted by delpher
[b]Тогда другой вопрос - как в программе определить, какая комбинация клавиш нажата в данный момент?
Ports.Frame.Input
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию Re: Прерывание длительной операции - 19.10.2004, 12:45

Цитата:
Originally posted by in+-->
Цитата:
<!--QuoteBegin-delpher
Цитата:
[b]Тогда другой вопрос - как в программе определить, какая комбинация клавиш нажата в данный момент?
Ports.Frame.Input
Вот мой модуль, выводящий простые числа от 3 до Upper. Пока заточен под XYplane.ReadKey(). Продемонстрируйте, плз, как переделать его на Ports.Frame.Input.
Тем более, что, насколько я понял по документации( "Polls the current mouse location and tells whether the mouse button is currently pressed. All coordinates are in pixels. In modifiers, the currently pressed modifier keys are returned, like Controllers.doubleClick, Controllers.extend, Controllers.modify, and possibly additional platform-specific modifiers."), он перехватывает только мышь, пусть и с модификаторами.

Код:
MODULE Test;

IMPORT S:=StdLog, Srv:=Services, XYplane;

TYPE
    String = ARRAY 255 OF CHAR;

CONST
    Upper = 100000;
    
VAR
    a: String;

PROCEDURE TestNumber(num: INTEGER): BOOLEAN;
VAR
    j: INTEGER;
BEGIN
    FOR j:=2 TO (num DIV 2) DO
  IF (num MOD j) = 0 THEN
      RETURN (FALSE);
  END;
    END;
    RETURN (TRUE);
END TestNumber;

PROCEDURE Primes();
VAR
    i: INTEGER;
BEGIN
    FOR i:=3 TO Upper BY 2 DO
  IF (XYplane.ReadKey() = 'q') THEN
      RETURN;
  END;
  IF TestNumber(i) THEN
      (* S.Ln; S.Int(i); *)
  END;
    END;
END Primes;

PROCEDURE Test*;
VAR
    tick: LONGINT;
BEGIN
    S.String("BEGIN");
    tick := Srv.Ticks();
    Primes;    
    tick := Srv.Ticks() - tick;
    S.Ln; S.String("END Ticks="); S.Int(tick); S.Ln;
END Test;

END Test.
(*(!)"Test.Test"*)
Ответить с цитированием
  (#14 (permalink)) Старый
delpher delpher вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.05.2003
По умолчанию Re: Прерывание длительной операции - 19.10.2004, 12:45

Цитата:
Originally posted by in+-->
Цитата:
<!--QuoteBegin-delpher
Цитата:
[b]Тогда другой вопрос - как в программе определить, какая комбинация клавиш нажата в данный момент?
Ports.Frame.Input
Вот мой модуль, выводящий простые числа от 3 до Upper. Пока заточен под XYplane.ReadKey(). Продемонстрируйте, плз, как переделать его на Ports.Frame.Input.
Тем более, что, насколько я понял по документации( "Polls the current mouse location and tells whether the mouse button is currently pressed. All coordinates are in pixels. In modifiers, the currently pressed modifier keys are returned, like Controllers.doubleClick, Controllers.extend, Controllers.modify, and possibly additional platform-specific modifiers."), он перехватывает только мышь, пусть и с модификаторами.

Код:
MODULE Test;

IMPORT S:=StdLog, Srv:=Services, XYplane;

TYPE
    String = ARRAY 255 OF CHAR;

CONST
    Upper = 100000;
    
VAR
    a: String;

PROCEDURE TestNumber(num: INTEGER): BOOLEAN;
VAR
    j: INTEGER;
BEGIN
    FOR j:=2 TO (num DIV 2) DO
  IF (num MOD j) = 0 THEN
      RETURN (FALSE);
  END;
    END;
    RETURN (TRUE);
END TestNumber;

PROCEDURE Primes();
VAR
    i: INTEGER;
BEGIN
    FOR i:=3 TO Upper BY 2 DO
  IF (XYplane.ReadKey() = 'q') THEN
      RETURN;
  END;
  IF TestNumber(i) THEN
      (* S.Ln; S.Int(i); *)
  END;
    END;
END Primes;

PROCEDURE Test*;
VAR
    tick: LONGINT;
BEGIN
    S.String("BEGIN");
    tick := Srv.Ticks();
    Primes;    
    tick := Srv.Ticks() - tick;
    S.Ln; S.String("END Ticks="); S.Int(tick); S.Ln;
END Test;

END Test.
(*(!)"Test.Test"*)
Ответить с цитированием
  (#15 (permalink)) Старый
Fktrc Fktrc вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.10.2004
По умолчанию 20.10.2004, 07:20

Народ, где можно нарыть туториал по ВВ на русском или хотя бы примеры из ВВ, откомментированные по русски и с пояснениями помимо комментариев?
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каким образом можно узнать IP с сервера Exmap .NET 0 14.04.2008 20:54
Как прервать операцию AZzz C++ Builder 5 12.02.2008 08:05
RGB каким образом можно реализовать цветовую картинку SH@DOW Delphi 4 12.07.2007 10:58
Каким образом можно удаленно запустить программу imported_AlterEgo WinAPI 7 23.02.2005 17:56
Каким образом можно рисовать на Web-странице AleksT_0 .NET 7 03.02.2005 16:16
Каким образом можно синхронизировать текст и музыку Лиза Delphi 0 24.07.2004 19:20
Каким образом можно вывести на экран кириллицу MVC++6.0 Glorf Visual C++ 2 27.02.2004 23:40
Каким образом можно определить PID процесса M.I.C. Assembler 0 17.01.2004 04:10
Каким образом можно рисовать на экране Cyber C++ Builder 3 29.10.2002 10:25
Каким образом можно скачать котировки forex usd Anonymous C++ Builder 1 27.10.2002 22:36
Каким образом можно скачать катировки Usd и Chf Anonymous C++ Builder 0 21.10.2002 00:08
Каким образом можно организовать сабж XKiller PostgreSQL 3 29.07.2002 17:07



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов