Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Stringrid Selektion eines Feldes wegnehmen

  Alt 29. Nov 2008, 22:45
Hallo

Mit folgendem Code kannst du den Cursor in einer Zelle
(InplaceEditor) des TStringGrids positionieren.
Hierfür verwenden wir eine "Cracker" Klasse, da der InplaceEditor "protected" ist.


Delphi-Quellcode:
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;

// Ermittelt die Caret-Position der aktuellen Zelle
function GetCaretPosition(Grid: TStringGrid): Integer;
begin
  with TGridCracker(Grid) do
    Result := InplaceEditor.SelStart;
end;

// Beispiel: 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;
Thomas
  Mit Zitat antworten Zitat