AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zwei zusammenhängende Listen sortieren

Ein Thema von xZise · begonnen am 13. Nov 2008 · letzter Beitrag vom 14. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 21:07
Hallo ihr,

ich habe selber eine TIntegerList implementiert. So und in dieser stehen halt Zahlen drinne. Zusätzlich sind mit den Zahlen Strings verknüpft. Diese Strings werden dann in einer ComboBox angezeigt und hätte ich gerne sortiert. Aber sobald ich Sorted auf true setze sortiert er ja nur die StringList und somit sind die Daten nicht zurückzuverfolgen.

Wie kann ich sozusagen sagen, dass der 5. StringList-Eintrag und der 5. IntegerList-Eintrag zusammenhängen. Also das wenn er sortiert entweder die IntegerList mitsortiert oder das er jedem Stringeintrag einen Eintrag in der IntegerList zuweist und es irgendwo merkt?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 21:16
Wieso hast Du überhaupt 2 Listen? Weil eigentlich könntest Du den String gemeinsam mit dem Integer in der Stringlist speichern. Siehe z.B. hier:
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  Classes, SysUtils;

var
  IntegerStringListe : TStringList;
  i : Integer;
begin
  IntegerStringListe := TStringList.Create;
  IntegerStringListe.AddObject('String 3', TObject(1));
  IntegerStringListe.AddObject('String 2', TObject(2));
  IntegerStringListe.AddObject('String 1', TObject(3));

  writeln('Vor dem sortieren:');
  for i := 0 to IntegerStringListe.Count - 1 do
    writeln('string = ' + IntegerStringListe[i] + ' - integer = ', Integer(IntegerStringListe.Objects[i]));

  IntegerStringListe.Sorted := true;
  IntegerStringListe.Sort;

  writeln;
  writeln('Nach dem sortieren:');
  for i := 0 to IntegerStringListe.Count - 1 do
    writeln('string = ' + IntegerStringListe[i] + ' - integer = ', Integer(IntegerStringListe.Objects[i]));

  readln;
  IntegerStringListe.Free;
end.
Fridolin Walther
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 21:18
AddObject() ist Dein Freund.
S.o., diesmal war ich zu langsam
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 himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 21:21
Entweder du nimmst das Sortieren selber und schreibst dir dafür 'ne eigene Funktion, oder ...

nja, was mir dann noch einfällt, wäre die Prozedur Exchange der beiden Listen zu überschreiben.



Delphi-Quellcode:
TMyStringList = class(TStringList)
  public
    procedure Exchange(Index1, Index2: Integer); override;
  end;

procedure TMyStringList.Exchange(Index1, Index2: Integer);
begin
  IntegerList.Exchange(Index1, Index2); // hier halt die IntegerListe ändern
  inherited;
end;
und das Selbe in der IntegerList.


Aber warum machst du nicht Beises in eine Liste?
[add] waren andere wohl schneller -.-°
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 21:23
Weil ich das mit Object nicht wusste.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 21:24
Zitat:
Inherridet;
[OT] Und ich dachte, sowas krieg nur ich hin [/OT]
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 himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#7

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 21:43
und ich war mir sicher ich hätte das vorm Absenden geändert
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 22:02
Was anderes

Muss ich das Objekt dann nachher auch irgendwie freigeben?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#9

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 22:30
wenn du da wirklich ein Objekt drin ablegst, dann ja.

Aber du kannst auch ganz einfach deine Integer da reinkonvertieren.
SizeOf(TObject) = SizeOf(Integer)
(da TObjekt eh nur ein Zeiger auf das Objekt ist)

Delphi-Quellcode:
var i: Integer;

IntegerStringListe.AddObject('String 3', TObject(i));

i := Integer(IntegerStringListe.Objects[index]);
und bei der Variante mußt du nix freigeben, da nicht im "Objekt" gespeichert ist, was man freigeben muß.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Zwei zusammenhängende Listen sortieren

  Alt 13. Nov 2008, 23:35
Aber rein theoretisch könnte man damit ausversehen ein Objekt erreichen? (Aber habe nichts dagegen)

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:37 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