Delphi-PRAXiS

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/)
-   -   Delphi DevExpress, Grid Zugriff (https://www.delphipraxis.net/63358-devexpress-grid-zugriff.html)

Der Jan 17. Feb 2006 15:01


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:
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;
Bei (* Fehler) kommt "Record Index out of range"...

Wer weiß Rat?

Der Jan 18. Feb 2006 20:41

Re: DevExpress, Grid Zugriff
 
*nachobenschieb*

AirJordan 19. Feb 2006 09:54

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:
ColIndex := tvTeile.DataController.GetItemByFieldName('<der Feldname>').Index;

[..]

with cxDeinGrid.FocusedView.DataController do
begin
  RecIdx := GetFocusedRecordIndex;
  edtArtNr.Text := GetValue(RecIdx,ColIndex);
end;

[..]
Hoffe es klappt so. Auch wenn Heute schon Sonntag ist. :zwinker:

Der Jan 2. Mär 2006 11:04

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:
 
  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;
Ersetze ich jetzt iRecord durch 0 (ist zwar programmtechnisch umfug, aber zum testen) kommt kein Fehler.
Schon mysteriös... :gruebel:

Der Jan 2. Mär 2006 12:42

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 16:48 Uhr.

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