![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Internal error L594 [D6, Win2k]
Petukhov © (2005-03-15 11:21:00)Добрый день.
В модуле, связанном с главной формой описано :
LF : integer;
Filter : array of array of integer;
В FormCreate
LF:=3;
SetLength(Filter,LF);
for I:=0 to LF-1 do begin
SetLength(Filter[I],LF);
for J:=0 to LF-1 do Filter[I,J]:=0;
end;
В другой форме
procedure TFFiltrStrn2.SpinEdit1Change(Sender: TObject);
var N,I,J : integer;
begin
try
N:=SpinEdit1.Value;
except
exit
end;
//
LF:=N;
//
SetLength(Filter,LF);
for I:=0 to LF-1 do SetLength(Filter[I],LF);
После добавления двух последних строчек только при попытке
Project - Build...
возникает сообщение Internal error L594
Project - Compile и Run - Run проходят
Сталкивался ли кто-нибудь с подобной ситуациеей?
VMcL (2005-03-15 12:23:00) [1]2 [2]
...обновления...
VMcL (2005-03-15 12:19:00) [2]>> Petukhov (15.03.05 11:21)
Все обновление для D6 установлены?
Defunct (2005-03-15 11:49:00) [3]Ошибка компилятора, там видимо вас еще попросили срочно написать в борланд письмо с вложением кода, который вызвал эту ошибку.
а вот это компилируется:
Type
TVector = Array of Integer;
TMatrix = class
private
Vectors : Array of TVector;
fDegree : integer;
function GetItem(ACol, ARow: Integer): integer;
procedure SetItem(ACol, ARow: Integer; const Value: integer);
public
property Items[ACol, ARow: Integer]: integer read GetItem write SetItem;
procedure SetDegree( Degree: Integer);
constructor Create( Degree: Integer);
destructor Destroy;
end;
..
..
constructor TMatrix.Create;
begin
SetDegree( Degree );
end;
procedure TMatrix.SetDegree;
var
i : integer;
begin
if Degree <= 0 then
raise Exception.Create('Недопустимое значение размерности: D='+IntToStr(Degree) );
fDegree := Degree;
SetLength( Vectors, fDegree);
for i := 0 to fDegree-1 do
SetLength( Vectors[i], fDegree )
end;
function TMatrix.GetItem(ACol, ARow: Integer): integer;
begin
if (ACol<0) or (ARow < 0) or (ACol >= fDegree) or (ARow >= fDegree) then
raise Exception.Create(
Format('Выход индекса за границу (ACol=%D, ARow=%D)',[ACol, ARow]) );
Result := Vectors[ACol][ARow];
end;
procedure TMatrix.SetItem(ACol, ARow: Integer; const Value: integer);
begin
if (ACol<0) or (ARow < 0) or (ACol >= fDegree) or (ARow >= fDegree) then
raise Exception.Create(
Format('Выход индекса за границу (ACol=%D, ARow=%D)',[ACol, ARow]) );
Vectors[ACol][ARow] := Value;
end;
destructor TMatrix.Destroy;
var
i : integer;
begin
for i := 0 to fDegree do
SetLength(Vectors[i], 0);
SetLength(Vectors, 0);
end;