AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Objekte in einer Reihenfolge verwalten

Ein Thema von Klaus777 · begonnen am 27. Dez 2019 · letzter Beitrag vom 2. Jan 2020
Antwort Antwort
Klaus777

Registriert seit: 27. Dez 2019
3 Beiträge
 
#1

Objekte in einer Reihenfolge verwalten

  Alt 27. Dez 2019, 20:54
Hallo zusammen,

ich habe das Problem, das ich Objekte in ihrer Reihenfolge verwalten möchte.
d.h. Objekt anlegen und in einer Listbox anzeigen, klappt.

Als Grundlage habe ich das hier verwendet:
www.delphipraxis.net...ontainer-klasse.html

Jetzt möchte ich das Objekt in der Reihenfolge in der Listbox verschieben.

Das Verschieben der Einträge geht auch, nur die Zuordnung der Objekte passt dann nicht mehr.

Hat jemand so etwas schon mal gebaut?

Viele Grüße Klaus
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
558 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Objekte in einer Reihenfolge verwalten

  Alt 27. Dez 2019, 21:24
Link geht nicht.

Was heißt Objekte verschieben? Man kann in den Delphi-Referenz durchsuchenTStrings einer TListBox.Items auch jedem Eintrag neben einem String auch einen Pointer zuweisen (in Delphi ungenau Objekt genannt). Wenn man Einträge wie vorgesehen mit Delphi-Referenz durchsuchenTStrings.Move verschiebt, wandert der Pointer mit.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.294 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Objekte in einer Reihenfolge verwalten

  Alt 28. Dez 2019, 08:59
Moin...
Zitat:
Objekt anlegen und in einer Listbox anzeigen
...ich tippe mal darauf, daß du ein "Trennung der Daten von der Visualisierung Problem hast".
Lösung: Verwalte deine Objekte in z.B. Listen in einer anderen Unit = Logik (TObjectList<TBlubb> oder so...) Dann kannst du den Inhalt der Liste anzeigen = GUI.

Noch bessere Trennung über Events:
Die GUI sagt der Logik "Lade mir die Objekte"...die Logik lädt die Objekte und benachrichtigt die GUI über ein Event...z.B. OnLoadObjects(Liste)...Die GUI empfängt die Liste, und wertet sie aus = Anzeige.
  Mit Zitat antworten Zitat
Klaus777

Registriert seit: 27. Dez 2019
3 Beiträge
 
#4

AW: Objekte in einer Reihenfolge verwalten

  Alt 29. Dez 2019, 21:37
Hallo ihr beiden,
danke schon mal, da habe ich eine Richtung in der ich probieren kann.
Da ich nach einer kurzen Pausen von 10 Jahren (Ich bitte um Gnade) mal wieder das Proggen anfange, kurze Frage gibt es einen Schnipsel dazu??

Der Link noch mal in voller Länge:
https://www.delphipraxis.net/88218-v...er-klasse.html

wie geht das mit den Pointern und der Stringlist? Da stehe ich im Moment voll auf dem Schlauch

ich danke euch für die Unterstützung.
Grüße Klaus.
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
931 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Objekte in einer Reihenfolge verwalten

  Alt 30. Dez 2019, 13:51
Wenn du ein aktuelleres Delphi mit Generics-Untersützung hast dann kannst du damit eine ObjectList mit
Delphi-Quellcode:
type TMyList = class(TObjectList<TMeinObjektTyp>)
end;
erstellen. Damit ersparst du dir das ständige „casten“. Die Suche nach „Delphi TObjectList Generics“ sollte dir einige Treffer zeigen. Das Einbinden der entsprechenden units (welche weiß ich auswendig gerade nicht) für die Generics-Unterstützung nicht vergessen.
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.444 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Objekte in einer Reihenfolge verwalten

  Alt 30. Dez 2019, 15:39
Ich darf mal zusammenfassen. Die Objekte liegen in der Liste in einer Reihenfolge vor: A-B-C-... und werden so in der Listbox angezeigt. Jetzt verschiebst du in der Listbox Objekt B vor A. Also haben wir in der Listbox B-A-C-... Im Speicher haben wir aber noch A-B-C-.... Jetzt willst du, dass auch die Objekte im Speicher die selbe Reihenfolge wie in der Listbox haben, dass heißt das Objekt im Speicher muss analog "verschoben" werden. Habe ich das so richtig verstanden?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Klaus777

Registriert seit: 27. Dez 2019
3 Beiträge
 
#7

AW: Objekte in einer Reihenfolge verwalten

  Alt 2. Jan 2020, 16:59
Hallo zusammen,
danke für eure Denkanstöße.
Die Trennung der Daten und Anzeige hatte ich nicht auf dem Schirm und es hat etwas gebraucht das zu verstehen.

Ich werde das mit den Generics aufgreifen und mich in diese Richtung weiter belesen und damit weitermachen.
Danke der Einsicht von Embarcadero gibt es ja die Community-Edition. Aktuelles Delphi ist soweit vorhanden.

Den Wahnsinn, die Daten in der Anzeige mit denen im Speicher zu syncen.... Oh je...

Danke & viele Grüße Klaus
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
558 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Objekte in einer Reihenfolge verwalten

  Alt 2. Jan 2020, 19:00
Den Wahnsinn, die Daten in der Anzeige mit denen im Speicher zu syncen.... Oh je...
Deshalb ja mein Vorschlag mit den Objekt-Features von TStrings. Dann liegt alles in derselben Liste, nämlich TListBox.Items, und es bleibt für immer zusammen, was zusammen gehört. Anzeige und Daten wären also nicht out-of-sync, außer man macht das gewaltig falsch. Problem: Den Pointer Objects[] muss man selber casten.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
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 23:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf