Einzelnen Beitrag anzeigen

Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#1

Feld sortieren und damit weiterarbeiten

  Alt 1. Apr 2015, 08:17
Hallo zusammen,

nach langer Zeit bin ich mal wieder hier unterwegs und hab auch wieder eine Frage Der Titel ist evtl. etwas blöd, aber ich weiß nicht, wie ich das anders kurz in Worte fassen soll

Ich hab eine Klasse, die ein Datenarray enthält. Das möchte ich sortieren; funktioniert auch problemlos. Jetzt kann ich das z.B. so implementieren:
Delphi-Quellcode:
type
  TDatenArray = array of TDaten;
  
  MeineKlasse = class(TObject)
  private
    FDaten: TDatenArray;
    procedure Daten_Sortieren; //Sortieralgorithmus ist hier ja unerheblich
  public
    property Daten: TDatenArray read FDaten;
  end;
Liegen die Daten in FDaten vor, kann ich Daten_Sortieren aufrufen. FDaten ist danach sortiert. Funktioniert, aber irgendwie ist mir dabei ein bisschen unwohl. Ich muss mir immer merken, ob und ab wo ich davon ausgehen kann, dass FDaten sortiert ist.

Wie kann ich das besser machen?
  • Über eine Eigenschaft Ist_Sortiert: boolean read FIst_Sortiert ?
  • Über eine gesonderte Eigenschaft Daten_Sortiert: TDatenarray read FDaten_Sortiert , so dass Daten_Sortieren mein Feld FDaten nicht überschreibt? Dann muss ich aber auch noch übeprüfen, ob FDaten_Sortiert schon gefüllt ist (evtl. auch über eine Eigenschaft Ist_Sortiert )
  • Statt procedure Daten_Sortieren eine function Daten_Sortieren: TDatenArray , so dass ich beim Aufruf der Methode den Rückgabewert in eine Variable meiner Wahl speichern kann/muss, statt die sortierten Daten im Objekt selbst vorzuhalten?

Irgendwie ist das eine grundsätzliche Frage für mich, die da mit rein spielt: Ein Objekt stellt die Prozeduren A und B bereit. A bearbeitet irgendwelche Daten (Felder) meines Objekts. B bearbeitet auch Felder und greift dabei auf die von A veränderten Felder zu. Wie regelt man das "schön"?

Viele Grüße
Ultimator
Julian J. Pracht
  Mit Zitat antworten Zitat