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: Focus Cell (https://www.delphipraxis.net/203479-devexpress-grid-focus-cell.html)

haentschman 21. Feb 2020 10:11

Devexpress Grid: Focus Cell
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöle...:P

Ich bin wahrscheinlich betriebsblind. :?

Ich habe:

2 Grids. Die Zeilen sind für alle Columns standardmäßig Editing = False und Focusing = False. (im OI)
Im "Editmode" stelle ich die betreffende Spalte auf Focusing = True und dann wieder zurück. (Visuelle Rückmeldung ob die Spalte gerade "editierbar" ist :wink:)
Im ersten Grid funktioniert das perfekt. Im 2. Grid sind alle Spalten Focusing = True (visuell) obwohl nicht gesetzt. :evil:

Ich habe schon den QT nach ".Focusing := xxx" durchsucht. Da tauchen nur die Spalten des funktionierenden Grids auf.

Hat jemand noch Ideen?

Nachtrag:
Das funktionierende Grid hängt an einer generischen Objektliste über CustomDatasource. Das nicht funktionierende hängt standardmäßig am DataSet. Das sollte aber keinen Einfluss haben.

Danke...:wink:

haentschman 23. Feb 2020 13:29

AW: Devexpress Grid: Focus Cell
 
Moin...:P
...vorsichtig schieb.

dataspider 23. Feb 2020 13:44

AW: Devexpress Grid: Focus Cell
 
Zitat:

Zitat von haentschman (Beitrag 1458046)
Die Zeilen sind für alle Columns standardmäßig Editing = False und Focusing = False. (im OI)

Also - bei Verwendung mit DataSat Ist Options.Focusing / Editing aller Columns standardmäßig True, oder habe ich was falsch verstanden?

Frank

haentschman 23. Feb 2020 18:01

AW: Devexpress Grid: Focus Cell
 
Zitat:

Options.Focusing / Editing aller Columns standardmäßig True
Egal mit welchen Daten, DataSet oder Objektliste, ist Options.Focusing / Editing aller Columns standardmäßig False. Das Grid sieht aber aus als wäre Focusing True...bei jeder Spalte. :gruebel:

reaktor 24. Feb 2020 07:38

AW: Devexpress Grid: Focus Cell
 
Habs mal bei mir getestet, da gehts so wie du es erwartest (in deinem ersten Grid). Hab auch ein wenig rumgespielt aber bekomme den Fehler nicht. Du hast CellSelect und InvertSelect an so wie es aussieht, richtig?
Hast du mal im runtime abgefragt ob Focusing bei den Spalten tatsächlich an ist? (wird nicht so ganz klar, ob du das nur im OI überprüfst). Würde tatsächlich am ehesten darauf tippen, dass es im QT irgendwo verstellt wird.

DevExpress Version 19.2.4.

Sinspin 24. Feb 2020 07:45

AW: Devexpress Grid: Focus Cell
 
Hallo,
mach mal den Dialog als DFM Textansicht auf und vergleiche die Einstellungen für die Grids. Ich habe auch schon Tage damit verbracht nach Unterschieden zu suchen.
Selbst Einstellungen für die DataSource, speziell GridMode, kann merkwürdige Effekte haben.

Ansonsten, such alle im Quelltext geänderten Einstellungen, auch wenn du denkst sie gehören nicht zu deinen Problem :stupid:, Erstmal auskommentieren.

haentschman 24. Feb 2020 08:36

AW: Devexpress Grid: Focus Cell
 
Moin...:P
Zitat:

Würde tatsächlich am ehesten darauf tippen, dass es im QT irgendwo verstellt wird.
...ich auch. :? Aber ich finde es nicht. :oops: Mit dem Grid, wo es funktioniert, habe ich entsprechende Zeilen für das Focusing. (rein/raus) Bei dem Grid, was nicht funktioniert, kann ich keine Zeile finden die das Focusing auf True setzt. Dann gilt ja der OI. :wink:
Zitat:

mach mal den Dialog als DFM Textansicht auf und vergleiche die Einstellungen für die Grids.
...sind "gleich"... bezüglich Focusing.
Zitat:

Du hast CellSelect und InvertSelect an so wie es aussieht, richtig?
...ja.
Zitat:

Hast du mal im runtime abgefragt ob Focusing bei den Spalten tatsächlich an ist?
:oops: das habe ich noch nicht. Aber ich gehe zu 99,9% davon aus.
Zitat:

kann merkwürdige Effekte haben
...da hat DevExpress die Nase vorn. :roll: Ich habe mal mir erdreistet, MultiSelect auf False zu setzen. (wird in diesem Grid nicht gebraucht)...Ergebnis: OnChangeSelection wurde nicht mehr ausgelöst. Unlogisch aber asDesigned. :evil:

Danke...

Sinspin 24. Feb 2020 09:04

AW: Devexpress Grid: Focus Cell
 
Hallo, ich meinte alle Einstellungen vergleichen. Denn Focusing hängt von einer ganzen Reihe von Sachen ab.
-> OptionsSelection, OptionsData und Column.Options.

Was für eine View verwendest Du, TableView oder BandedTableView?

haentschman 24. Feb 2020 09:49

AW: Devexpress Grid: Focus Cell
 
Danke an Alle...:P

Manchmal muß man nur drüber reden...8-)
Zitat:

