Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-02-2012
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
Bug en TStringGrid (goAlwaysShowEditor) o es correcto?

Buenos días. Estaba mirando mi última entrada en este foro fue el diciembre 2012. Como pasa el tiempo...

Estimados una consulta sobre Delphi7 (tal vez los otros también) sobre un funcionamiento extraño de TStringGrid

.- Puse en un Formulario un TStringGrid con 3 columnas y 10 filas
.- lo hice más corto para que para bajar a las últimas lineas haya que usar la barra de desplazamiento
.- para ponerle unos datos le puse:
Código:
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=1 to StringGrid1.RowCount-1 do begin
  StringGrid1.Cells[1,i]:='A';
  StringGrid1.Cells[2,i]:='B';
end;
end;
.- Quiero que la columna 2 no sea editable entonces
Código:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
if (ACol = 2) then
    StringGrid1.Options :=StringGrid1.Options-[goediting]
  else
    StringGrid1.Options :=StringGrid1.Options+[goediting];
end;
.- Por para que se edite sin doble click seteo el StringGrid como
[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing,goAlwaysShowEditor]

Ahora... hago click en cualquier celda de la columna 1 (queda marcado para editar) y luego hago click en la columna 2 (la que no es editable)
.- Si ahora bajo el cursor por la columna 3 hasta que necesite desplazar hacia arriba, al hacerlo el valor que queda en la columna 2 es el de la columna 1. (En realidad si le ponen valores distintos es el último editable que seleccioné).

El problema es que hice una aplicación enorme y esta tontería me la achacan a un bug mío (durante un tiempo yo pensé lo mismo). Alguien sabe como corregirlo?
Responder Con Cita
  #2  
Antiguo 27-02-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola elcigarra, puedes solucionarlo añadiendo o quitando el goAlwaysShowEditor en el evento OnSelectCell.

Código Delphi [-]

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
 if (ACol = 2) then
   StringGrid1.Options :=StringGrid1.Options-[goediting, goAlwaysShowEditor]
 else
   StringGrid1.Options :=StringGrid1.Options+[goediting, goAlwaysShowEditor];
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 27-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por elcigarra Ver Mensaje
Buenos días. Estaba mirando mi última entrada en este foro fue el diciembre 2012. Como pasa el tiempo...
Regreso al futuro
Responder Con Cita
  #4  
Antiguo 27-02-2012
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Regreso al futuro
JAJAJAJA!!!! Es cierto... Era 2010... cuando yo además era más atento jaja

Espectacular Caro !!!, gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Correcto uso de transacciones IVAND Firebird e Interbase 5 28-11-2005 16:43:15
Uso correcto de TFrame jars OOP 4 03-08-2005 16:18:00
Uso correcto de keyvalues el_barto Conexión con bases de datos 2 21-06-2005 18:11:23
Sera correcto romacruz MS SQL Server 3 10-06-2005 01:47:01
DDE , es lo correcto? nicocer Varios 4 31-10-2003 08:09:18


La franja horaria es GMT +2. Ahora son las 21:12:37.


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
Copyright 1996-2007 Club Delphi