Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Synonyme Bezeichnungen für eine Objekt-Eigenschaft

  Alt 27. Jul 2006, 17:58
Es ist ja nicht das sortieren alleine. Dazu verwende ich auch die mitgelieferte Sort-Funktion der TObjectlist, wodurch sich das Sortieren auf kleine Mini-Funktionen (eben die Compare-Funktionen) beschränkt. Wenn ich den Code jetzt dahingehend erweitere, und Teile neu sortiere, ist das viel Coding-Aufwand.
Hinzu kommt, dass ich für die entsprechend sortierten Listen auch jeweils eine Binärsuche nach der sortierten Eigenschaft programmiert habe, und bei einem Treffer z.B. alle Objekte ausgebe, die die primäre Eigenschaft besitzen, oder aber die primäre UND sekundäre - da käme dann auch entsprechend Aufwand auf mich zu.

Ich brauche dieses variable Verfahren für folgendes:
  • Objekt-Liste sortieren nach variablen Kriterien
  • Weitere Liste erstellen, die eine Auflistung aller unterschiedlichen primären Eigenschaften hat (also z.B. Alle Interpreten)
  • bei Markierung eines Interpreten (z.B. Die Ärzte) (später auch Genre, Jahr, u.a.) erstens eine Auflistung aller unterschiedlichen sekundären Eigenschaften, die bei Objekten mit der gewählten primären Eigenschaft existieren (also alle Alben von den Ärzten, oder alle Künstler des Genres) UND eine Auflistung aller Objekte mit der gewählten primären Eigenschaft
  • Bei zusätzlicher Markierung einer sekundären Eigenschaft weitere Filterung der Objektanzeige, so dass nur Objekte angezeigt werden, die beide Eigenschaften haben (Z.B. Alle Titel von den Ärzten auf dem Album 13, oder alle Punkrock-Titel aus dem Jahr 2006)
Damit das in Echtzeit auch bei längeren Listen funktioniert, brauche ich eine Sortierung nach beiden Kriterien, und eine entsprechende Binärsuche...

Das Stichwort, was ich benötigte, war Getter/Setter . Ich hätte natürlich zuerst für jede Eigenschaft nen eigenen Setter/Getter geschrieben, aber wenn das auch in einem geht, ist das natürlich ne feine Sache

Ist doch richtig, dass die Getter-Methode einfach den Index-ten String aus dem Array zurückliefert, und der Setter einfach den String im Array neu setzt, oder? Also einfach
Delphi-Quellcode:
function GetString(Index: TMyClassStringIndex): String;
begin
  result := FStrings[Index];
end;

procedure SetString(Index: TMyClassStringIndex; const Value: string);
begin
  FStrings[Index] := Value;
end;
Jetzt muss ich zwar die Klasse etwas umbauen (das sind bis jetzt alles einfach nur Variablen, keine Propertys), aber der Rest des Projektes kann so bleiben.
  Mit Zitat antworten Zitat