Hast du mal im runtime abgefragt ob Focusing bei den Spalten tatsächlich an ist?
...war der entscheidende Hinweis. Ich habe ein Rechtesystem was entsprechend dem Recht die Colums setzt. (Quasi optisch edtitierbar oder nicht - über Focused)
Delphi-Quellcode:
class procedure TToolsForms.SetAndVisualEnabledState(Item: TdxLayoutItem; NewState: Boolean; NewVisible: Boolean = True);

  function HasItemGridView: Boolean;
  var
    J: Integer;
    Grid: TcxGrid;
    View: TcxGridTableView;

    procedure SetGridColumsState(Enabled: Boolean);
    var
      I: Integer;
      Column: TcxGridColumn;
    begin
      for I := 0 to View.ColumnCount - 1 do
      begin
        Column := View.Columns[I];
        Column.Options.Focusing := Enabled; //evt. and (Column.Tag = 1);
      end;
    end;

  begin
    Result := False;
    if Item.Control is TcxGrid then
    begin
      Result := True;
      Grid := TcxGrid(Item.Control);
      for J := 0 to Grid.ViewCount - 1 do
      begin
        View := TcxGridTableView(Grid.Views[J]);
        SetGridColumsState(NewState);
        if NewState then
        begin
          View.Styles.Background := nil;
          View.Styles.Selection := dmStyle.cxStyleYellowLight;
        end
        else
        begin
          View.Styles.Background := dmStyle.cxStyleDisabledBackground;
          View.Styles.Selection := dmStyle.cxStyleNature;
        end;
      end;
    end;
  end;

begin
  Item.Visible := NewVisible;
  if not HasItemGridView then // ist eine View -> dann nur Farben tauschen statt disabled
  begin
    Item.Enabled := NewState;
  end;
end;
Was ich übersehen hatte, daß die Grids, die nur einzelne Spalten zum Editieren "freigeben" haben, das Flag "only ReadOnly" brauchen. Das wollte ich über den Tag regeln. Wenn aber die Zeile nicht einkommentiert ist, kann das auch nicht funktionieren. :oops: Den Teil hatte ich aber ohne Prüfung als funktionierend eingestuft. :oops:

:wink:

PS: Warum hat das andere Grid funktioniert? Weil alle Spalten entsprechend dem Recht "focusiert" waren. Bei dem anderen Grid waren Spalten dabei die immer nicht Focused sein sollten. Darum ist das aufgefallen.

reaktor 25. Feb 2020 07:35

AW: Devexpress Grid: Focus Cell
 
Freut mich, dass du es lösen konntest!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 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