![]() |
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 |
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 |
![]() ![]() mira te he hecho un ejemplo con el TMS AdvRichEditor que es el que permite pegar imagenes con el portapapeles Código:
//--------------------------------------------------------------------------- |
Te doy un ejemplo con Threading
Concepto clave: El problema es que TRichEdit.Lines.SaveToFile no ofrece callbacks de progreso. Así que no hay forma de saber el avance línea a línea a menos que lo hagas tú mismo, línea por línea. COMPONENTES en el Form (por ejemplo, Form1): TRichEdit llamado RichEdit1 TProgressBar llamado ProgressBar1 TButton llamado Button1 ✅ Paso 1: Crear una clase derivada de TThread Agrega esto en el encabezado de tu Form1 o en un archivo aparte: Código:
class TGuardarRichEditThread : public TThread✅ Paso 2: Implementación del hilo En el .cpp de tu formulario: Código:
__fastcall TGuardarRichEditThread::TGuardarRichEditThread(TRichEdit* ARichEdit, String AFileName, TProgressBar* AProgressBar)En el evento Button1Click: Código:
void __fastcall TForm1::Button1Click(TObject *Sender)Guarda línea por línea. La barra de progreso se actualiza sin colgar la interfaz. Es 100% compatible con C++ Builder desde versiones como 2005 hasta actuales. |
| La franja horaria es GMT +2. Ahora son las 14:52:47. |
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