Форум: "Основная";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
ВнизГде в коде ошибка? Найти похожие ветки
← →
MegaVolt (2003-05-26 13:23) [0]Почему ниже приведённый код вылетает? (в отдельном виде вылетает через 3 нажатия кнопки а в полном коде вообще при первом обращении.)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
Sig=record
Signatura:string;
Len:integer;
Min:integer;
Max:integer;
FixBegin:boolean;
FixEnd:boolean;
end;
WordRec=record
CountSign:integer;
MinWord:integer;
Sign:Array of Sig;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Word: array of WordRec;
CountWord:integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
inc(CountWord);
SetLength(Word,CountWord);
Word[CountWord].CountSign:=0;
Inc(Word[CountWord].CountSign);
{вылетаем тута} SetLength(Word[CountWord].Sign,Word[CountWord].CountSign);
with Word[CountWord].Sign[Word[CountWord].CountSign] do
begin // заполняем начальное значения
Min:=0;
Len:=0;
FixBegin:=false;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CountWord:=0;
end;
end.
Заранее благодарен
← →
MBo (2003-05-26 13:26) [1]SetLength(Word,CountWord);
последний элемент CountWord-1
а ты делаешь
Word[ CountWord].CountSign:=0;
← →
Palladin (2003-05-26 13:26) [2]уменьшай все count при обращению к массиву на один, массив начинается с нуля
← →
MegaVolt (2003-05-26 14:22) [3]Спасибо большое :( Мог бы и сам понять :(
← →
handra (2003-05-26 14:24) [4]Palladin © (26.05.03 13:26)
уменьшай все count при обращению к массиву на один, массив начинается с нуля
Массив начинается с Low(Word), а последний индекc High(Word)... это чтобы не было потом мучительно больно :(
← →
evvcom (2003-05-26 20:55) [5]Избегай названий типа "Word". В юните Windows уже имеется тип WORD, это в дальнейшем избавит от трудночитаемости, двоякопонимаемости и долгоблуждаемости по написанному. (Во завернул!) Используй лучше, например, WordsArray: array ...
← →
Fizmat (2003-05-27 13:13) [6]Массив начинается с Low(Word), а последний индекc High(Word)... это чтобы не было потом мучительно больно :(
В Object Pascal"е нижний индекс динамических массивов (а именно такой используется в программе) всегда равен нулю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c