Danke an Alle...
Manchmal muß man nur drüber reden...
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.
Den Teil hatte ich aber ohne Prüfung als funktionierend eingestuft.
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.