Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2004
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 24
esocrates Va por buen camino
Cita:
Empezado por roman
Realmente no entiendo esto de querer guardar todo en un sólo archivo pero podrías intentarlo usando ClientDataSets. Guardas los memos como si fuera una base de datos pero todo te queda en un sólo archivo.

// Saludos
Hola Roman. Lo que intento hacer es una aplicación que imita a tantas otras que se encuentran por la Web. Se trata de un editor para escritores o para escribir un diario. Consta de un PageControl y cinco TabSheet con un Memo cada uno. Existe la posibilidad de que el usuario cree nuevos Tabshett en tiempo de ejecución.
Lo que se intenta es que el usuario al cerrar el programa deje todo lo escrito en cada uno de los memos guardado en un solo archivo [las aplicaciones de referencia así lo hacen] y que permita luego rescatar los textos en cada memo de donde fueron escritos. Por ej. En cada memo podría ir un capítulo de un libro a algo por el estilo.
Esto lo hago para estudiar Delphi. Imito otras aplicaciones para resolver problemas. Pero esta vez estoy detenido.
Se me ocurre que el asunto pasa por una base de datos; pero no sé cómo es esto de guardar en tablas y mandarlas a los memos por ej.
Espero haber sido claro en lo que me propongo.
Intentaré algo con tu sugerencia.
Un saludo y gracias

Última edición por esocrates fecha: 23-03-2004 a las 00:36:25.
Responder Con Cita
  #2  
Antiguo 23-03-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cita:
Intento con una variable TStrings a la que asigno el memo y me da un error de acceso y si lo intento con una variable String me devuelve el error de incompatibilidad entre tipos String y TStrings.
No he entendido a que te refieres

Para guardar los memos tendrías que hacer algo así:
Código:
// Si el usuario decide guardar todo y salir de la aplicación

const MaxMemos = 5 ; // tendrás alguna forma de saber cuantos hay.
// lo más lógico sería guardarlo en un archivo ini
// Busca en el foro por "TiniFile"

var i,j,k:Integer;
    v : TLMDListItem;
begin
for k := 0 to MaxMemos do   // para cada memo
begin
  j:=  LMDStringList1.Add(v);  // vamos a guardarlo en este TString
    LMDStringList1.Items[j].Items.Assign(Memos[i].lines);
    LMDStringList1.SaveToFile('c:\mismemos.txt'); 
end;

end;
Memos[i]
========
De alguna forma tienes que saber cuantos memos hay creados, para poder acceder a ellos en tiempo de ejecución. Lo que se me ocurre de momento, es tener un array de TMemos, y hacer que apunte a los memos del PageControl.

Desde mi punto de vista, si optas por usar un LMDSTRINGLIST, ya tienes resulto el problema de guardar 4 o 40 memos. Ahora el problema sería mantener una lista de los TabSheet que hay abiertos.

Código:
var  Memos : array of TMemo; // creamos un array de memos
procedure CargarDesdeArchivo;
begin
  setlength(Memos, MaxMemos); // un array de 5 Memos

//   cuando creas un memo en tiempo de ejecución  tendrías que hacer algo parecido a esto:

  LMDStringlist1.loadfromfile('c:\Mismemos.txt');
  for i:=0 to MaxMemos do
  begin
    MisMemos[i]:= MemoCreadoEnEjecucion; // mismemos[i] apuntará al memo creado
    MisMemos[i].Lines.Assign(LMDstringList1.items[i].items);
  end;
end;
Que conste que lo he escrito de memoria... y tiene inconvenientes, ya que de momento el array contiene tantos memos como se cargan al inicio del programa; cuando se crea un nuevo memo, habría que crear espacio en el array MisMemos y añadirlo. Igualmente cuando se elimina uno... o sea, DEMASIADO trabajo de "mantenimiento". Mas facil puede resultar un TObjectList, (busca por el foro, hay algunos temas). Igual me estoy yendo por los cerros de Úbeda, (como decimos por mi tierra).

Lo que comenta Roman del ClientDataset, no lo he mirado, pero desde luego, puede ser la solución a implementar el programa con componentes nativos de delphi, en lugar de recurrir a componentes de terceros (LMDStringList)

Saludos
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


La franja horaria es GMT +2. Ahora son las 22:53:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi