Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Grid Index out of range (https://www.clubdelphi.com/foros/showthread.php?t=34900)

javicho_villa 24-08-2006 20:53:23

Grid Index out of range
 
Holas a todos
he desarrolado un modulo donde pongo 3 stringGrid y cada uno con informacion, la cosa es que juego con Heigth de cada StringGrid en el evento DbClick, y cuando quiero salir del formulario o cuando doy doble click a la ultima fila me sale ese error Grid Index out of range o sino Cabbot focus s disables or invisible window.

si alguien me podria dar una luz con este problema, ya e probado tratando de poner un edit q asumira el fono pero de ahi no hay ningun progreso

bismarck_sierra 24-08-2006 21:58:33

Que tal

Porque no pones el código del evento dblclick para ver donde esta el error.

Saludos
Bismarck

javicho_villa 24-08-2006 22:16:10

Este es el codigo del evento DbClick
Código PHP:

  if lpedido then lpedido:=false
  
else lpedido:=true;
  if 
lpedido then
    begin
      self
.ListaDetalle.Height := 0;
      
self.ListaOrden.Align    := alTop;
      
self.ListaOrden.Height   := 0;
      
self.ListaPedido.Height  := self.Height self.PedidoPanel.Height -
      
self.DetallePedidoPanel.Height self.OrdenPanel.Height -
      
self.ListaOrden.Height self.ListaDetalle.Height 45;
    
end
  
else begin
         self
.ListaPedido.Height := (self.ListaPedido.DefaultRowHeight 4) + ;
         
self.ListaPedido.SetFocus;
         
MiRow := ListaPedido.Row;
         
self.ListaPedido.Row := 2;
         
self.ListaPedido.Row := MiRow;
         
self.ListaPedido.SetFocus;
         
//self.PintarDetalle;
       
end

despues lpedido=false se ejecuta este codigo y cierro el formulario me sale ese error.

Lepe 25-08-2006 10:34:45

El único caso en que a este código le veo sentido, es que se ejecute un código cuando se cambia de Fila (aunque no puedo verlo por ese código):

Código Delphi [-]
  self.ListaPedido.SetFocus;
  MiRow := ListaPedido.Row;
         self.ListaPedido.Row := 2;
         self.ListaPedido.Row := MiRow;

Además tienes 2 SetFocus, sería mejor dejar el último.

La última vez que usé ese control, tuve que dejar una fila vacia siempre abajo del todo, no es nada elegante esa solución, pero me estaba volviendo loco fallos del tipo "Grid index out of range" (no quise dedicarle más tiempo a un Freeware ;)).

"Cannot focus a disables or invisible window" este es otro error distinto, lo que vien a decir, es que la ventana que debe salir al hacer doble clic :
- ya se encuentra creada pero está invisible (visible a false). Revisa Project ->Options y quita esa ventana de AutoCreateForms y pasala a Available, despues tendrás que crearla a mano .... por ejemplo:
Código Delphi [-]
procedure TMain.Button1click(...);
begin
  Application.CreateForm(Tform1, form1); 
  Form1.ShowModal
end;

// y despues en la ventana:
procedure TForm1.FormClose(...);
begin
  action := cafree;
  Form1:= nil;
end;
- O bien se trata de una ventana mdichild y no puede usarse ShowModal

Saludos

javicho_villa 25-08-2006 16:30:19

Solución
 
Segui el concejo de agregar algunas filas, pero lo hice en el evento OnClose del formulario y se soluciono el problema. muchisimas gracias.


La franja horaria es GMT +2. Ahora son las 21:18:28.

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