FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Recortar un String
Hola... tengo un pequeño problema
Tengo un Tstringgrid, en donde la columna 2, no quiero que sea mas larga que 50 caracteres. Tengo un codigo que va algo asi.
Pero no funciona... cuando llego al caracter 51 me borra todo el texto Como lo soluciono?? Gracias |
#2
|
|||
|
|||
Hola...
Prueba así:
Saludos... |
#3
|
|||
|
|||
hola... sigue sin funcionar... el codigo este lo tengo en el evento presskey del stringgrid, pero no funciona.... es decir se borra todo el texto al llegar al caracter 51.
Se podra hacer de otrea manera?? |
#5
|
|||
|
|||
tampoco... ya lohabia probado... como el length es igual o mayor a 50... despues de eso se queda pegao... no se puede escribir ni borrar en esa celda....
Alguna otra idea?? muchas gracias por tu tiempo |
#6
|
||||
|
||||
Cita:
No aceptará carácteres, pero sí Enter, Retroceso, Tabulación... Salu2. |
#7
|
|||
|
|||
Hola...
Pues ya solo te quedaría comprobar que tecla se presionó, si es Backspace o Delete por ejemplo, las dejas pasar tal como vienen, si es letra o número o espacio en blanco, los conviertes en caracter nulo (#0)... La otra es verificar si entre las propiedades de las columnas se puede especificar la longitud máxima de caracteres que puede contener... Saludos... |
#8
|
|||
|
|||
gracias ixMike... ahi me funciono... pero surgio otro problema...
si es que pego un string que es mayor que 50 igual me lo escribe... lo que deberia hacerse... creo yo... es que se deberia cortar si es que el string es mas largo que 50 Alguna idea?? muchas gracias |
#9
|
|||
|
|||
Te propongo una alternativa que cubriría todos los casos.
En el formulario donde tienes el StringGrid, coloca esta declaración:
Esto define una clase derivada de TStringGrid que se llama igual. Al colocarla antes de la declaración del formulario, logras que el StringGrid que ahí tienes, sea ahora de la nueva clase. En dicha nueva clase, lo que hacemos es redefinir el método virtual GetEditLimit. Este método indica cuál es el máximo número de caracteres que acepta una celda del grid. El método original simplemente regresa 0, indicando que no hay límite. Nosotros podemos definirlo para dar distintos valores, según las circunstancias:
Bye |
#10
|
|||
|
|||
Por cierto, veo que usas el evento KeyPress para convertir a mayúsculas el texto que se escribe. Pero ya entrados en gastos, puedes añadir un método más a la nueva clase:
CreateEditor es el encargado de crear el objeto TEdit que se usa para editar el contenido de una celda. Puedes aprovechar el momento en que se crea para establecer su propiedad CharCase:
Lo del TExInplaceEdit es un truco para poder acceder a la propiedad CharCase del TInplaceEdit, ya que está protegida y no puede usarse directamente. Con esto te ahorras ya todo el evento KeyPress. Bye Última edición por keyboy fecha: 14-02-2008 a las 02:50:53. |
#11
|
|||
|
|||
muchas gracias por tu tiempo.... pero tengo un problema me tira un error que dice asi:
[Pascal Error] U_NVAOC.pas(17): E2065 Unsatisfied forward or external declaration: 'TStringGrid.GetEditLimit' en la linea de "function GetEditLimit: Integer; override;" en que parte pongo el resto del codigo que me recomendaste?
gracias |
#12
|
|||
|
|||
Te la pongo más fácil:
Crea una nueva unidad, ExStringGrid.pas, con el siguiente código:
que incluye toda la implementación de la clase derivada. Luego, en tu formulario principal (o donde tengas el StringGrid), incluye la unidad:
El único requisito es que ExStringGrid debe aparecer después de la unidad Grids, de lo contrario no funciona. Bye |
#13
|
|||
|
|||
gracias keyboy... funciono perfecto, pero ahora surgio otro problema...
justamente no se puede ingresar mas caracteres definidos, ya se tipenando o tratando con copy paste.... pero si es que utilizo otra forma de llenar esta columna si se puede... utilizando este codigo:
Como puedo restringir esto tambien?? De ante mano muchas gracias.... Saludos |
#14
|
||||
|
||||
Cita:
Si ya se diera el caso que no sabes cómo...
Salu2 |
#15
|
|||
|
|||
Hola...
Para eso mejor hazlo como te indique en mi primera respuesta...
Saludos... Edit: Vaya, me ganaron la respuesta xDDDD |
#16
|
||||
|
||||
para destacar hay que ser veloz cual rayo!!! o conseguir uno de esos despertadores/avisadores que tienen los moderadores
|
#17
|
|||
|
|||
muchas gracias a todos... quedo funcionando tal cual queria
saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
recortar imagen | kapullok_2006 | Gráficos | 3 | 12-11-2007 18:39:29 |
recortar una foto | kapullok_2006 | Gráficos | 1 | 27-03-2007 12:45:25 |
como recortar caracteres... | alexander66 | Varios | 2 | 17-11-2006 19:06:43 |
Recortar Imagen | fmtidona | Gráficos | 2 | 26-09-2005 19:18:20 |
Rectángulo para recortar imagen | JAV | Gráficos | 3 | 05-07-2005 10:08:23 |
|