HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #6371  
Старый 28.04.2010, 21:32
HakaR
Участник форума
Регистрация: 23.07.2009
Сообщений: 261
Провел на форуме:
4435957

Репутация: 539
По умолчанию

Перед началом цикла присвой переменной, значение true.
Код кинь.
 
Ответить с цитированием

  #6372  
Старый 28.04.2010, 21:34
JnK
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме:
188563

Репутация: 52
По умолчанию

Цитата:
Сообщение от stepashka_  
Подскажите как при нажатии на button остановить цикл while
глобально
PHP код:
flag:boolean=true
В потоке
PHP код:
while flag do
begin
  что то делаем
end

клавиша
PHP код:
procedure TForm1.Button1Click(SenderTObject);
begin
  Flag
:=false;
end

P.s. Команда Break останавливает работу цикла.
 
Ответить с цитированием

  #6373  
Старый 28.04.2010, 21:59
stepashka_
Познавший АНТИЧАТ
Регистрация: 09.11.2009
Сообщений: 1,077
Провел на форуме:
7879791

Репутация: 265


Отправить сообщение для stepashka_ с помощью ICQ
По умолчанию

А for ... to ... do как остановить и потом продолжить?
 
Ответить с цитированием

  #6374  
Старый 28.04.2010, 22:10
qwert135
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме:
33126

Репутация: 0
По умолчанию

Всем привет.Народ, плиз помогите дописать прогу(паскаль). Она рисует куб и мне теперь надо закрасить все его грани поочередно

Код:
Program lab4;
uses graph, crt;
var
	x, y, a, c, Driver, Mode:integer;
	
begin
	Driver := detect;
	Mode := VGA;
	InitGraph(Driver, Mode, 'C:\FPC\2.2.0\bin\i386-win32');
	clrscr;
	x:=200;
	y:=200;
	a:=100;
	c:=20;
	
	{основание нижнее}
    setcolor(15);
    line(x,y,x+a,y);
    line(x+a,y, x+a+a div 2, y-a div 2);
    line(x,y,x+a div 2, y-a div 2);
    line (x+a div 2, y-a div 2, x+a+a div 2, y-a div 2 );
    {Верхнее основание}
    line(x,y-a, x+a, y-a);
    line(x+a,y-a, x+a+a div 2, y-a-a div 2);
    line(x,y-a,x+a div 2, y-a-a div 2);
    line (x+a div 2, y-a-a div 2, x+a+a div 2, y-a-a div 2 );

    {передняя грань}
	line(x,y,x, y-a);
	line(x+a,y, x+a, y-a);

    {боковая грань }
	line (x+ a div 2, y-a div 2, x+ a div 2, y -a div 2 -a);

    {боковая грань 2 }
	line (x+a+ a div 2, y-a div 2, x+a+a div 2, y-a div 2 -a);
	
	readln;
	CloseGraph;
end.
заранее благодарен.
 
Ответить с цитированием

  #6375  
Старый 28.04.2010, 22:13
lark1n
Новичок
Регистрация: 23.02.2009
Сообщений: 13
Провел на форуме:
74303

Репутация: 0
По умолчанию

Доброго времени суток!
Возник вопрос:
Как написать на С++ строку с Паскаля:
CONST st:Array[0..1] of String [5]=('left','right');
 
Ответить с цитированием

  #6376  
Старый 28.04.2010, 22:24
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме:
4761503

Репутация: 229
По умолчанию

Цитата:
Сообщение от stepashka_  
А for ... to ... do как остановить и потом продолжить?
сверяешь глобальную boolean переменую в начале цикла (между begin ... end), и если она true, то прекращаешь цикл процедурой break; ну и на кнопку ставишь присвоение этой boolean переменой значения true
 
Ответить с цитированием

  #6377  
Старый 28.04.2010, 23:22
EndLeSSDre@M
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
Провел на форуме:
3055344

Репутация: 259
Отправить сообщение для EndLeSSDre@M с помощью ICQ
По умолчанию

ОМГ вы опять друг другу мозг выносите)))) stepashka все очень просто!

объявляем глобальную переменную:

PHP код:
Form1TForm1;
StopBoolean False
вот сам цикл:

PHP код:
procedure TForm1.Button1Click(SenderTObject);
i:integer;
begin
Button2
.Enabled:=True;
Button1.Enabled:=False;
Stop:=False;
for 
i:=1 to n do
begin
//тут код
Application.ProcessMessages;
if 
not stop then break;
end;
end
вот код остановки:

PHP код:
procedure TForm1.Button2Click(SenderTObject);
begin
Stop
:=True;
Button2.Enabled:=False;
Button1.Enabled:=True;
end
и усе))) для тех кто решит спросить зачем я делал вот так:
PHP код:
Button2.Enabled:=False;
Button1.Enabled:=True
для того что бы в случае срабатывания этого кода:
PHP код:
Application.ProcessMessages
не было возможности заново запустить цикл!

дополняю:

Цитата:
А for ... to ... do как остановить и потом продолжить?
для этого можешь начальную позицию цикла объявить в глобальной переменной! и потом при нажатии он будет продолжать с того места, где закончил, например:

объявляем глобальную переменную:

PHP код:
Form1TForm1;
StopBoolean False;
k:integer
теперь, при остановке цикла, переменная будет оставлять свое значение там где остановилась... а чтобы обнулить можешь сделать 3 кнопку, которая будет обнулять счетчик

вот код для первой кнопки с самим циклом:

PHP код:
procedure TForm1.Button1Click(SenderTObject);
i:integer;
begin
Button2
.Enabled:=True;
Button1.Enabled:=False;
Stop:=False;
for 
i:=k to n do
begin
//тут код
Application.ProcessMessages;
if 
not stop then break;
k:=k+1;
end;
end
тем самым, если остановили, то в k останется то значение, на котором остановились!

пы сы еси есть какие то недочеты, то не ругайте, писал на пьяную голову

Последний раз редактировалось EndLeSSDre@M; 29.04.2010 в 11:41..
 
Ответить с цитированием

  #6378  
Старый 29.04.2010, 01:26
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Цитата:
if stop:=true then...
Прекратите так писать, видеть не могу уже
if stop then.....
if not stop then.....
 
Ответить с цитированием

  #6379  
Старый 29.04.2010, 06:58
RumShun
Постоянный
Регистрация: 27.10.2008
Сообщений: 380
Провел на форуме:
1249808

Репутация: 149
Отправить сообщение для RumShun с помощью ICQ
По умолчанию

помойму если чтото надо приостанавливать, а потом запускать, рациональней использовать потоки.
 
Ответить с цитированием

  #6380  
Старый 29.04.2010, 10:23
EndLeSSDre@M
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
Провел на форуме:
3055344

Репутация: 259
Отправить сообщение для EndLeSSDre@M с помощью ICQ
По умолчанию

Цитата:
Сообщение от RumShun  
помойму если чтото надо приостанавливать, а потом запускать, рациональней использовать потоки.
Полностью с тобой согласен! Но так как я не умею ими пользоваться, поэтому и пишу не через потоки надо учить
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