AGB  ·  Datenschutz  ·  Impressum  







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

Viele Daten per Function übergeben

Ein Thema von everdream · begonnen am 11. Jun 2007 · letzter Beitrag vom 12. Jun 2007
Antwort Antwort
Benutzerbild von everdream
everdream

Registriert seit: 22. Feb 2007
Ort: Hiddenhausen
192 Beiträge
 
Delphi 2005 Personal
 
#1

Viele Daten per Function übergeben

  Alt 11. Jun 2007, 01:41
Heyho,
meine situation sieht etwa wie folgt aus: (habe 2 Klassen)
HauptKlasse:
Delphi-Quellcode:
unit mMain;

interface

uses
mObject;
type
  TMain = class

  private
    Objects: Array[1..10] of TObject;
  public
    prucedure DatenAusgeben;
  end;

implementation

[...] {Es wurde mindestens 1x TObject createt}

procedure DatenAusgeben;
begin
  ???:=Object.Daten;
{hier kommt dann die ausgabe in listbox o.ä.}  
end;

end.
mObject:
Delphi-Quellcode:
unit mObject;

interface

type
  TObject = class(TObject)
  private
    a, b, c: integer;
    d: Array[1..20] of integer;
    e: array[0..20] of String[17];
  public
    function Daten: ???;
  end;

implementation

[...]

function Daten: ???; // <--- hier is das problem
begin
 ???
end;

end.
wie ihr seht habe ich einiges an daten in meinem Object, und ich würde gerne alles auf einmal raus holen.
Ich hab shcon versucht einen array oder eine menge als functionstyp zu wählen, aber irgendwie ist delphi mit dieser methode nicht vertraut

also, falls irgendjemand da nen lösungsanschlag (für einen blutigen anfänger) parat hat, ich wäre sehr dankbar!!
Max
"Das Ziel ist im Weg!"
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Viele Daten per Function übergeben

  Alt 11. Jun 2007, 05:16
Hai everdream,

deklariere Dir einen Typ für dein Array. Dann kannst Du diesen auch als Ergebnisstyp einer Funktion angeben.

HauptKlasse:
Delphi-Quellcode:
unit mMain;

interface

uses
mObject;
type
  TArrayOfObject = Array[1..10] of TObject;

  TMain = class
  private
    Objects: TArrayOfObject;
  public
    prucedure DatenAusgeben;
  end;

implementation
.
.
.
function Daten: TArrayOfObject;
begin
 ???
end;

end.
Wobei Du anstelle eines Array of TObject auch einfach eine Delphi-Referenz durchsuchenTList verwenden kannst.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Viele Daten per Function übergeben

  Alt 11. Jun 2007, 07:10
Wie wäre es mit einem Variant:
Delphi-Quellcode:
Type
  TMyObject = Class
    fString1,
    fString2 : String;
    fInteger : Integer;
    fMyFloat : Double;
  Public
    Function Data : Variant;
 End;

Procedure TMyObject.Data : Variant;
Begin
  VarArrayCreate (Result, [0,3]); // Ich glaube so gehts
  Result [0] := fString1;
  Result [1] := fString3;
  Result [2] := fInteger;
  Result [3] := fMyFloat;
End;
Und Abrufen geht so;
Delphi-Quellcode:
Var
  MyData : Variant;

Begin
  MyData := MyObject.Data;
// Und Zugriff über
  String1 := MyData[0];
// etc.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Viele Daten per Function übergeben

  Alt 11. Jun 2007, 07:34
Hi,

hallo Leute, warum so kompliziert.

Wie wäre es denn mit einem einfachen Record ? Er will ja die Daten der einzelen Objekte haben.

und btw. Wieso heist die Klasse
  TObject= Class(TObject) ? geht das überhaupt ?

Ich tendiere ja eher dazu dann TMyObject = class(tObject) zu sagen. Oder einfach TMyObject=class
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Viele Daten per Function übergeben

  Alt 11. Jun 2007, 07:45
Zitat von thkerkmann:
Hi,

hallo Leute, warum so kompliziert.

Wie wäre es denn mit einem einfachen Record ? Er will ja die Daten der einzelen Objekte haben.
Stimmt, aber mit Variants ist es einheitlich, d.h. er kann sich eine abstrakte Basisklasse basteln, die die Funktion 'Data' deklariert. Die einzelnen Ableitungen überschreiben dann einfach die Funktion 'Data'.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von everdream
everdream

Registriert seit: 22. Feb 2007
Ort: Hiddenhausen
192 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Viele Daten per Function übergeben

  Alt 12. Jun 2007, 23:02
okay, danke für eure tipps, habt mir damit sehr geholfen!
ich werde wohl einen record bzw variants benutzen. eine eigene klasse erstellen: da blick ich noch nicht ganz wie das gemeint ist, aber mehr als nen einheitlichen record brauche ich auch für mein proggi nicht.

nochmal vielen dank
Max
"Das Ziel ist im Weg!"
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:42 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