Вниз
Скачать: CL | DM;

Access Violation   Найти похожие ветки 

 
nitrino ©   (2005-08-18 16:24) [0]

Hi Всем!

Может кто подскажет в чем проблема...

Есть

type
 TCellState = record
   IsActive : Boolean;
   Letter : Char;
   Description : string [255];
   end;
TCW = array of array of TCellState;

var
CW : TCW;

при попытке в другой процедуре написать

var
NewCell : TCellState;
..
CW[X,Y] := NewCell;

вылетает с Access Violation.

Спасибо!


 
Anatoly Podgoretsky ©   (2005-08-18 16:31) [1]

За памятью надо следить.


 
MetalFan ©   (2005-08-18 16:33) [2]

а где SetLength?


 
nitrino ©   (2005-08-18 16:35) [3]

SetLength есть, до вызова процедуры:
SetLength (CW,I,K);

..

CW[X,Y] := NewCell; //попадает в диапазон памяти


 
Anatoly Podgoretsky ©   (2005-08-18 16:36) [4]

nitrino ©   (18.08.05 16:35) [3]
А точно есть? А процедура тоже точно?


 
nitrino ©   (2005-08-18 16:38) [5]

Полный вариант:

procedure SetCellState (X, Y : Integer; Active : Boolean; Letter : Char; Description : string);

type
 TCellState = record
   IsActive : Boolean;
   Letter : Char;
   Description : string [255];
   end;

 TCW = array of array of TCellState;

var
 CW : TCW;

...

procedure TfrmMain.SetCellState(X, Y : Integer; Active : Boolean; Letter : Char;
                              Description : string);
var
CellState : TCellState;
begin
CellState.IsActive := Active;
CellState.Letter := Letter;
CellState.Description := Description;
CW[X,Y] := CellState;
end;


 
nitrino ©   (2005-08-18 16:40) [6]

Ой, забыл :)

procedure TfrmMain.CreateNewCW(X,Y : Integer);
var
I,K : Integer;
begin
SetLength (CW,X,Y);
for I := 0 to X-1 do
 for K := 0 to Y-1 do
   SetCellState (I,K,True,#0,"");

end;


 
MetalFan ©   (2005-08-18 16:52) [7]


> var
> CellState : TCellState;
> begin
> CellState.IsActive := Active;
> CellState.Letter := Letter;
> CellState.Description := Description;
> CW[X,Y] := CellState;

а зачем так, если можно написать:

> begin
> CW[X,Y].IsActive := Active;
> CW[X,Y].Letter := Letter;
> CW[X,Y].Description := Description;

?


 
nitrino ©   (2005-08-18 16:56) [8]

О! заработало :)) спасибо!



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

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.973 c
5-1098864782
Sysa
2004-10-27 12:13
2005.09.11
Как сделать свою кнопку


1-1124392517
myfik
2005-08-18 23:15
2005.09.11
Подскажите как подключить *.obj от С++ к моему проекту


14-1124298671
lookin
2005-08-17 21:11
2005.09.11
Подсветка синтаксиса в Delphi6


2-1123622905
MS-REM
2005-08-10 01:28
2005.09.11
А можно из созданой таблиц в MSSQL получить их SQL запросы?


3-1122557914
Gavrila
2005-07-28 17:38
2005.09.11
Как создать DBF для 1С ?




   Наверх