Autor Beitrag
sibbe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

WIN XP Prof
D7 Prof
BeitragVerfasst: Fr 31.12.04 17:49 
Servus!
Alles was ich machen will, ist eigentlich nur ne selbst erstellte Klasse in ner TList speichern.
Allerdings kommt ich am anfang immer nur auf ne speicherverletzung (eaccessviolation), ka worans liegt.
der code sieht in etwa so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
 type TGameObj = class(TObject)
  public
    Rec: TRect;
    Typ: TObjTyp; //<-- Aufzählungstyp
    constructor Create; //<-- bisher nurn einfaches inherited Create;
    destructor Destroy; override; //<-- bisher nurn einfaches inherited Destroy;
  end;
...

Procedure verpointern;
var AddObj: ^TGameObj;
    i: Integer;
begin
 for i:= 1 to 10 do begin
  New(AddObj);
  AddObj^.Create;
  AddObj^.Rec := Rect(0,0,0,0);
  AddObj^.Typ := Boden;
  List.Add(AddObj);
 end;

end;

Das Ganze hat mit "normalen" Variablen bisher problemlos funktioniert...
thx im voraus

p.s. guten rutsch :)

_________________
Ideale sind wie Sterne: Man kann sie zwar nicht erreichen, aber man kann sich sehr wohl an ihnen orientieren.
(Blaise Pascal)


Zuletzt bearbeitet von sibbe am Fr 31.12.04 18:02, insgesamt 1-mal bearbeitet
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Fr 31.12.04 17:54 
für sowas ist eine Tobjectliste besser geeignet.

außerdem sollte es
ausblenden Delphi-Quelltext
1:
AddObj:=Tobjtyp.Create;					

heißen, oder nicht?

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
sibbe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

WIN XP Prof
D7 Prof
BeitragVerfasst: Fr 31.12.04 18:01 
Keldorn hat folgendes geschrieben:

außerdem sollte es
ausblenden Delphi-Quelltext
1:
AddObj:=Tobjtyp.Create;					

heißen, oder nicht?


AddObject^ := TGameObj.Create; aber kommt aufs gleiche raus: funktioniert :)
werd mir trotzdem nochmal tobjectlist anschaun..
danke bis dahin, vor allem für die schnelle hilfe.

sibbe

_________________
Ideale sind wie Sterne: Man kann sie zwar nicht erreichen, aber man kann sich sehr wohl an ihnen orientieren.
(Blaise Pascal)
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Fr 31.12.04 18:09 
Du brauchst keinen Zeiger auf eine Objektvariable, denn dies ist brerits ein Zeiger. Lass also das Zeigergefummel ganz weg, das brauchst du bei ObjectPascal-Klassen nicht.
Aber nichtsdestotrotz ist eine TObjectList sicher auch nicht schlecht ;)

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind