![]() |
DevExpress, Grid Zugriff
Hallo zusamm,
ich hab da ein Problem, ich schiebs zu 50% darauf das es schon Freitag nachmittag ist und vermutlich wer auf der Leitung steht. Also: Ich hab ein cxGrid mit 3 Spalten und möchte eigentlich nicht mehr tun, als die Daten der ausgewählten Zeile auslesen, aber irgendwie check ichs nicht und die OH hilft auch nicht so wirklich.
Delphi-Quellcode:
Bei (* Fehler) kommt "Record Index out of range"...
procedure TfrmDiagnose.tvTeileCellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var iRecord: integer; tRecord: TcxCustomGridRecord; begin if(AButton <> mbLeft) then exit; tRecord := tvTeile.Controller.FocusedRecord; edtArtNr.Text := tRecord.DisplayTexts[0]; edtBezeichnung.Text := tRecord.DisplayTexts[1]; //* Fehler edtArtPreis.Text := tRecord.DisplayTexts[2]; // Oder als Alternative, gibt ja mehrere Wege... iRecord := ACellViewInfo.GridRecord.RecordIndex; // oder tvTeile.DataController.FocusedRecordIndex; edtArtNr.Text := tvTeile.DataController.Values[iRecord, 0]; edtBezeichnung.Text := tvTeile.DataController.Values[iRecord, 1]; //* Fehler edtArtPreis.Text := tvTeile.DataController.Values[iRecord, 2]; end; Wer weiß Rat? |
Re: DevExpress, Grid Zugriff
*nachobenschieb*
|
Re: DevExpress, Grid Zugriff
Hallo Jan,
das viele Durchprobieren für das Auslesen von Zellen beim DevExpress QuantumGrid habe ich auch schon durch. :-D Probiere mal das:
Delphi-Quellcode:
Hoffe es klappt so. Auch wenn Heute schon Sonntag ist. :zwinker:
ColIndex := tvTeile.DataController.GetItemByFieldName('<der Feldname>').Index;
[..] with cxDeinGrid.FocusedView.DataController do begin RecIdx := GetFocusedRecordIndex; edtArtNr.Text := GetValue(RecIdx,ColIndex); end; [..] |
Re: DevExpress, Grid Zugriff
Danke für die Antwort.
Leider klappt das so auch nicht, es kommt wieder beim zweiten Zugriff die Fehlermedlung "Record index out of range" Interessanterweise "Recordindex" nicht Field oder Columnindex. habs mal auseinandergebastelt:
Delphi-Quellcode:
Ersetze ich jetzt iRecord durch 0 (ist zwar programmtechnisch umfug, aber zum testen) kommt kein Fehler. with tvTeile.DataController do begin aColIndex[0] := GetItemByFieldName('ARTIKELNUMMER').Index; aColIndex[1] := GetItemByFieldName('ARTIKELBESCHREIBUNG').Index; aColIndex[2] := GetItemByFieldName('VPNETTO').Index; end; with grdTeile.FocusedView.DataController do begin iRecord := GetFocusedRecordIndex; edtArtNr.Text := GetValue(iRecord, aColIndex[0]); edtBezeichnung.Text := GetValue(iRecord, aColIndex[1]); //Hier kommt immernoch der fehler edtArtPreis.Text := GetValue(iRecord, aColIndex[2]); end; Schon mysteriös... :gruebel: |
Re: DevExpress, Grid Zugriff
:coder:
Er hat es... Es funktionieren alle Varianten. Das Problem war gaaanz wo anders. Das EditFeld edtArtNr löste beim OnChange ne inkrementelle Suche aus, welche wiederum das cxGrid beeinflußte, so das der Recordindex nimmer stimmte :roll: Hatte einfach vergessen ein Flag zu setzen... :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 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