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

Вниз

Ошибки переменных   Найти похожие ветки 

 
DagOT-R ©   (2011-06-02 12:24) [0]

Столкнулся с такой ошибкой: переменная, изменяющаяся в цикле for, внутри вложенного цикла, ведет себя некорректно.

Скриншот в run-time на точке останова:
http://i036.radikal.ru/1106/80/ec3f368ec207.png
я наскоряк заменил все вхождения этой переменной на integer(a), вроде пишет результат правильно, но все равно далее функции не работают корректно. Уточняю: все использованные переменные - типа integer, переменная "а" - внутри цикла. На всякий случай переустановил делфи - результат тот же. Подскажите, что нужно делать/не делать, чтобы впоследствии таких непоняток не происходило.


 
DagOT-R ©   (2011-06-02 12:32) [1]

добавлю:
а изменяется примерно так:


var a, b, dopusk: integer;
begin
...
for a:=0 to dopusk*2 do
 for b:=1 to 9 do
   begin
     ...//та самая проверка условия
   end;
...


 
sniknik ©   (2011-06-02 12:34) [2]

http://delphimaster.net/view/15-1305447899/


 
DagOT-R ©   (2011-06-02 13:00) [3]

разверну мысль. Часть кода:


...
   bit1.Canvas.Brush.Color:=clred;
   bit1.Canvas.Pen.Style:=psclear;
   bit1.Canvas.Pen.Width:=3;
   bit1.Canvas.Brush.Style:=bssolid;
   bit1.Canvas.Rectangle(rect(0, 0, image1.picture.Bitmap.Width, image1.picture.Bitmap.Height));
   bit1.Canvas.Brush.Color:=clgreen;
   bit1.Canvas.Brush.Style:=bsclear;
   bit1.Canvas.Pen.Style:=psSolid;
//    bit1.Canvas.moveto(5, 5); bit1.Canvas.LineTo(image1.picture.Bitmap.Width-30, image1.picture.Bitmap.Height-30);
   for b:=1 to 9 do
     if (form1.SpinEdit1.Value-dopusk+integer(a) > 0)and(integer(a)<dopusk*2) then
       begin
         poi:=point(ZeroPoint.X-((panel1.Height-30-ZeroPoint.Y) div (dopusk*2)-3)*integer(a)+b*GraphSize.X div 10, ZeroPoint.y-round(GraphSize.Y*graphic(form1.SpinEdit1.Value+integer(a)-dopusk, b/10))+1+((panel1.Height-30-ZeroPoint.Y)div (dopusk*2)-3)*integer(a));
         bit1.Canvas.moveto(poi.X, poi.Y);
         poi:=point(ZeroPoint.X-((panel1.Height-30-ZeroPoint.Y) div (dopusk*2)-3)*(integer(a)+1)+b*GraphSize.X div 10, ZeroPoint.y-round(GraphSize.Y*graphic(form1.SpinEdit1.Value+(integer(a)+1)-dopusk, b/10))+1+((panel1.Height-30-ZeroPoint.Y)div (dopusk*2)-3)*(integer(a)+1));
         bit1.Canvas.LineTo(poi.X, poi.Y);
       end;
...


если убрать комментарий,, выделенный жирным текстом, то тот код рисует линию как надо. Однако, функции moveto/lineto внутри не рисуют вообще. Думал, рисуют за пределами канвы, вывел результаты расчета в переменную poi - в ней все значения верны.


 
DagOT-R ©   (2011-06-02 13:37) [4]

Все, нашел в чем проблема. Тема закрыта.


 
DiamondShark ©   (2011-06-02 14:02) [5]


>  переменная, изменяющаяся в цикле for, внутри вложенного
> цикла, ведет себя некорректно.

Стрелять-колотить. Когда ж вы все передохните-то, находители, блин.



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

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

Наверх




Память: 0.46 MB
Время: 0.002 c
15-1306725161
Andrey)Msk
2011-05-30 07:12
2011.09.18
План закупок оргтехники


15-1306699762
LDV
2011-05-30 00:09
2011.09.18
распознавание текста


15-1306479827
xayam
2011-05-27 11:03
2011.09.18
Страны, города, языки и т.д.


15-1306873798
Юрий
2011-06-01 00:29
2011.09.18
С днем рождения ! 1 июня 2011 среда


2-1307083946
TKN
2011-06-03 10:52
2011.09.18
Стереть информацию с дискеты (флеш-диска)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский