Замерки и приглючения
Wolfram
дневник заведен 29-09-2007
закладки:
цитатник:
дневник:
хочухи:
местожительство:
Крым, Украина
интересы [23]
[1] 21-01-2013 02:20
Хе-хе.

[Print]
tarakan4ik.blogspot.ru
01-03-2009 00:05 Индусский кодинг
var i, max: integer;
List: TList;
stop: boolean;

begin
max := Memo1.Lines.Count;
if Button6.Caption = 'Перемешать!' then
begin
Button6.Caption := 'Хватит!';
Randomize;
while not stop do
begin
Application.ProcessMessages;
Memo1.Lines.Move(Random (max), Random (max));
end;
end
else
begin
button6.Caption := 'Перемешать!';
stop := true;
end;
end;

Почему выделенное зеленым не обрабатывается?
Комментарии:
02-03-2009 14:00
По всей видимости потому, что stop задана локально в процедуре и инициализируется нулём при повторном запуске.
Полный код в студию! =)
Камрад
Это и есть полный код процедуры.
В том то и фишка. Дебаггер показывает, что мы попадаем в ветку после else, в частности, вот этот код button6.Caption := 'Перемешать!'; исполняется. А выделенное зеленым - нет.
03-03-2009 19:23
В Project -> Options -> Compiler отключи Optimization. А потом правь ошибки, ибо код всё равно работать не будет.
Камрад
Код я переписал, он работает. Отказался вообще от дополнительной переменной, просто сам факт...
04-03-2009 09:51
Если бы ты обращал внимание на hint, который тебе подсказывает Delphi, ты бы увидел, что у тебя "Value assigned to 'stop' never used". При включённой оптимизации срабатывает анти-индус-система, которая попросту удаляет это присваивание, т.к. в нём нет толку.

Ваш комментарий:
Камрад:
Гость []
Комментарий:
[смайлики сайта]
Дополнительно:
Автоматическое распознавание URL
Не преобразовывать смайлики
Cкрыть комментарий
Закрыть