Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   RichEdit->SaveToFile (https://www.clubdelphi.com/foros/showthread.php?t=97202)

Saltimbanki 02-02-2025 17:06:31

RichEdit->SaveToFile
 
1 Archivos Adjunto(s)
Hola, estoy creandome un programilla que simula un diario con un un RichEdit.
A la hora de grabar los datos mediante SaveToFile si el RichEdit contiene imagenes el tiempo de grabacion es considerable y ya no estas seguro de si se ha quedado colgado o no. Mientras esta el SaveToFile ejecutandose como podria meter un ProgressBar para "seguir" la grabacion y no desesperarte ??

Ahora mismo lo tengo chapucero puesto que he creado un Form que lo visualizo ( Show ) justo antes del SaveToFile, mi intencion era poner hay una animacion en el Form pero se me "queda pillao" y solo muestra el Caption del Form.

Adjunto el Form que he diseñado para la accion de leer/grabar los datos del diario, como podria meter una animacion o un ProgressBar en este Form y que se visualoce en toempo de ejecucion ??

Gracias

chenech 02-02-2025 19:24:11

Creo que deberías usar un Threading, creo que se llama así, no lo he usado nunca pero te permite tener una animación o una barra de progreso en paralelo a la ejecución del programa.
Aquí mismo tienes muchos ejemplos:
https://www.clubdelphi.com/foros/sho...ight=Threading

navbuoy 03-04-2025 18:10:38



mira te he hecho un ejemplo con el TMS AdvRichEditor que es el que permite pegar imagenes con el portapapeles

Código:

//---------------------------------------------------------------------------

#include <vcl.h>

#include <fstream>  // Para manipulación de archivos

#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "AdvRichEditor"
#pragma link "AdvRichEditorBase"
#pragma link "AdvScrollControl"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        ProgressBar1->Min = 0;
        ProgressBar1->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (SaveDialog1->Execute()) {
                String fileName = SaveDialog1->FileName;

                // Verificar si hay contenido en el editor
                if (AdvRichEditor1->LineCount() == 0) {
                        ShowMessage("No hay contenido para guardar.");
                        return;
                }

                int totalLines = AdvRichEditor1->LineCount();
                ProgressBar1->Max = totalLines;
                ProgressBar1->Position = 0;

                // Crear un archivo y guardar el contenido
                AdvRichEditor1->SaveToFile(fileName);  // Guardar directamente con SaveToFile

        // Simular progreso ya que SaveToFile no actualiza la UI
                for (int i = 0; i < totalLines; i++) {
                        ProgressBar1->Position = i + 1;
                        Application->ProcessMessages();  // Permite actualizar la UI durante el guardado
                }

                ShowMessage("Archivo guardado correctamente.");
        }
}
//---------------------------------------------------------------------------



La franja horaria es GMT +2. Ahora son las 10:51:47.

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