Autor Beitrag
JCD
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 09.02.03 22:17 
Hi q all,

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var
   Form1: TForm1;
   Neuron: array of TNeuron;
   le: array of Integer;
   Canvas: TCanvas;
   e: integer;

procedure TForm1.Button3Click(Sender: TObject);
begin
 
 le[1]:=3;
 le[2]:=3;
 le[3]:=1;

 for e := 1 to 7 do
   begin
     Neuron[e] := TNeuron.Create;
   end;

end;


So,ganz simpel,aber es funzt nicht-Fehlermeldung: Exception der Klasse EAccessViolation

Das verstehe wer will...
Thx schon,
Icke
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 09.02.03 22:30 
Du verwendest hier ein dynamisches Array. Dort musst Du erst einmal "PLatz schaffen" für die Einträge, die Du dort unterbringen willst. Initial besitzt ein dynamisches Array keinerlei Einträge. Mit SetLength(array, anzahl) kannst Du festlegen, wieviele Einträge es besitzen soll. Das kannst Du zur Laufzeit beliebig oft ändern. Mit Length(array) bekommst Du die Anzahl der Einträge mit High(array) den höchsten zulässigen Index.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JCD Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 09.02.03 22:36 
aha hmm is mir echt neu irgendwann früher ging das mal...
find ich übrigens ziemlich schwachsinnig das das nich geht da es ja nich von anfang an und wirklich dynamisch ist...aber egal
Aber Danke

-----------
Rock n Roll,
Icke
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 09.02.03 22:58 
Zitat:
find ich übrigens ziemlich schwachsinnig das das nich geht da es ja nich von anfang an und wirklich dynamisch ist...aber egal
Ich bin mir nicht ganz sicher, was Du meinst. Dynamische Arrays heißen ja gerade dynamische Arrays, weil Du erst zur Laufzeit festlegst, welche Größe sie haben sollen. So oft Du willst.
Aber Du must halt schon noch sagen, wieviele Elemente es haben soll. Beispiel:
ausblenden Quelltext
1:
VAR my_array : ARRAY OF Integer;					

Am Anfang hat dieses Array die Länge 0. Es passen folglich auch keine Elemente hinein. Der Befehl
ausblenden Quelltext
1:
SetLength(my_array,1);					

vergrößert das Array nun, sodass ein Element hineinpasst. Wenn Du ein dynamisches Array mit einer Schleife füllen möchtest, machst Du das so:
ausblenden Quelltext
1:
2:
3:
4:
5:
for e := 1 to 7 do 
begin 
  SetLength(Neuron,Length(neuron)+1);
  Neuron[High(Neuron)] := TNeuron.Create;
end;

Mit High(array) erhälst Du immer den höchst zulässigen Index.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".