Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   cxGrid in Provider Mode: ReadOnly deaktivieren (https://www.delphipraxis.net/172698-cxgrid-provider-mode-readonly-deaktivieren.html)

romber 18. Jan 2013 01:09

cxGrid in Provider Mode: ReadOnly deaktivieren
 
Hallo!

Ich benutze den TcxGrid von DevExpress in Privider Mode mit der eigenen von TcxCustomDataSource abgeleiteten Classe als Datenquelle. Ein Feld habe ich als CheckBox dar.
Leider lässt sich das Feld nicht editieren, obwohl ReadOnly für das Feld deaktiviert ist. Weiß jemand, was ich da Konfigurieren muss, um das Feld editierbar zu machen?

Vielen Dank!

Furtbichler 18. Jan 2013 06:12

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Normalerweise reicht es, ReadOnly auf False zu setzen. Allerdings benötigt die Spalte eine 'Verbindung' (quasi Binding) zum CustomDataSource, damit etwaige Änderungen auch gespeichert werden.

Kannst Du denn raufklicken, also 'tut sich da was'?
Siehst Du die restlichen Daten in der Zeile?

romber 18. Jan 2013 10:06

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Zitat:

Zitat von Furtbichler (Beitrag 1199513)
Normalerweise reicht es, ReadOnly auf False zu setzen. Allerdings benötigt die Spalte eine 'Verbindung' (quasi Binding) zum CustomDataSource, damit etwaige Änderungen auch gespeichert werden.

Genau, ReadOnly ist auf False. Für die Verbindung zum CustomDataSource habe ich die uberschriebene Procedure SetValue. Oder brauche ich noch was anderes?

Zitat:

Zitat von Furtbichler (Beitrag 1199513)
Kannst Du denn raufklicken, also 'tut sich da was'?
Siehst Du die restlichen Daten in der Zeile?

Ich kann zwar raufklicken, aber es tut sich nichts in der Hinsicht auf die CheckBoxen. Der Record wird markiert und das war's auch. Zu der SetValue kommt es gar nicht.
Restliche Daten sind da und auch richtig dargestellt.

SebastianZ 18. Jan 2013 10:13

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Das cxGrid ist da ein bisschen eigen. Es gibt mehrere Optionen mit denen man ein readOnly - ähnliches Verhalten bekommt.
Sie dir mal bei der betroffenen Spalte an, ob die Optionen "Editing" und "Focusing" gesetzt sind.
Kontrolliere auch sicherheitshalber das DataBinding der Spalte.

Ich würde dort den Fehler vermuten.

Lg
Sebastian

romber 18. Jan 2013 11:07

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Zitat:

Zitat von SebastianZ (Beitrag 1199558)
Sie dir mal bei der betroffenen Spalte an, ob die Optionen "Editing" und "Focusing" gesetzt sind. Kontrolliere auch sicherheitshalber das DataBinding der Spalte.

Editing und Focusing sind auf True. DataBindig.ValueType ist Boolean.

Furtbichler 18. Jan 2013 18:48

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Funktionieren die anderen Datenfelder im Grid?

Wie hast Du das Databinding realisiert? Bei mir bekommen die Spalten in der Eigenschaft 'TheColumn.DataBinding.Data' immer eine Nummer zugewiesen, die ich im GetValue/SetValue auswerte und dann den entsprechenden Wert zuweise.

Was liefert TcxYourCustomDataSource.GetValue denn?

romber 18. Jan 2013 19:43

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Zitat:

Zitat von Furtbichler (Beitrag 1199695)
Funktionieren die anderen Datenfelder im Grid?

Der Problemfeld ist der einzige Feld, dass editirbar ist. Alle anderen Felder sind einfache String-Felder (DataBinding = String).

Zitat:

Zitat von Furtbichler (Beitrag 1199695)
Wie hast Du das Databinding realisiert? Bei mir bekommen die Spalten in der Eigenschaft 'TheColumn.DataBinding.Data' immer eine Nummer zugewiesen, die ich im GetValue/SetValue auswerte und dann den entsprechenden Wert zuweise.

So ähnlich habe ich es auch. Jeder Object in der Datenliste hat eine ID. Anhand dieser ID behandle ich die Values im GetValue/SetValue. GetValue fuktioniert perfekt.

Zitat:

Zitat von Furtbichler (Beitrag 1199695)
Was liefert TcxYourCustomDataSource.GetValue denn?

Beim Inhalt dieses Feldes handelt es sich um eine Boolean-Eingeschaft. DataBinding des Feldes ist Boolean, Properties ist CheckBox, ReadOnly = false

Ich bin verzweifelt, heute den ganzen Tag damit verbracht, das Feld editierbar zu machen.

Furtbichler 18. Jan 2013 20:04

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ein Projekt, das zeigt, das es geht.

romber 18. Jan 2013 20:32

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Vielen Dank für dieses Beispiel.

Fast genau so sieht es bei mir aus. Der Unterschied ist, dass ich in der CustomDataSource eine TObjectList als Datencontainer verwende und in dem Beispiel ist es ein Array.
Ich vermute, dass das Problem doch irgendwo in den Eigenschaften des Grids liegt. Denn in Ihrem Beispiel kann ich die SetValue-Routine ganz dektivieren und trotzdem reagieren die CheckBoxen auf die Klicks, auch wenn die ins Leere gehen. Beim mir ist das nicht der Fall. Bei mir sind die CheckBoxen immer Checked und nichts ändert sich beim Klick.

Furtbichler 19. Jan 2013 08:33

AW: cxGrid in Provider Mode: ReadOnly deaktivieren
 
Dann vergleiche doch einfach die Properties der Checkbox-Spalte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr.
Seite 1 von 2  1 2      

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