AGB  ·  Datenschutz  ·  Impressum  







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

Darstellung von Listen / Auswahl einer ID

Ein Thema von Sir Rufo · begonnen am 26. Okt 2012 · letzter Beitrag vom 21. Mai 2016
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Darstellung von Listen / Auswahl einer ID

  Alt 26. Okt 2012, 17:07
Mal eine allgemeine Frage an alle die hier und hier geantwortet haben:

"Macht ihr das tatsächlich so, wenn ihr so etwas umsetzen wollt?"

und wenn ja, warum?

Irgendwie ist mir das unbegreiflich, da es sich eigentlich um ein Standardproblem handelt, somit sollte eigentlich auch eine Standardlösung vorhanden sein (und so lange gibt es die Livebindings auch nicht).

Allerdings scheinen mir alle bisherigen in den Threads genannten Lösungen doch sehr holperig zu sein.

- Informationen (die für die Anzeige nicht benötigt werden) sollen in Controls gespeichert.
- Der Code kann so nicht wiederverwendet werden und muss auch für jedes Control immer wieder neu erstellt werden

Irgendwie fehlt es (mir) hier an KISS und DRY

Die nächsten Tage wird die Frage wohl noch zur ListBox kommen ...

Mein genereller Ansatz (abgeschaut bei Marco Cantu und etwas erweitert) für so ein Control, was eine Liste darstellt (ComboBox, ListBox, ListView, StringGrid)
Delphi-Quellcode:
  IGUISelectableList<T> = interface( IGUIBaseInterface )
    ['{EEFE5C52-94C3-464B-80F2-05E443B0F0F6}']
    procedure SetText( const Value : String );
    function GetText : String;
    procedure SetValue( const Value : T );
    function GetValue : T;
    function IsSelected : Boolean;
    function GetSelected : ISSKeyValue<T>;
    procedure AddPair( const AKey : T; const AValue : String ); overload;
    procedure AddPair( const AKey : T; const AValue : String; SubValues : array of string ); overload;
    procedure AddPair( const AKey : T; const AValue : String; const SubValues : TStrings ); overload;
    procedure Clear;
    procedure SetList( const AValueList : TSSKeyValues<T> );
  end;
Im Anhang ein komplettes Projekt mit den Sourcen und EXE.
Die Auswahlliste wird mit TComboBox, TListBox, TListView dargestellt und die Füll-Methode und Auslese-Methode ist in allen Fällen gleich.
Angehängte Dateien
Dateityp: zip GuiWrapper.zip (1,01 MB, 47x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Darstellung von Listen / Auswahl einer ID

  Alt 26. Okt 2012, 18:13
Damit dürfte den meisten Fragestellern zu diesem Thema wenig geholfen sein.
Erstens haben sie keine Chance haben zu verstehen wie Dein Wrapper funktioniert, wenn sie derartige Fragen noch stellen.
Gut sie könnten Ihn einfach verwenden, aber spätestens wenn es an die erste Anpassung geht sind sie raus.)

Zudem sind viele mit Delphiversionen unterwegs sind die keine Generics unterstützen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Darstellung von Listen / Auswahl einer ID

  Alt 26. Okt 2012, 18:42
Das mit den Generics ist mir schon klar, darum habe ich das auch nicht direkt in die angeführten Threads gepostet.

Aber vor den Generics haben wir doch nicht mit Stöcken auf Steine geklopft ... oder etwa doch?

Die Generics sind (wie so immer) nicht zwingend notwendig, aber bringen halt einen generellen Ansatz her.

Da sich für eine ID aber nur einige wenige Datentypen anbieten (Integer, Int64, Array[0..15] of Byte [=GUID]) ist es natürlich problemlos möglich für diese Datentypen aus der Generics Vorlage entsprechende Units zu erstellen.

(Das TDictionary müsste dann auch ersetzt werden ... ok, wir haben vor Generics mit Stöcken auf Steinen geklopft )
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Darstellung von Listen / Auswahl einer ID

  Alt 26. Okt 2012, 18:59
Der Te des anderen Threads hat wohl D7 PE, da wird ihm diese Lösung nicht helfen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Darstellung von Listen / Auswahl einer ID

  Alt 26. Okt 2012, 19:05
