![]() |
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:
in dieser Zeile bei Cellproperties knallts mit "ListenIndex überschreitet Maximum". Könnte dies Objects doppelt belegt sein? Oder fällt Dir dazu etwas ein?
if not Assigned(inherited Objects[c,r]) then
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.... |
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 ![]() 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. |
AW: Data Binding
Zitat:
Zitat:
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 |
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. |
AW: Data Binding
TAdvStringGrid funktioniert!
Danke... |
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 ? |
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. |
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
![]() |
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 00:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz