Crear un Bloc de notas de Delphi: abrir y guardar

Mientras trabaja con varias aplicaciones de Windows y Delphi, nos hemos acostumbrado a operar con uno de los estándares Cuadros de diálogo para abrir y guardar un archivo, buscar y reemplazar texto, imprimir, elegir fuentes o configurar colores.

En este artículo, examinaremos algunas de las propiedades y métodos más importantes de esos cuadros de diálogo con un enfoque especial para Abierto y Salvar Cuadros de diálogo.

Los cuadros de diálogo comunes se encuentran en la pestaña Diálogos de la paleta Componente. Estos componentes aprovechan los cuadros de diálogo estándar de Windows (ubicados en una DLL en su directorio \ Windows \ System). Para usar un cuadro de diálogo común, necesitamos colocar el componente apropiado (componentes) en el formulario. Los componentes comunes del cuadro de diálogo son no visuales (no tienen una interfaz visual en tiempo de diseño) y, por lo tanto, son invisibles para el usuario en tiempo de ejecución.

TOpenDialog y TSaveDialog

Los cuadros de diálogo Abrir archivo y Guardar archivo tienen varias propiedades comunes. Abrir archivo se usa generalmente para seleccionar y abrir archivos. El cuadro de diálogo Guardar archivo (también usado como el cuadro de diálogo Guardar como) se usa al obtener un nombre de archivo del usuario para guardar un archivo. Algunas de las propiedades importantes de TOpenDialog y TSaveDialog son:

instagram viewer

  • los Opciones Las propiedades son muy importantes para determinar el aspecto final de la caja. Por ejemplo, una línea de código como:
    con OpenDialog1 hacerOpciones: = Opciones + [ofAllowMultiSelect, ofFileMustExist];
    mantendrá las opciones ya configuradas y permitirá a los usuarios seleccionar más de un archivo en el cuadro de diálogo junto con generar un mensaje de error si el usuario intenta seleccionar un archivo inexistente.
  • los InitialDir La propiedad se utiliza para especificar el directorio que se utilizará como directorio inicial cuando se muestre el cuadro de diálogo del archivo. El siguiente código asegurará que el directorio inicial del cuadro de diálogo Abrir es el directorio de inicio de aplicaciones.
    SaveDialog1.InitialDir: = ExtractFilePath (Aplicación. ExeName);
  • los Filtrar La propiedad contiene una lista de los tipos de archivo entre los que el usuario puede elegir. Cuando el usuario elige un tipo de archivo de la lista, solo los archivos del tipo seleccionado se muestran en el cuadro de diálogo. El filtro se puede configurar fácilmente en tiempo de diseño a través del cuadro de diálogo Editor de filtros.
  • Para crear máscaras de archivo en el código del programa, asigne un valor a la propiedad Filtro que consista en una descripción y una máscara separadas por un carácter de barra vertical (canalización). Me gusta esto:
    OpenDialog1.Filter: = 'Archivos de texto (* .txt) | * .txt | Todos los archivos (*. *) | *. * ';
  • los Nombre del archivo propiedad. Una vez que el usuario hace clic en el botón Aceptar en un cuadro de diálogo, esta propiedad contendrá la ruta completa y el nombre de archivo del archivo elegido.

Ejecutar

Para crear y mostrar un cuadro de diálogo común, necesitamos procesar el Ejecutar método del cuadro de diálogo específico en tiempo de ejecución. Excepto TFindDialog y TReplaceDialog, todos los cuadros de diálogo se muestran modalmente.

Todos los cuadros de diálogo comunes nos permiten determinar si el usuario hace clic en el botón Cancelar (o presiona ESC). Dado que el método Execute devuelve True si el usuario hizo clic en el botón Aceptar, debemos atrapar un clic en el botón Cancelar para asegurarnos de que el código dado no se ejecute.

Si OpenDialog1.Execute luego
ShowMessage (OpenDialog1.FileName);

Este código muestra el cuadro de diálogo Abrir archivo y muestra un nombre de archivo seleccionado después de una llamada "exitosa" para ejecutar el método (cuando el usuario hace clic en Abrir).

Nota: Ejecutar devuelve True si el usuario hizo clic en el botón Aceptar, hizo doble clic en el nombre de un archivo (en el caso de los cuadros de diálogo de archivo) o presionó Intro en el teclado. Ejecutar devuelve Falso si el usuario hizo clic en el botón Cancelar, presionó la tecla Esc, cerró el cuadro de diálogo con el botón de cierre del sistema o con la combinación de teclas Alt-F4.

Del código

Para trabajar con el diálogo Abrir (o cualquier otro) en tiempo de ejecución sin colocar un componente OpenDialog en el formulario, podemos usar el siguiente código:

procedimiento TForm1.btnFromCodeClick (remitente: TObject); var OpenDlg: TOpenDialog; empezar OpenDlg: = TOpenDialog. Crear (auto); {establecer opciones aquí ...}Si OpenDlg. Ejecutar luegoempezar
{código para hacer algo aquí}
final; OpenDlg. Gratis; final;

Nota: Antes de llamar a Ejecutar, podemos (tenemos que) establecer cualquiera de las propiedades del componente OpenDialog.

MyNotepad

Finalmente, es hora de hacer una codificación real. La idea principal detrás de este artículo (y algunos otros que están por venir) es crear una aplicación MyNotepad simple: Windows independiente como la aplicación Notepad.
En este artículo, se nos presentan cuadros de diálogo Abrir y Guardar, así que veámoslos en acción.

Pasos para crear la interfaz de usuario de MyNotepad:
. Inicie Delphi y seleccione Archivo-Nueva aplicación.
. Coloque un Memo, OpenDialog, SaveDialog dos botones en un formulario.
. Cambie el nombre de Button1 a btnOpen, Button2 a btnSave.

Codificación

1. Use el Inspector de objetos para asignar el siguiente código al evento FormCreate:

procedimiento TForm1.FormCreate (Remitente: TObject); empezarcon OpenDialog1 hacerempezar
Opciones: = Opciones + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Aplicación. ExeName); Filtro: = 'Archivos de texto (* .txt) | * .txt'; final; con SaveDialog1 hacerempezar
InitialDir: = ExtractFilePath (Aplicación. ExeName); Filtro: = 'Archivos de texto (* .txt) | * .txt'; final; Memo1.ScrollBars: = ssBoth; final;

Este código establece algunas de las propiedades del cuadro de diálogo Abrir como se discutió al principio del artículo.

2. Agregue este código para el evento Onclick de los botones btnOpen y btnSave:

procedimiento TForm1.btnOpenClick (remitente: TObject); empezarSi OpenDialog1.Execute luegoempezar
Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. Carga del archivo. (OpenDialog1.FileName); Memo1.SelStart: = 0; final; final;
procedimiento TForm1.btnSaveClick (remitente: TObject); empezar
SaveDialog1.FileName: = Form1.Caption; Si SaveDialog1.Execute luegoempezar
Memo1.Lines. Guardar en archivo. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; final; final;

Ejecute su proyecto No puedes creerlo; los archivos se abren y guardan al igual que con el Bloc de notas "real".

Ultimas palabras

Eso es. Ahora tenemos nuestro propio "pequeño" Bloc de notas.

instagram story viewer