Ich bin ebenfalls für eine Trennung von Darstellung und Daten.
Die Daten sind aber üblicherweise schon in einem sinnvollen Container enthalten (DB,Objektlisten,Array's, was auch immer).
Ich würde mir eher mehr grafische Elemente wünschen die dem Rechnung tragen, abgesehen von Datenbankcontrols und selbstgebauten Komponenten fällt mir da auf Anhieb nur TListbox mit lbVirtual/lbVirtualOwnerDraw ein.
Warum sollte man so ein Konzept nicht auf Drawgrids, Comboboxen, das unsägliche TListview übertragen können.
Ok, inzwischen gibt es die Livebindings, aber ich denke man könnte den Reibungsverlust durch Getter/Setter die dann spezifisch angepasst sind sowohl zu zu Entwicklungszeit, vor allem aber zur Laufzeit geringer halten.

(Manchmal ist es ja auch ganz nett mal wieder mit Stöcken auf Steine zu klopfen )
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (26. Okt 2012 um 19:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Darstellung von Listen / Auswahl einer ID

  Alt 26. Okt 2012, 19:19
Der Te des anderen Threads hat wohl D7 PE, da wird ihm diese Lösung nicht helfen.
darum
Das mit den Generics ist mir schon klar, darum habe ich das auch nicht direkt in die angeführten Threads gepostet.


Ich bin ebenfalls für eine Trennung von Darstellung und Daten.
Die Daten sind aber üblicherweise schon in einem sinnvollen Container enthalten (DB,Objektlisten,Array's, was auch immer).
Ich würde mir eher mehr grafische Elemente wünschen die dem Rechnung tragen, abgesehen von Datenbankcontrols und selbstgebauten Komponenten fällt mir da auf Anhieb nur TListbox mit lbVirtual/lbVirtualOwnerDraw ein.
Warum sollte man so ein Konzept nicht auf Drawgrids, Comboboxen, das unsägliche TListview übertragen können.
Ok, inzwischen gibt es die Livebindings, aber ich denke man könnte den Reibungsverlust durch Getter/Setter die dann spezifisch angepasst sind sowohl zu zu Entwicklungszeit, vor allem aber zur Laufzeit geringer halten.

(Manchmal ist es ja auch ganz nett mal wieder mit Stöcken auf Steine zu klopfen )
Wenn aber die Darstellung wissen muss, wie die Daten aus den (durchaus) sinnvollen Containern gezeigt werden soll, dann weiß die Darstellung schon zuviel. Denn dargestellt werden können ja nur Zeichen. Alles was kein String ist muss zwangsweise interpretiert werden (und selbst ein String könnte einer Interpretation bedürfen). Und die korrekte Interpretation bekomme ich nur über den Kontext.

Mir ist durchaus bewusst, dass hier auch ein philosophischer Aspekt reinkommt:
Wieviel darf/soll die View wissen ... auf jeden Fall je weniger, desto flexibler (z.B. VCL<->FMX)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Darstellung von Listen / Auswahl einer ID

  Alt 26. Okt 2012, 19:26
Der View kann absolut beschränkt sein, vermitteln können passende Adapter ... oder so genial wie z.B. die datengebundenen devExpresskomponenten, dann braucht es halt einen definierten Adapter (quasi ein virtuelles Dataset), an den man den eigenen wo nötig anflanschen kann.
Zwischendurch serialisiere/deserialisiere ich meine Objektlisten in Clientdatasets um die genannten Vorzüge nutzen zu können.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Darstellung von Listen / Auswahl einer ID

  Alt 20. Mai 2016, 20:28
@Sir Rufos

Meine Frage zu diesem, deinem Beitrag, ist der Code ohne Urheberrechte?
Hintergrund: ich nutze ihn in einem Projekt und wurde nach dem Quellcode gefragt.
Es geht um die Dateien CommonTypes, GUIControls_Intf, Vcl.GUIControls und Vcl.GUIControls.Common.

Da keine PN gewünscht sind, die Frage auf diesem Wege.

VG
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Darstellung von Listen / Auswahl einer ID

  Alt 20. Mai 2016, 22:20
Sagen wir mal so, in Deutschland ist das Urheberrecht nicht übertrag- und damit nicht abtretbar.

Den Code habe ich irgendwo (ist schon lange her) von Marco Cantu genommen und erweitert. Urheber sind also Marco und meine Wenigkeit.

Jeder Sourcecode von mir den ich hier veröffentliche darf jeder grundsätzlich schon mal im Rahmen der AGB dieses Forums verwenden. Mir persönlich ist es egal ob du den Code jetzt noch in gelb lackierst und Spoiler dranschraubst.

Wenn ich das nicht möchte, dann zeige ich keinen Code (meine Meinung).

Kurz gesagt: Wegen mir musst du dir keinen Kopf machen und wenn dir der Code hilft, dann hatte dieser Thread wenigstens eine Berechtigung und verschwendet nicht nur den Speicherplatz vom Cheffe
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#10

AW: Darstellung von Listen / Auswahl einer ID

  Alt 20. Mai 2016, 23:57
Jeder Sourcecode von mir den ich hier veröffentliche darf jeder grundsätzlich schon mal im Rahmen der AGB dieses Forums verwenden.
Es sei denn es hat noch jemand anderes Urheberrecht daran oder exklusives Verwendungsrecht (z.B. der Arbeitgeber). Dann hättest du den Code eventuell nicht zur Verfügung stellen dürfen und ob die AGB dann noch bestand hat ... was das für den Nutzer des Codes für Konsequenzen hat: keine Ahnung.

Urheberrechtsfragen lassen sich endgültig leider nur vor Gericht klären
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:00 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