Codigo de mi problema con tmemo
Mi intencion es crear una funcion que devuelva el caracter del tmemo de la posicion indicada por las variables globales fila y columna. Para lo cual hago mas o menos lo siguiente:
function leer_caracter:char;
var
c:char;
begin
//Si existen caracteres para leer
if principal.MemoXml.Lines.Count>fila then begin
//Si nos encontramos en una linea vacia pasamos a la siguiente. Pense
//que este trozo me solucionaria el problema de los "intros", pero no.
if (length(principal.MemoXml.Lines.Strings[fila])=0) then begin
fila:=fila+1;
columna:=1;
end;
//Leemos el caracter sobre el que estamos situados. Aqui me da la
//excepcion EAccessViolation.
c:=principal.MemoXml.Lines.Strings[fila][columna];
end
else
//Si ya no quedan más caracteres por leer escribo el codigo #0
//de final de documento.
leer_caracter:=#0;
//Devuelvo el caracter recogido.
leer_caracter:=c;
end;{leer_caracter}
He pensado que la solucion pasaria por usar la propiedad text en lugar de intentarlo por lineas, pero no se muy bien como. Soy algo novato.
|