Moin...
Zitat:
Danke für das Tutorial.
Zitat:
Erst einmal vielen Dank!
...Dankeschön.
Zitat:
Der Spass fängt aber dann an wenn du ein Grid oder Listview scrollen und editieren möchtest,
Zitat:
Wie würdest du denn so etwas bei deinem Vorschlag lösen ?
Persönlich habe ich mich entschieden, daß
niemals in der Listview editiert wird. Das hatte den Grund, daß mehr Informationen zu editieren waren als Spalten optisch zur Verfügung standen. Zum Editieren blende ich einfach eine
modale Form über die Listview ein. Ich nenne sie InlineEditor. (siehe Bild 1) Damit kann ich beliebige Informationen editieren und die Controls im InlineEditor selbst, auch wegen der Optik, festlegen. Dem InlineEditor wird das Objekt, welches am Listvieweintrag hängt, übergeben...usw. (siehe Bild 2) Am Objekt kann man sehen, daß das mit dem Dataset nicht übersichtlich möglich ist. Das Objekt würde eigentlich aus mindestens 3 Datasets bestehen.
Zitat:
Das müsste ja meiner Meinung nach auch gekapselt werden, das will man nicht immer wieder neu schreiben müssen.
Der Kreativität sind keine Grenzen gesetzt.
In meinen Produktivprojekten ist einiges als gemeinsamer Code ausgelagert um nicht alles neu schreiben zu müssen. Beispiel. Der InlineEditor. Den leite ich von der Basis, mit aller Logik für die Anzeige etc., ab.
...aber das würde zu weit führen und hat nichts mit dem Thema zu tun.
Zitat:
aber das wären nur Detailänderungen, die mir pers. besser in den Kram passen würden.
Der Kreativität sind keine Grenzen gesetzt.
Du kannst das Prinzip für deine Bedürfnisse anpassen.
Zitat:
sollte immer die (formal) gleiche Liste liefern.
...das ist korrekt.
Zitat:
Mit einem TDataModule kommt man (ich) genauso weit, einziges Problem(?) für jede
DB brauch ich ein eigenes Modul
1. Wenn eh keine Querykomponenten auf dem DataModule liegen kannst du dir das auch sparen.
Prinzipiell kommst du auch mit
einem DataModule für
eine Datenbank zurecht. Wenn du ein neues
DBMS dazunimmst, kommst du um eine Abstraktion nicht herum.
Delphi-Quellcode:
// Klassendefinition oder so ähnlich
TDataBaseAbstract = class
public
procedure Blubb; abstract;
end;
...
TDataBase1 = class(TDataBaseAbstract)
public
procedure Blubb; override; // die spezielle Implementierung für Blubb
end;
...
TDataBase2 = class(TDataBaseAbstract)
public
procedure Blubb; override; // die spezielle Implementierung für Blubb
end;
// Instanz
FDatabase: TDataBaseAbstract;
...
FDatabase := TDataBase2.Create; // oder so...
...die Vorteile von Interfaces wurde schon an anderer Stelle diskutiert.
http://www.delphipraxis.net/192364-t...nterfaces.html