forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Delphi (http://forum.boolean.name/forumdisplay.php?f=66)
-   -   Invalid Pointer operation (http://forum.boolean.name/showthread.php?t=8153)

Acolyte 06.04.2009 18:16

Invalid Pointer operation
 
После нескольких нажатий кнопки вываливается ошибка(сабж).
Подскажите, что не правильно сделано в процедуре генерации данных(или не в ней) :(
Код:

unit MForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TMainForm = class(TForm)
    DataGroupBox: TGroupBox;
    CoreAmountLabel: TLabel;
    TaskVectorLabel: TLabel;
    OrderedTaskVector: TLabel;
    GenerateDataButton: TButton;

    procedure FormCreate(Sender: TObject);
    procedure GenerateDataButtonClick(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  MainForm: TMainForm;
  CoreAmount: integer;
  TaskVector: array of integer;

  TaskAmount:byte;

implementation

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
begin
 CoreAmount:=3;
 MainForm.CoreAmountLabel.Caption:=IntToStr(CoreAmount);

end;

procedure TMainForm.GenerateDataButtonClick(Sender: TObject);
var i:byte;
    TaskVectorString: string[50];
begin
 Randomize;
 TaskAmount:=Random(6)+30;
 SetLength(TaskVector,TaskAmount);
 TaskVectorString:='';

 for i:=1 to TaskAmount do begin
 TaskVector[i]:=Random(6)+35;
 TaskVectorString:=TaskVectorString + ' ' + IntToStr(TaskVector[i]);
 end;
 TaskVectorLabel.Caption:=TaskVectorString;

end;

end.


HolyDel 06.04.2009 19:54

Ответ: Invalid Pointer operation
 
массивы вроде с 0-ля индексируются
строки с 1-цы, так как в 0-м у них хранится длина (вроде как).
попробуй так:
for i:=0 to TaskAmount-1 do begin

Acolyte 06.04.2009 21:39

Ответ: Invalid Pointer operation
 
O_O

Спасибо,заработало :D


Часовой пояс GMT +4, время: 08:59.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot