Eine ganz einfache Anwendung.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, uSprite;
type
TForm1 =
class(TForm)
MemoN: TMemo;
btnAnalyze: TButton;
btnValid: TButton;
MemoValid: TMemo;
procedure FormCreate(Sender: TObject);
procedure btnAnalyzeClick(Sender: TObject);
procedure btnValidClick(Sender: TObject);
private
gS: TNegativeArray;
MaxCount: Integer;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnAnalyzeClick(Sender: TObject);
var
Count: Integer;
rnd: Integer;
begin
Count := 0;
rnd := Random(100);
repeat
inc(Count);
gS.SetLen(Count);
gS[Count].x := Count;
MemoN.Lines.Add(IntToStr(gS[Count].x));
until Count = rnd;
end;
procedure TForm1.btnValidClick(Sender: TObject);
var
i: Integer;
begin
MemoValid.Clear;
for i := 0
to MemoN.Lines.Count
do
if Assigned(gS[i])
then
MemoValid.Lines.Add('
True ' + IntToStr(gS[i].x));
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
gS := TNegativeArray.Create(6);
for i := -5
to 0
do
begin
gS[i] := TSprite.Create;
gS[i].x := i;
MemoN.Lines.Add(IntToStr(gS[i].x) + '
Count ' + IntToStr(MemoN.Lines.Count));
MaxCount := i;
end;
end;
end.
Ich muss jetzt mindestens 100 bzw. Random(100) Einträge addieren können ohne das die negativen Arrays zerstört werden.
Aber!
Beim zweiten Positiven Eintrag kracht es schon.
wie gehabt setData und getData werden vom Linker entfernt.
Sorry ich bekomme das mit dieser Classe nicht geregelt. (Vielleicht hat ja noch irgend jemand eine Idee.)
Wie man am Bild schon erkennen kann sind die ersten 4 Arrays Assigned aber alle Values von X falsch.
Und ich habe noch keine Positive Arrays addiert.
gruss