Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Позиционирование каретки в TStringGrid

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  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. 

  Mit folgendem Code kann man den Cursor in einer Zelle 
  (InplaceEditor) eines StringGrids positionieren. 
  Hierfur brauchen wir eine "Cracker" Klasse, weil der 
  InplaceEditor "protected" ist. 
}

 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;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay