|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Variable 'x' inaccessible here due to optimization
Немогу понять что от меня хочет компилятор. Не работает код:
Код:
procedure TForm2.Image3Click(Sender: TObject); Type Ank = record FIO : array [1..3] of string[15]; Login1 : string[8]; Pass : string[8]; foto : string[15]; End; pass1 = 'a'..'z'; Var Anketa : Ank; i, x : integer; c : char; begin with Anketa do Begin FIO[1] := Name1.Text; FIO[2] := Name2.Text; FIO[3] := Name3.Text; Login1 := Login.Text; For i:= 1 to length(pas) do Begin c := pas[i]; // а конкретнее вот эти 2 строки, компилятор просто x := ord(c); // их не видит. End; Pass := Pas; End; end; Так же во время Trace в WATCHES на переменные I, C, X пишет "Variable '_' inaccessible here due to optimization" Последний раз редактировалось Gad99, 24.02.2008 в 13:14. |
#2
|
|||
|
|||
Вот ламер долбаный , проблему решил отключением опции "Optimization" в Project/Option/вкладка "Compiler" там на панели "Code generation"
Может кому пригодится |
#3
|
|||
|
|||
Компилятор не видит эти строки, потому что он их удалил. Вы назначаете значения переменным, но нигде в процедуре их не используете. То есть, с точки зрения программы, что есть они, что нет - одинаково. Вот компилятор их и удаляет за ненадобностью.
При отключении оптимизации эти строки остаются, поэтому переменные становятся видимыми для отладчика. |