AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekte gezielt aufrufen

Ein Thema von Tod787 · begonnen am 17. Nov 2008 · letzter Beitrag vom 18. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2      
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#1

Objekte gezielt aufrufen

  Alt 17. Nov 2008, 15:34
Hallo, habe folgendes Problemchen:

Ich habe eine Klasse mit Feldern

Zitat:
TMyclass (Field1, Field2, Field3)
und mehrere Objekte davon

Zitat:
Objekt1 := TMyclass.create
Objekt2 := TMyclass.create mit Feldern
Object3 := TMyclase.create mit Feldern
Wenn ich jetzt eine Variable y habe die von 1-3 geht... Wie schaffe ich das richtige Objekt aufzurufen?

sprich wenn
Zitat:
y = 3
soll
Zitat:
Object3
aufgerufen werden. Da ich mehrere 100 Objekte habe möchte ich auf Verzweigungen verzichten.

Kurz: Gibt es eine Methode mit der man das Ganze so ähnlich schreiben kann wie
Zitat:
object + y.field1 := true;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Objekte gezielt aufrufen

  Alt 17. Nov 2008, 15:38
Pack deine Objekte in eine Delphi-Referenz durchsuchenTObjectList, dann kannst du sie über einen Index ansprechen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#3

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 09:11
Erstmal danke!

Möchte mich an ein Beispiel hier aus dem Forum richten.

Delphi-Quellcode:
var
   liste:TObjectlist;
begin
  liste.add(TObjekt.create('Test1'));
  liste.add(TObjekt.create('Test2'));
end;
Bei mir kommt allerdings eine Fehlermeldung bei der Deklaration.
Was muss denn noch in den "Uses-Teil" damit TObjectlist deklariert werden kann?

Edit: Hat sich erledigt!

type TObjectList = class (Classes.TList); Also nix uses
  Mit Zitat antworten Zitat
automatix

Registriert seit: 1. Mai 2008
Ort: Remscheid
39 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 09:25
Hallo!

Zuerst sollte irgendwo bevor auf die Liste zugegriffen wird ein
list := TObjectList.Create; stehen.

Die uses Anweisung sollte um Contnrs erweitert werden.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 09:26
uses Contnrs; Also doch uses
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#6

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 09:28
Wenn in einem Beitrag etwas so hervorgehoben wird: Delphi-Referenz durchsuchenTObjectList, dann bedeutet es, daß Du dazu etwas in der Onlinehilfe Deines Delphi findest. Wenn du dort nach TObjectList suchst, dann findest Du ganz schnell alle nötigen Informationen.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#7

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 09:51
Guten Morgen Sherlock, danke, hab es dann auch gemerkt

Jetzt hab ich allerdings doch noch ein Problem das in der Hilfe nciht geschildert wird.

Ich möchte nämlich in jeder Zeile der Liste ein Array of TObject haben.

Delphi-Quellcode:
Interface

(...)

type TObject = class(TObject)
    // Felder
    Field1: Single;
    Field2: Single;
    Field3: Integer;
    Field4: Integer;
end;

(...)

var

   MyObject1: array[0..20] of TObject;
   MyObject2: array[0..20] of TObject;
   MyObject3: array[0..20] of TObject;
   MyObject3: ...
   

   liste: TObjectlist;

Implemetation:
   MyObject1 := TObject.create;
   MyObject2 := TObject.create;
   MyObject3 := TObject.create;
   MyObject4 := ...

Wie kann ich das jetzt mit einer Objectlist realisieren?

Meine bescheide Anfänge wären:

Delphi-Quellcode:
Interface

(...)

type TObjectList = class (Classes.TList)
    // Felder
    Field1: Single;
    Field2: Single;
    Field3: Integer;
    Field4: Integer;
end;

(...)

var

   liste: TObjectlist;

Implemetation:

(...)   

begin
    liste.add(TObjekt.create('Test1'));
    liste.add(TObjekt.create('Test2'));
end;
Aber wie bekomme ich das mit Arrays hin?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#8

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 10:15
Also, leg doch in die ObjectList weitere ObjectLists.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 10:20
Und nimm die aus der Unit Contnrs statt einer eigenen Implementierung. Btw: "TObject" als eigener Klassenname ist mehr als unglücklich.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#10

Re: Objekte gezielt aufrufen

  Alt 18. Nov 2008, 10:26
Delphi-Quellcode:
liste.add(TObjekt.create('Test1'));
liste.add(TObjekt.create('Test2'));
Allein wegen dieser beiden Zeilen ist das ganze bisher doch sowieso eher akademischer Natur.



Sherlock
Oliver
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz