Главная страница
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.015 c
1-13171
Новенький
2003-05-26 11:35
2003.06.05
TActionPopupMenuBar


14-13471
b@nz@i
2003-04-19 06:33
2003.06.05
2 он-лайн проекта


4-13509
alex134
2003-04-05 18:13
2003.06.05
GetProcessHeaps


1-13130
demonyator
2003-05-25 01:52
2003.06.05
Длина строки символов в пикселях...


9-12990
The_Vizit00r
2002-12-27 13:03
2003.06.05
Народ подскажите, где найти исходник