Hallo smepal,
Zitat von
_frank_:
beim 1. würde ich die breite der spalte auf 0 setzen (colwidths).
Nimm lieber den Wert -1, das sieht besser aus und verhindert zuverlässig ein Resize mit der Maus.
Die verborgenen Zellen sind mit der Tastatur trotzdem noch erreichbar, deshalb sollte das Ereignis "OnSelectCell" behandelt werden:
Delphi-Quellcode:
const
HiddenColumn = 3;
procedure TForm1.FormCreate (Sender: TObject);
begin
Grid1.ColWidths[HiddenColumn] := -1;
end;
procedure TForm1.Grid1SelectCell (Sender: TObject;
ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if (ACol = HiddenColumn) then
with Grid1 do
begin
// verborgene Spalte überspringen, dabei Richtung beachten
if (ACol > Col) then
Col := Succ(ACol)
else
Col := Pred(ACol);
CanSelect := False;
end;
end;
Ganz ohne Nebenwirkungen ist das aber nicht. Mit obigem Code wird nur eine Spalte übersprungen, ein Markieren von Zellenblöcken mit der Tastatur wird unterbrochen, und der Code funktioniert nicht mehr nach dem Vertauschen von Spalten.
Gruß Hawkeye