Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Guardar contenido de un PageControl (https://www.clubdelphi.com/foros/showthread.php?t=17567)

esocrates 13-01-2005 16:56:28

Guardar contenido de un PageControl
 
Hola a todos:
Estoy diseñando (Delphi 6) una aplicación de escritorio que consta de un PageControl y cinco TabSheet con un Memo en cada uno.
Existe la posibilidad de que el usuario cree nuevos Tabshett en tiempo de ejecución.
Mi pregunta es la siguiente: ¿Cómo guardar el contenido de todos los memos al ejecutar un evento click?
Muchas gracias y hasta pronto.

Neftali [Germán.Estévez] 13-01-2005 17:19:06

Cita:

Empezado por esocrates
Hola a todos:
Estoy diseñando (Delphi 6) una aplicación de escritorio que consta de un PageControl y cinco TabSheet con un Memo en cada uno.
Existe la posibilidad de que el usuario cree nuevos Tabshett en tiempo de ejecución.
Mi pregunta es la siguiente: ¿Cómo guardar el contenido de todos los memos al ejecutar un evento click?
Muchas gracias y hasta pronto.

¿Dónde quieres guardarlos en Base de Datos o en Disco?

Para BD puedes utilizar el Memo.Text para asignarle el contenido a Field.AsString.
Para hacerlo en disco puedes utilizar ficheros INI (TIniFile) y guardarlos utilizando también la propiedad Memo.Text; Alternativamente puedes utilizar componentes que te hagan el trabajo, como el que viene con las RxLib (FormStorage).

esocrates 13-01-2005 17:47:25

Gracias por la respuesta Neftalí. Lo que quiero hacer es guardar el contenido de los memos en una carpeta del disco.
Intento, sin conseguirlo, hacer un bucle que recorra todos los TabSheets y guarde el contenido de los memos. Esa es la idea que quiero llevar adelante.
Si me pueden ayudar a salir de este problema y aprender a hacer esto se los agradeceré mucho.
Un saludo

Neftali [Germán.Estévez] 14-01-2005 10:23:03

Cita:

Empezado por esocrates
Lo que quiero hacer es guardar el contenido de los memos en una carpeta del disco.
Intento, sin conseguirlo, hacer un bucle que recorra todos los TabSheets y guarde el contenido de los memos. Esa es la idea que quiero llevar adelante.

Prueba con algo como ésto:

Código Delphi [-]
 procedure TForm1.Button2Click(Sender: TObject);
 const
   DIRECTORIO = 'c:\Temp\';
 var
   i,j:Integer;
 begin
 
   j := 0;
 
   // Recorrer las páginas
   for i := 0 to (PageControl1.PageCount - 1) do begin
     // Buscar el memo que hay en ese página
     while j < (Self.ComponentCount) do begin
       // Es un memo ?
       if (Self.Components[j] is TMemo) then begin
         // Es el que hay en ese TabSheet?
         if (TMemo(Self.Components[j]).Parent = PageControl1.Pages[i]) then begin
 
           // Grabar
           TMemo(Self.Components[j]).Lines.SaveToFile(
             DIRECTORIO + TMemo(Self.Components[j]).Name +
             '.txt');
 
         end;
       end;
 
       j := j + 1;
 
     end;
     j := 0;
   end;
 end;

Si tienes dudas ya dirás...

esocrates 14-01-2005 14:14:22

Muchas gracias Neftalí. Con tu propuesta se soluciona mi problema. Hacía tiempo que buscaba esta solución y había suspendido el proyecto por no encontrarla. Ya había preguntado varias veces en el foro sobre este problema y dejé de hacerlo por un tiempo por temor a ser cargoso.
Gracias de nuevo por tu valioso aporte.
Un saludo


La franja horaria es GMT +2. Ahora son las 01:54:18.

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