Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.05;
Скачать: CL | DM;

Вниз

Где в коде ошибка?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
14-13477
Zloy Alien
2003-05-03 08:07
2003.06.05
!!!ТОЛКИЕНИСТАМ!!!


14-13416
DVM
2003-05-19 09:36
2003.06.05
Одн исходник для двух языков программирования. Возможно ли?


14-13468
Sewix
2003-05-09 07:37
2003.06.05
Закончи свою игру Mega Race RG зацените (X)


6-13345
Puzzle
2003-04-02 12:32
2003.06.05
Как определить, что Dial-up соединение уже установлено?


14-13382
EvgeniyR
2003-05-21 10:56
2003.06.05
Помогите с TDBGridEh !!!