Selección de texto en una celda de un TStringGrid
Artículo por Club Developers · 02 marzo 2006
3862 vistas
Para seleccionar texto en una celda de un componente TStringGrid, podemos usar el componente TInplaceEdit especializado para el trato de texto en las celdas de las rejillas (Grids).
Nota: TInPlaceEdit puede ser usado con cualquier descendiente de TCustomGrid, incluido TDBGrid
delphi
procedure TForm1.Button1Click(Sender: TObject); // recorremos los controles hijos del Grid en búsqueda de TInplaceEdit function GetInPlaceEdit(ACustomGrid: TCustomGrid): TInplaceEdit; var i: integer; begin for i := 0 to ACustomGrid.ControlCount - 1 do if ACustomGrid.Controls[i] is TInplaceEdit then begin Result := TInplaceEdit(ACustomGrid.Controls[i]); Exit; end; Result := nil; end; var myRect: TGridRect; ed: TInplaceEdit; begin // selección de la celda myRect.Left := 1; myRect.Top := 2; myRect.Right := 1; myRect.Bottom := 2; sg.Selection := myRect; // damos el foco al Grid ActiveControl:= sg; // ponemos el Grid en modo de edición sg.EditorMode:= true; // recuperamos el editor ed:= GetInPlaceEdit(sg); // seleccionamos el texto de la celda if ed <> nil then begin ed.SelStart := 0; ed.SelLength := ed.GetTextLen; end; end;
Nota: TInPlaceEdit puede ser usado con cualquier descendiente de TCustomGrid, incluido TDBGrid