![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola Lepe:
He estado probando tu solución que me parece más que interesante. Lo hago con una aplicación sencilla. Un simple formulario con tres Memos y dos botones (Uno para guardar y otro para cargar el archivo guardado) [Lo de crear otros en tiempo de ejecución lo dejo para otro momento hasta que aprenda esto]. El compilador protesta, porque la variable "v" no está asignada, con el mensaje "Access Violation". Pruebo de distintas maneras y no consigo solucionarlo. Si se te ocurre algo que me ayude te lo agradeceré mucho. Aclaro que no es urgente. Sólo estoy experimentando en el tema para ver si puedo avanzar un poquito más en Delphi. Un saludo y gracias |
|
#2
|
||||
|
||||
|
Bueno, parece que me estoy volviendo adicto al FORO
![]() Yo haría lo siguiente, definiría mi propio tipo de archivo de datos, y usaría algo así como los tags de html para identificar que texto debe ir a que Memo, la ventaja de tu aplicación es que el texto debe de ser leido cuando la aplicación inicia y guardado cuando se cierra, lo que facilita nuestra tarea pues no tenemos que escribir en el archivo las modificaciones que se van realizando durante la escritura. Ahora para evitar que un usuario escribiera determinado "TAG" en el texto y este se malinterpretara usaría caracteres especiales, de control o códigos de escape por ejemplo podriamos tener un archivo así: :<nmemos=5> :<memo 1> Aqui va el texto para el primer Memo, podemos colocar todo lo que querramos :<end> :<memo 2> Esto sería para el segundo memo bla bla bla bla bla bla bla bla :<end> ... :<memo 5> sdfpojawn awpdfiojn apifnpaowuf apwouif awlfijnaw fkjn awñofun ñawjklfn awfñkjn wfñlkjawfn awñofjna wf :<end> Como puedes ver el primer tag le indica al programa cuantos memos existen entonces cuantos tabsheet debes de crear, luego seguimos leyendo el archivo y encontramos el tag <memo 1> que indica que el texto que leamos a continuacion va a ir en el primer memo hasta que encontremos el tag <end> y asi para los demás memos. ojo que nuestra convención es que si la línea comienza con los caracteres ":<" se trata de un "tag" también podemos sustituirlos por caracteres de control o de escape: #27 etc. La rutina de lectura de este tipo de archivo sería sumamente sencilla además de rápida y llenar los memos también. Salu2 MAGICIAN^ |
|
#3
|
||||
|
||||
|
Bueno, a mi me aparece un Warning, diciendo que v puede no estar inicializado, mirando un poco mas el método Add del TLMDStringList, puedes tambien escribir esto:
Código:
j:= TlmdStringList.Add();
if j = -1 then
showMessage('No se ha podido crear el elemento.
Reinicie windows que ya le va haciendo falta :-P ');
El Hecho de que a mi me deje compilar y funcione, supongo que será por las opciones que tengo activadas en el compilador.... pero eso es otra historia. Un detalle, yo no miro posibles errores, según la documentacion del TLMD.STringlist.Add, devuelve -1 si no ha podido crear el nuevo item, no estaría mal hacer la comprobación de error correspondiente. Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|