Позиционирование каретки в TStringGrid

Previous  Top  Next

    
 

 

Code:

{

The following code allows you to position the caret

in a cell (InplaceEditor) of a StringGrid.

We need a Cracker class to access the InplaceEditor.

 

}

 

type

  TGridCracker = class(TStringGrid);

 

   {...}

 

implementation

 

{...}

 

procedure SetCaretPosition(Grid: TStringGrid; col, row, x_pos: Integer);

begin

  Grid.Col := Col;

  Grid.Row := Row;

  with TGridCracker(Grid) do

    InplaceEditor.SelStart := x_pos;

end;

 

// Get the Caret position from the focussed cell

// Ermittelt die Caret-Position der aktuellen Zelle

function GetCaretPosition(Grid: TStringGrid): Integer;

begin

  with TGridCracker(Grid) do

    Result := InplaceEditor.SelStart;

end;

 

// Example / Beispiel:

 

// Set the focus on col 1, row 3 and position the caret at position 5

// Fokusiert die Zelle(1,3) und setzt den Cursor auf Position 5

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  StringGrid1.SetFocus;

  SetCaretPosition(StringGrid1, 1, 3, 5);

end;

©Drkb::02341

Взято с сайта: http://www.swissdelphicenter.ch