![]() |
Überlagerung von Properties (DevExpress)
Hallo zusammen
mit dem folgenden Code möchte ich gerne an die Daten im Grid rankommen. Dem ist leider nicht so, ich bekomme immer einen Falschen wert (Form1)
Code:
ich glaube es gibt irgend wie einen Überlagerung vom :wall: ( Text ) :wall:
with cxGrid1DBBandedTableView1AnZahlTage.Properties as TcxTextEditProperties do
begin m := StrToInt( Text ); end; obwohl es ein Bestandteil vom TcxTextEditProperties ist. Kann mir jemand Helfen Besten Dank Tau |
Re: Überlagerung von Properties (DevExpress)
Hallo Tau,
die von dir vermutete Überdeckung kannst du recht einfach überprüfen, indem du mit einer Zwischenvariable arbeitest:
Delphi-Quellcode:
Wenn keine Überdeckung vorliegt, dann gehst du vielleicht falsch an die Sache heran. Der aktuellen Online-Dokumentation entnehme ich, dass der Zugriff über die property Text von TextEdit erfolgen kann. Leider hast du nicht geschrieben, von welchem Typ cx...AnzahlTage ist. Hast du einen URL für die Online-Dokumentation deiner Komponente?
var
tep: TcxTextEditProperties; begin tep := {with} cxGrid1DBBandedTableView1AnZahlTage.Properties as TcxTextEditProperties; ShowMessage(tep.Text); end; Grüße vom marabu das with muss natürlich weg |
Re: Überlagerung von Properties (DevExpress)
Wenn Du auf Werte im Grid zugreifen willst, dann geht das so nicht (äh, glaube ich). Ich mache es jedenfalls so, uns so steht es auch in der OH:
Delphi-Quellcode:
Jetzt hast Du Zugriff auf die Werte im Grid (auch wenn es datensensitiv ist). Wenn Du die formatierten Werte willst, nimmst Du DisplayTexts statt Values. Eine 'Text' Eigenschaft gibt es bei dein TcxXXXProperties nicht.
Var
iCol : Integer; Begin iCol := cxGrid1DBBandedTableView1AnZahlTage.Index; ShowMessage (MycxGrid.DataController.Values [MycxGrid.DataController.FocusedRecordIndex, iCol]); End; Die TcxTextEditProperties (und alle Tcx...Properties) beziehen sich nur auf die spezifischen Eigenschaften des Editors, der der Zelle zugeordnet ist, deshalb heissen sie auch so : "Tcx___EditProperties". |
Re: Überlagerung von Properties (DevExpress)
Hallo zusammen
leider helfen mir die Tipps nicht. ich versuche gerade eine online Berechnung im Grid zu machen. (TcxTextEditProperties mit onChange)
Code:
mit diesem Code bekomme ich immer EX das die Datenmenge Null ist. :wall: :wall:
var
tep: TcxTextEditProperties; begin tep := with cxGrid1DBBandedTableView1AnZahlTage.Properties as TcxTextEditProperties; ShowMessage(tep.Text); end; deswegen wollte ich auf denn Text von TcxTextEdit zugreifen. bin für andere Vorschläge immer offen. Besten Dank Tau |
Re: Überlagerung von Properties (DevExpress)
Also, tut mir leid, bei mir gibts noch nichtmal eine Text-Eigenschaft vom den TcxTextProperties, aber egal.
WAS genau willst du denn machen? Du hast also ein Grid und im OnChange einer Zelle willst Du dann ... was machen` Poste doch mal ein miniprojekt (mit DevExpress TcxGrid, is ja kein Problem). Ich kann Dir heute abend aber erst helfen... |
Re: Überlagerung von Properties (DevExpress)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo alzaimar
habe ein kleines Projekt dazugehängt im Grunde ist es ganz einfach. ich möchte den Wert den ich in die Spalte F013 eingebe mit irgendeinen Wert Multiplizieren und in die Zelle F014 wieder ausgeben. Und das sollte wehren der Eingabe basieren. ist gar keine Hexerei normal aber wenn ich nicht :wall: :wall: :wall: weis wie ich an die Daten rankomme dann schon. schöne Grüsse Tau |
Re: Überlagerung von Properties (DevExpress)
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
Ich habe Dir zwei Möglichkeiten eingebaut: Die erste ist banal über ein calculated Field. Komischerweise gerät die Berechnung in eine Endlosschleife, da musste ich einen kleinen Trick anwenden (siehe Sourcecode). Als zweite Möglichkeit habe ich eine Spalte 'F014' ohne Feldnamen definiert. Der darzustellende Text wird über das OnGetDataText event aus F013 berechnet. Hier wird aber nix in dem Dataset gespeichert. Hoffe, ich konnte Dir helfen. |
Re: Überlagerung von Properties (DevExpress)
Hallo alzaimar
Erstmal Danke für deine Bemühungen :thumb: Die Lösung mit den calculated Field wird erst beim Speichern vom Datensatz ausgelöst und kommt für mich leider nicht in Frage. Ist noch nicht so das was ich wollte. Werde eine E-Mail an den Support von DevExpress schicken vielleicht kann der mir Helfen. :gruebel: Es mus doch noch eine andere Lösung geben um an die Daten im Grid heranzukommen. schöne Grüsse Tau |
Re: Überlagerung von Properties (DevExpress)
Liste der Anhänge anzeigen (Anzahl: 1)
Mach das und poste vielleicht deren Antwort, würde mich auch interessieren.
Bei mir wird nicht erst beim Posten der berechnete Wert angezeigt, sondern auch dann, wenn man die Zelle mit ENTER oder TAB wechselt. Also, mir würde das reichen, oder willst Du echt bei jedem Tastendruck ein Update der berechneten Zellen? Dann füge einfach ein Event TcxGridDBBandedColumn.OnEditKeyUp ein:
Delphi-Quellcode:
Hattest Du aber auch gleich sagen können :zwinker:
procedure TForm1.cxGrid1DBBandedTableView1EditKeyUp(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState); begin aEdit.PostEditValue end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 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