Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Posicion actual en TstringGrid (https://www.clubdelphi.com/foros/showthread.php?t=71180)

calcena 05-12-2010 17:16:17

Posicion actual en TstringGrid
 
Buenas, tengo cargado un TStringGrid por query y me gustaria que al pulsar una fila en un text poner la posicion que ocupa relativa respecto al total query.recordcount; y no se que funcion o parametro utulizar en delphi.
Gracias.

ejemplo --> 2 de 150

ecfisa 05-12-2010 20:56:38

Hola calcena.

Creo que esto es lo que buscas:
Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
var
 i: Integer;
begin
  Query .Open;
  // considerar si hay columnas fijas y ajustar nro de columnas
  StrGrd.ColCount:= StrGrd.FixedCols + Query .FieldCount + 1;
  // tantas filas como nros de registros
  StrGrd.RowCount:= Query .RecordCount;
  // Ocultar columna con RecNo
  StrGrd.ColWidths[StrGrd.FixedCols]:= 0;
  // Poner nombres de campos en fila 0 ( si queres...)
  for i:= 0 to Query .FieldCount-1 do
    StrGrd.Cells[StrGrd.FixedCols+i+1,0]:= Query .Fields[i].FieldName;
  // Cargar campos en StringGrid
  while not Query .Eof do
  begin
    // primera columna oculta contiene el número de registro
    StrGrd.Cells[StrGrd.FixedCols,Query .RecNo]:= IntToStr(Query .RecNo);
    // resto de los campos al StringGrid
    for i:= 1 to Query .FieldCount do
      StrGrd.Cells[StrGrd.FixedCols+i,Query .RecNo]:= Query .Fields[i-1].AsString;
    Query .Next;
  end;
  Query .Close;
end;

procedure TForm1.StrGrdSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  // Mostrar número de registro en título del form
  Caption:= Format('%s de %d',
    [StrGrd.Cells[StrGrd.FixedCols, ARow], StrGrd.RowCount]);
end;

No sabía donde lo querías mostrar el mensaje así que lo hago en el Caption del Form, pero vos podés ubicarlo donde más te guste.
Otra opción es hacer FixedCols = 1 y poner allí el RecNo, pero me parece que no es lo que querías...


Saludos. :)


La franja horaria es GMT +2. Ahora son las 19:04:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi