Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Iniciar un nuevo proyecto Exe, aadir un formulario MDI y dejarlo por defecto con el nombre Mdi Form1. Tambin agregar un formulario y renombrarlo a FrmDocumento Las opciones que tendr el editor sern: 1. En el men Archivo: Abrir, Nuevo, guardar , guardar como y salir 2. El men Edicin : Copiar, Cortar, Pegar y seleccionar Todo.
El men Archivo:
El men Edicin:
Los nombres de los menues debern ser los siguientes: Men Archivo: 1. 2. 3. 4. Abrir: mnuAbrir Nuevo: mnuNuevo Guardar: mnuGuardar Guardar Como: mnuGuardarComo
5. Salir: mnuSalir
Men edicin 1. 2. 3. 4. Copiar: mnuCopiar Cortar: mnuCortar Pegar: mnuPegar Seleccionar todo: mnuSeleccionar
Nota: si no sabs como crear los menes con el editor de visual basic, pods chequear este enlace que explica resumidamente como crear uno:
Crear menes en visual basic
Ahora hay que especificar en el formulario Mdi, en la propiedad MdiChild, que se encuentre en True, para que de esta manera los formularios se abran dentro de este. Ahora indicar en el men Proyectos > Propiedades de proyecto, que el formulario de inicio sea el MDI, en la opcin Objecto inicial.
Luego agregar un control CommonDialog llamado CommonDialog1 en el formulario Mdi y tambin otro en el formulariofrmDocumento para poder utilizar los Cuadros de dilogo Abrir Archivo y Guardar como. ( El control CommonDialog lo acceds desde el men proyecto, Componentes > Microsoft Common Dialog Control ). En el formulario frmDocumento, colocar un control RichTextBox llamado RichTextBox1 y establecerle a este desde la ventana de propiedades, la propiedad Multiline en True, La propiedad Scrollbars en 3. ( opara que muestre Ambas barras de desplazamiento) Por ltimo colocar un mdulo bas al proyecto
Option Explicit Private Sub MDIForm_Initialize() CommonDialog1.Filter Archivos|*.*" End Sub 'Men abrir Private Sub mnuAbrir_Click() On Error GoTo errSub CommonDialog1.ShowOpen If CommonDialog1.FileName <> "" Then Set FrmDoc = New frmDocumento FrmDoc.Show ActiveForm.Caption = CommonDialog1.FileName = "Documento de texto|*.txt|Todos los
ActiveForm.RichTextBox1.LoadFile CommonDialog1.FileName End If Exit Sub errSub: Select Case Err.Number Case 70 ActiveForm.RichTextBox1.LoadFile CommonDialog1.FileName Resume Next End Select End Sub
'Menu Guardar Como Private Sub mnuGuarcomo_Click() On Error GoTo errSub If Forms.Count = 1 Then MsgBox "No hay documentos para guardar", vbInformation Exit Sub End If CommonDialog1.ShowSave If CommonDialog1.FileName = "" Then Exit Sub ActiveForm.RichTextBox1.SaveFile CommonDialog1.FileName
'Men para guardar el archivo Private Sub mnuGuardar_Click() On Error GoTo errSub If Forms.Count = 1 Then MsgBox "No hay documentos para guardar", vbInformation Exit Sub End If If InStr(1, ActiveForm.Caption, sCaption) Then CommonDialog1.ShowSave If CommonDialog1.FileName = "" Then Exit Sub ActiveForm.RichTextBox1.SaveFile CommonDialog1.FileName Else ActiveForm.RichTextBox1.SaveFile ActiveForm.Caption End If Exit Sub errSub: Select Case Err.Number Case 91 Resume Next End Select End Sub 'Men nuevo archivo Private Sub mnuNuevo_Click() Set FrmDoc = New frmDocumento
nForms = nForms + 1 FrmDoc.Caption = sCaption & nForms FrmDoc.Show End Sub 'Men pegar Private Sub mnuPegar_Click() On Local Error Resume Next ActiveForm.RichTextBox1.SelText = Clipboard.GetText End Sub 'Men salir Private Sub mnuSalir_Click() Set FrmDoc = Nothing End End Sub 'Menu para seleccionar todo el texto Private Sub mnuSeleccionar_Click() On Local Error Resume Next ActiveForm.RichTextBox1.SelStart = 0 ActiveForm.RichTextBox1.SelLength Len(ActiveForm.RichTextBox1.Text) End Sub =
'Men Copiar texto Private Sub mnuCopiar_Click() On Local Error Resume Next Clipboard.SetText ActiveForm.RichTextBox1.SelText End Sub 'Men cortar texto Private Sub mnuCortar_Click() On Local Error Resume Next Clipboard.SetText ActiveForm.RichTextBox1.SelText
Private Sub Form_Resize() 'Redimensionamos formulario el control RichtextBox al ancho y alto del
RichTextBox1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight If WindowState = vbMaximized Then 'mdiform1.Caption = Me.Caption Else mdiform1.Caption = "" End If End Sub
Private Sub Form_Unload(Cancel As Integer) On Error GoTo errSub Dim ret As Integer If flagGuardar Then ret = MsgBox(" Guardar cambios", vbYesNoCancel) End If Select Case ret Case vbYes: If InStr(1, Me.Caption, sCaption) Then CommonDialog1.ShowSave
RichTextBox1.SaveFile CommonDialog1.FileName Else RichTextBox1.SaveFile Me.Caption End If Case vbCancel: Exit Sub End Select Set FrmDoc = Nothing
Exit sub errSub: Select Case Err.Number Case 75 Resume Next End Select End Sub Private Sub RichTextBox1_Change() flagGuardar = True End Sub
Public Public
FrmDoc nForms
As As
frmDocumento Integer
En este enlace est el cdigo fuente para descargar del proyecto anterior, que incluye una barra de herramientas para las opciones ( abrir, guardar etc.. ) y un cuadro de buscar y reemplazar para los documentos
Nota. Si quers poder aadir en el men archivo del formulario Mdi, la lista de los archivos abiertos recientemente por el programa ( como lo hacen muchas aplicaciones que utilizan formularios MDI, como por ejemplo el Word, o inicluso el Visual basic ), pods ver este ejemplo que graba en el registro de windows las rutas de los ficheros, y al cargar crea en forma dinmica los menes en tiempo de ejecucin. Luego al hacer click en el elemento del men se ejecuta el archivo Por ejemplo como muestra esta imagen: