Autor Beitrag
Bestzeller
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 22.04.09 20:16 
Hi,
Ich hab ein eigenes Objekt erstellt und jedes mal wenn ich ein neues erstelle ,das alte aber noch behalten will, muss ich oben var object1,object2,....:Myobject hinschreiben, gibt es da auch eine andere Möglichkeit, soddass ich das nur einmal da stehen haben muss?
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 22.04.09 20:22 
Du kannst Arrays (dynamische in dem Fall) oder eine TObjectList verwenden.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Bestzeller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 22.04.09 20:33 
Danke für die schnelle antwort!

Würde es dann object:array of Myobject heißen oder wie mach ich das ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 22.04.09 20:36 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  MyList: TObjectList;
begin
  MyList := TObjectList.Create;
  MyList.OwnsObjects := True;

  ...
  MyList.Add(MeinObject);
  ...
  TMyObject(MyList[0]). ...
  ...

  MyList.Free;
end;
Bestzeller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 22.04.09 21:08 
Ich komm mit der Tobjectlist nicht klar, welche uses braucht man für die? Und ist es egal wenn alle Objekte darin den gleichen Namen haben? Und sprech ich das erste Objekt so an : TMyObject(MyList[0]) ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 22.04.09 21:16 
user profile iconBestzeller hat folgendes geschrieben Zum zitierten Posting springen:
Ich komm mit der Tobjectlist nicht klar, welche uses braucht man für die?

Siehe Hilfe: Contnrs ;-)

user profile iconBestzeller hat folgendes geschrieben Zum zitierten Posting springen:
Und ist es egal wenn alle Objekte darin den gleichen Namen haben?
Der Name einer Komponente hat keine Bedeutung dabei, allerdings können auf einem Forumlar nicht mehrere des gleichen Namens liegen.

Ich vermute du meinst die Bezeichnung der Variablen, die du da hineinlegst? Du packst da nur das Objekt bzw. dessen Adresse hinein, das hat mit dem Variablennamen in Delphi gar nix zu tun.

user profile iconBestzeller hat folgendes geschrieben Zum zitierten Posting springen:
Und sprech ich das erste Objekt so an : TMyObject(MyList[0]) ?
Richtig, wobei TMyObject eben der Typ deines Objekts ist.
Bestzeller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 22.04.09 21:30 
Danke dir , aber er kennt Tobjectlist immer noch nicht. Gibt es das schon bei Delphi 4? Wenn nein weiß ich wieso.^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 22.04.09 21:45 
Delphi 4? Da gibts das vielleicht noch nicht. Gibts nen Grund, dass du nicht nur eine so uralte sondern auch noch eine relativ fehlerbehaftete Version benutzt?

Sonst würde ich dir Turbo Delphi empfehlen, das ist eine kostenlose Version von Delphi 2006 Professional, in die man nur keine zusätzlichen Packages installieren kann. Man muss also zusätzliche Komponenten manuell erzeugen.
Dafür sind z.B. viele Internet- und DB-Komponenten bereits dabei.

Bei dir kannst du TList benutzen, musst dich aber um die Freigabe dann selbst kümmern.
Bestzeller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Sa 25.04.09 19:24 
Das liegt daran, dass wir in der Schule noch Delphi 4 haben ;)
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: So 26.04.09 02:21 
Tja, als Lösung blieben dann die schon genannten Arrays übrig, müsste sich was zu finden lassen :)

Im Prinzip könntest du dir deine TObjectList auch einfach selbst programmieren. Das könntest du für den einfachen Fall noch so gestalten, dass jedes dieser Objekte einen Zeiger auf ein weiteres(seinen Nachfolger) erhält.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
type
  TMyObject = class(TObject)
  private
    FNext: TMyObject;
  public
    destructor Destroy; override;
    procedure AppendSuccessor;
  end;


destructor TMyObject.Destroy;
begin
  FNext.Free;
  inherited Destroy;
end;

procedure TMyObject.AppendSuccessor;
begin
  FNext := TMyObject.Create;
end;


mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 26.04.09 03:44 
TList gibt es wie gesagt dort bereits. Nur die automatische Freigabe mit TObjectList eben nicht.

Heißt: Die Objekte müssen nicht nur in die Liste eingefügt werden, sondern beim Löschen aus der Liste auch wieder aus dem Speicher entfernt werden mit Free, genauso beim Beenden des Programms.