Ver Mensaje Individual
  #2  
Antiguo 05-04-2006
Kosmo Kosmo is offline
Miembro
 
Registrado: abr 2006
Posts: 21
Reputación: 0
Kosmo Va por buen camino
SetFocus

A ver si esto te sirve.

Teniendo ya en cuenta que posicionas el cursor en la fila que quieres marcar, habría que hacer que dentro de esa fila se posicione en la columna deseada, lo peudes hacer de dos maneras, sabiendo el nombre de la columna o sabiendo el índice de la misma.

Te pongo mas o menos un ejemplo de cada a ver si te sirve

Sabiendo el número de la columna:

Código Delphi [-]

   procedure FocusCell(
     const DBGrid : TDBGrid;
     const column : integer) ; overload;
   begin
     with TStringGrid(DBGrid) do
     begin
       Col := column;
       SetFocus;
     end;
  end;

Y sabiendo el nombre de la columna:

Código Delphi [-]

   procedure FocusCell(
     const DBGrid : TDBGrid;
     const fieldName : string) ; overload;
   var
     column : integer;
     idx : integer;
   begin
     column := 0;
     for i:= 0 to -1 + DBGrid.Columns.Count do
     begin
       if DBGrid.Columns[idx].FieldName = fieldName then
       begin
         column := 1 + idx;
         Break;
       end;
     end;
     if column > 0 then FocusCell(DBGrid,column) ;
  end;

Espero que te solucione el problema, un saludo

Última edición por Kosmo fecha: 05-04-2006 a las 15:04:02.
Responder Con Cita