Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Scrollbar de un stringgrid (https://www.clubdelphi.com/foros/showthread.php?t=19784)

Albano 26-03-2005 18:21:02

Scrollbar de un stringgrid
 
Hola a todos... Tengo un problemita: Tengo un stringgrid en una aplicacion y tiene activo el scrollbar vertical, kiero ke cada vez ke agrego un dato al stringgrid el scrollbar se recorra hacia abajo, esto para ke me muestre los ultimos datos agregados... alguien sabe como puedo hacerlo? gracias...

OSKR 28-03-2005 18:52:41

Viejo, tuve ese problema una vez y creo que seleccionando la casilla con Selection (o algo asi, no recuerdo ahora), la idea es seleccionar la casilla de la fila insertada para q el scrollbar baje, prueba y me dices si funciono

razek 03-04-2005 01:17:59

Aqui esta una respuesta
 
Para que el scrollbar del stringgrid pueda bajar y mostrar los datos que se van ingresando es necesario utilizar la siguiente propiedad:

Stringgrid1.Row:= (z); //Donde "z" es un entero.

Esta propiedad mueve el foco del stringgrid a una celda de la columna en la que se encuentre el foco es decir que si al principio tenemos el foco en la celda (0,0) y ponemos Stringgrid1.Row:= (1); el foco se moverá a la celda (0,1).

Bueno, entonces solo necesitas agregar una variable que se incremente cada que actualices los datos imagino que es un boton, (si no la pones en el evento correspondiente) y podria explicarse con el siguiente ejemplo que es muy simple, quedaria de la siguiente manera:

Agregar a la forma un Tbutton (button1), y un Tstringgrid (stringgrid1)
  • Crea dos variables dentro de las declaraciones publicas escribre:
public
{ Public declarations }
z,y:integer;
  • En el Procedimiento click del boton escribe el siguiente código:
procedure TForm1.Button1Click(Sender: TObject);
begin
z:=z+1; //Esta es la variable que aumenta cada que se da click en el boton
y:=z; //Asignamos otra variable con el mismo valor de z para
//que controle el foco.
with StringGrid1 do begin
Cells[0,z]:=inttostr(z); //Las celdas se llenan con el valor de "z".
RowCount:=z+1; //El numero de filas aumenta cada que se ingresadatos
row:=y; //Se cambia el foco al valor de "y"
if z>2 then begin row:=y-1; end; //Esta condicion permite prevenir la excepcion que se genera al pasar el foco a una fila que aun no existe, ademas genera una fila mas y asi se puedan mostrar todos los datos.
end;
end;


Ojala esto sirva ;) eso lo acabo de aprender, estoy empezando a usar delphi y a echarle ganas!!!

Atte.

razek the one

Albano 04-04-2005 22:15:31

Gracias
 
Muchas gracias por sus soluciones... ¡¡¡FUNCIONO!!!
Nada mas ke lo hice un pokito diferente, en lugar de declarar otra variable y estarla incrementando, solo use la siguiente instruccion:

stringgrid1.Row := stringgrid1.RowCount - 1;

razek 09-04-2005 22:41:32

sale
 
Que bueno que te funcionó :D


La franja horaria es GMT +2. Ahora son las 02:01:50.

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