Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.03;
Скачать: CL | DM;

Вниз

продолжение работы программы после нажатия клавиши   Найти похожие ветки 

 
abajun   (2009-11-13 19:53) [0]

Привет всем! У меня следующий вопрос: как сделать так, чтобы программа в определенном месте останавливалась и ждала ответа пользователя, например, нажатия на пробел или ввод.
Заранее спасибо.


 
intlex   (2009-11-13 20:17) [1]


> abajun   (13.11.09 19:53)

смотря какой интерфейс программы используется,
в консольной, например, процедурой Readln,
если интерфейс графический (с VCL), то выводом окна сообщения ShowWindow

я так понимаю, что речи о многопотоковости пока не идет)


 
abajun   (2009-11-13 20:55) [2]

У меня интерфейс графический, не консольный. И многопотоковости нет.
А можно без окна сообщения? То есть типа следующего: на компоненте Chart рисуется график, но не сразу, а последовательно - после каждого нажатия клавиши на клавиатуре дорисовается еще часть (новый точки добавляются).


 
intlex   (2009-11-13 21:03) [3]

а рисуешь как, в цикле?
если да, тогда можно сделать следующую проверку c помощью функции
GetKeyboardState или что-то подобное


 
intlex   (2009-11-13 21:13) [4]

например, пока не нажата кнопка Enter ждем:

var state: TKeyboardState;
...
repeat
 Application.ProcessMessages;
 GetKeyboardState(state);
until ((state[VK_RETURN] and 128) <> 0);
...


 
abajun   (2009-11-13 21:15) [5]

Рисую в цикле. Вернее в одном из методов класса есть цикл, внутри которого вызывается процедура print, и вот в ней все и рисуется. Что-то мой делфи пишет, что он не знает что эта за функция GetKeyboardState, то есть в хелпе ее нет.


 
intlex   (2009-11-13 21:21) [6]

подключи unit Windows, в делфи 5-7 он есть, а есть ли в старших версиях - не знаю


 
abajun   (2009-11-13 21:35) [7]

Это получается, что цикл работает, а как только нажата Enter он останавливается. А мне наоборот - выполняется процедура, а посередине работа должна прикратиться. А потом, как только нажимается enter - продолжается до того же места и снова ждет нажатия. И это в цикле. А он останавливается по другому критерию. Вот.


 
intlex   (2009-11-13 21:47) [8]

вместо <> поставить =


 
intlex   (2009-11-13 21:48) [9]

странно, у меня работает этот пример)


 
intlex   (2009-11-13 21:53) [10]

вот попробуй

var state: TKeyboardState;
...
repeat
Application.ProcessMessages;
GetKeyboardState(state);
until ((state[VK_RETURN] and 128) <> 0);
state[VK_RETURN] := 0;
SetKeyboardState(state);


 
abajun   (2009-11-13 22:00) [11]

Что-то совсем плохо, сделала так:
 for i:= 0 to 15 do begin
   Chart1.SeriesList.Series[0].AddXY(i,i*i);
   Application.ProcessMessages;
   GetKeyboardState(state);
   if (state[VK_RETURN] and 128) = 0 then continue;
 end;

не работает. то есть не работает, как я хочу - чтобы после addxy останавливался и ждал нажатия enter.


 
intlex   (2009-11-13 22:32) [12]

for i:= 0 to 15 do begin
  Chart1.SeriesList.Series[0].AddXY(i,i*i);
  repeat
    Application.ProcessMessages;
    GetKeyboardState(state);
  until (state[VK_RETURN] and 128) <> 0;
  state[VK_RETURN] := 0;
  SetKeyboardState(state);
end;
а вот так пробовали?


 
abajun   (2009-11-13 22:50) [13]

Пробовала - работает неправильно - после нажатия на ввод for начинает сначала (i = 0), то есть все время рисуется одна и та же точка.


 
intlex   (2009-11-13 23:00) [14]

если есть желание, то мне на мыло можно переслать текст проги, я посмотрю


 
Leonid Troyanovsky ©   (2009-11-14 00:08) [15]


> abajun   (13.11.09 19:53)  

> программа в определенном месте останавливалась и ждала ответа
> пользователя, например, нажатия на пробел или ввод.

Покажи ему в оном месте диалог.
ShowMessage, MessageBox or ShowModa.

--
Regards, LVT.



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

Текущий архив: 2010.01.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
1-1232224539
Igor2010
2009-01-17 23:35
2010.01.03
CheckListBox цвет строки


15-1257419287
Piter
2009-11-05 14:08
2010.01.03
В чем смысл спама от вконтакте?


15-1257179327
Sergey Masloff
2009-11-02 19:28
2010.01.03
Ищу утилиту для поиска дубликатов. Нужен совет


1-1231953992
Тыщ
2009-01-14 20:26
2010.01.03
Как использовать строковые константы в asm..end?


15-1257160759
JohnKorsh
2009-11-02 14:19
2010.01.03
Не посоветует ли кто книгу по работе с сетями из Дельфи?