Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Data Binding (https://www.delphipraxis.net/160131-data-binding.html)

Jens01 10. Apr 2012 17:15

AW: Data Binding
 
Hallo Stevie,
nach längerer Zeit habe ich DSharp noch mal wieder getestet.
Ich nutze die AdvStringgrids von TMS. Damit funktioniert das irgendwie nicht so ganz.
In der VCLControls-Unit habe ich mir auf Grundlage von TStringgrid eine Klasse für die TAdvStringgrids gebaut. Wenn ich aber das Grid mit Daten gefüllt habe, gibt es eine Exception in der Paint-Methode vom AdvStringGrid.
Code:
if not Assigned(inherited Objects[c,r]) then
in dieser Zeile bei Cellproperties knallts mit "ListenIndex überschreitet Maximum". Könnte dies Objects doppelt belegt sein? Oder fällt Dir dazu etwas ein?
Gruss Jens

Edit:
Habe noch mal geguck. Ich glaube, dass beim Setzen des Cell-Wertes mit Cells[] in SetCells die CellProperties (TMS) mit Daten belegt werden. Wahrscheinlich wird das bei der Belegung über DSharp nicht gemacht....

Stevie 10. Apr 2012 19:14

AW: Data Binding
 
Hi Jens,

bin mir nicht ganz sicher, ob du die aktuelle Version aus dem svn Repository nutzt (hab mal das Posting oben dahingehend aktualisiert).

Dort wird die Unit DSharp.Bindings.CollectionView.VCLAdapters.pas am ehesten interessant sein, genauer gesagt die Klasse TCollectionViewStringGridAdapter.

Das Design sieht so aus, dass die meisten Controls, das für das Anzeige von Listen zuständig sind, eine Aggregation auf ein von TCollectionView abgeleitetes Objekt haben. Diese Klasse kümmert sich um das Anzeigen der Liste in bestimmten Formen (z.B. für eine Repräsentation von TStrings oder im TStringGrid).

Ich kenn ehrlich gesagt den internen Aufbau des TAdvStringGrids nicht, aber wenn es irgendwie von TStringGrid abgeleitet ist, müsste es eigentlich kein Problem sein, mit minimalen oder garkeinen Anpassungen den TCollectionViewStringGridAdapter dafür zu benutzen.

Jens01 10. Apr 2012 21:07

AW: Data Binding
 
Zitat:

bin mir nicht ganz sicher, ob du die aktuelle Version aus dem svn Repository nutzt
Nutze ich.
Zitat:

Ich kenn ehrlich gesagt den internen Aufbau des TAdvStringGrids nicht, aber wenn es irgendwie von TStringGrid abgeleitet ist, müsste es eigentlich kein Problem sein, mit minimalen oder garkeinen Anpassungen den TCollectionViewStringGridAdapter dafür zu benutzen.
Das Ding ist von TStringgrid abgeleitet.
Wenn ich die Exception ein paar mal durchbestätige, dann zeigt er die Daten in den Cellen auch an, aber..naja, so eine Exception in Paint ist doch schon lästig. Bin mir auch nicht sicher, ob es an DSharp oder TMS liegt. Aber das genaue Problem bekomme ich nicht geriffen...
Schade

Stevie 10. Apr 2012 21:58

AW: Data Binding
 
Ich schau mal, ob mich die Trial vom TAdvStringGrid weiterbringt, den Fehler zu finden. Kannst du mir deine Anpassungen diesbezüglich zukommen lassen?

Nachtrag: Hab das Problem gefunden - TAdvStringGrid überschreibt die Objects Property und es scheint, dass intern noch zusätzliche Objekte für Zelleneigenschaften oder so gehalten werden. Hab mal ne neue Interceptor Klasse inklusive CollectionView Adapter für das TAdvStringGrid erstellt und commited.

Jens01 11. Apr 2012 12:07

AW: Data Binding
 
TAdvStringGrid funktioniert!
Danke...

RWarnecke 8. Jul 2012 22:01

AW: Data Binding
 
Hallo Stefan,

kann ich das von Dir hier vorgestellte DataBinding auch in Interfaces einsetzen um somit die Kommunikation zwischen Hauptprogramm und DLL zu vereinfachen ?

Stevie 9. Jul 2012 00:16

AW: Data Binding
 
Direkt auf Interfaces binden geht aktuell nicht. Es werden nur Bindings zwischen 2 Objekt Instanzen unterstützt.
Für den Fall, dass du auf ein Interface binden willst, müsstest du dir dann einen Wrapper schreiben.

RWarnecke 9. Jul 2012 07:09

AW: Data Binding
 
Schade und genau davon habe ich keine Ahnung. Ich wollte für eine nagel neues Programm genau das gleiche PlugIn-System nutzen, wie für Code-Orakel und dann mit Data Bindings arbeiten.

bernhard_LA 28. Apr 2017 09:42

AW: Data Binding
 
würde gerne TDatabinding verwenden, wird es ein DSharp auch für Delphi XE10.2 geben


Delphi-Quellcode:
Checking project dependencies...
Compiling DSharp.Core.dproj (Debug, Win32)
brcc32 command line for "DSharp.Core.vrc"
c:\program files (x86)\embarcadero\studio\18.0\bin\cgrc.exe -c65001 "DSharp.Core.vrc" -foDSharp.Core.res
......
[dcc32 Error] DSharp.Core.Reflection.pas(2884): E2361 Cannot access private symbol TRttiObject.FParent
[dcc32 Error] DSharp.Core.Reflection.pas(2885): E2361 Cannot access private symbol TRttiObject.FHandle
[dcc32 Fatal Error] DSharp.ComponentModel.DataAnnotations.pas(83): F2063 Could not compile used unit 'DSharp.Core.Reflection.pas'
Failed
Elapsed time: 00:00:00.9


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.
Seite 2 von 2     12   

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