Bueno, soy muy novato en esto, de hecho solo llevo dos semanas programando en Delphi.
Mi duda es simple:
Tengo una aplicación con un StringGrid construido a través de un ADOQuery. La cosa es que en el se muestran nombres y telefonos.
Funciona todo perfectamente, pero estoy intentando meter un filtro y no puedo.
El Código que tengo es este:
Código Delphi
[-]procedure TForm33.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if editingX=2 then
if (not (Key in [#8, '0'..'9'])) OR (( length(StringGrid1.Cells[editingX,editingY]) = 10 )AND( not (Key in [#8]) )) then begin
Key := #0;
end;
end;
Osea, en la columna de teléfonos solo puedo borrar o escribir números. Se ignora la tecla si no es un numero, o si la longitud del campo es la máxima y la tecla que se pulsa no es la de borrar.
Hasta ahora puedo:
-Escribir 10 numeros.
-Borrar los numeros en cualquier momento (Da igual la cantidad de números, 1 o 10).
Pero no puedo realizar lo siguiente:
-Reemplazar los numeros.
Es decir. Cuando selecciono la celda, automáticamente se selecciona todo el contenido (los diez números). Puedo borrarlos con la tecla borrar, pero si pulso otro número, al ya tener los 10 del total, no hace nada (ignora la pulsación). Mi intención es detectar la cantidad de caracteres seleccionados por el puntero del ratón al entrar en la celda.
Si la cantidad es 10, me permitirá que, al pulsar un número, se sobreescriban el resto, que es lo que no puedo hacer por ahora.
Un saludete.