Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: TStringgrid - Spalte ausblenden

  Alt 14. Aug 2006, 19:41
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
  Mit Zitat antworten Zitat