capítulo 8 vs basic - cuadros de diálogo comunes-mat del alumno
DESCRIPTION
Capítulo 8 vs Basic - Cuadros de Diálogo Comunes-Mat Del AlumnoTRANSCRIPT
(16) Mini Editor
CaptionNameShortcut
&ArchivoArchivo....&NuevoArchivoNuevoCtrl+N....A&brirArchivoAbrirCtrl+A....-LneaSeparadoral....&GuardarArchivoGuardarCtrl+G....-LneaSeparadora2....&ImprimirArchivoImprimirCtrl+I....-LneaSeparadora3....&SalirArchivoSalirCtrl+S&EdicinEdicin....&CopiarEdicinCopiarCtrl+C....C&ortarEdicinCortarCtrl+X....&PegarEdicinPegarCtrl+V&FormatoFormato....F&uenteFormatoFuenteCtrl+F
ControlPropiedadValor
Form1NameForml
CaptionMi Editor
IconC:\Grficos\Note14.icon
TextBoxNameTextl
MultilineTrue
ScrollBars3-Both
Text(Texto)
PropiedadValor
ImageListImageListlAppearance1-cc3DStyle1-tbrFlat
Index Key ToolTipText Image
Imagenl1BotnNuevoNuevo1
Imagen2 2BotnAbrirAbrir2
Imagen3 3BotnGuardar Guardar3
Imagen4 4BotnImprimir Imprimir4
Imagen55BotnCopiarCopiar5
Imagen6 6BotnCortarCortar6
Imagen7 7BotnPegarPegar7
Insertar un control StatusBar en el formulario.
Valores para cada uno de los paneles:
Index MinimumWidth Picture
Panel 1 11800C:\Graficos\Nota.bmp
Panel 2 21440C:\Graficos\Mano_tecla.bmp
Panel 3 3144000C:\Graficos\Relojl .bmp
Option Explicit
'La variable Modificado permitir saber si hubo
'alguna modificacin en el archivo
Public Modificado, rpta As Boolean
'La variable Canal servir para obtener un nmero de canal libre
Public Canal As Integer
Private Sub Form_Load()
Dim i As Integer
'Centra el formulario en la pantalla
Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2
'Establece el ttulo de la ventana
Caption = "Mi Editor"
'Establece que el texto que se escriba sea de tipo arial
Text1.FontName = "Arial"
'Establece que por defecto 10 sea el tamao del texto
Text1.FontSize = 10
'Desactiva la opcin Copiar del men Edicin
EdicinCopiar.Enabled = False
'Desactiva la opcin Cortar del men Edicin
EdicinCortar.Enabled = False
'Activa o desactiva la opcin Pegar del men Edicin
'dependiendo de si el portapapeles contiene o no texto
EdicinPegar.Enabled = (Len(Clipboard.GetText()) > 0)
'Desactiva la opcin Fuente del men Formato
FormatoFuente.Enabled = False
'Habilita o deshabilita el botn pegar de la barra de herramientas
'dependiendo de si el portapapeles contiene o no texto
Toolbar1.Buttons(7).Enabled = (Len(Clipboard.GetText()) > 0)
'Asigna el estado de la tecla Caps Lock (Bloqueo Mays)
al panel 2 de la barra de estado
StatusBar1.Panels(2).Style = sbrCaps
Asigna la hora del sistema al panel 3 de la barra de estado
StatusBar1.Panels(3).Style = sbrTime
End Sub
Private Sub Form_Resize()
Text1.Top = 440
Text1.Left = 0
Text1.Width = ScaleWidth
Text1.Height = ScaleHeight - 740
End Sub
Private Sub ArchivoNuevo_Click()
Call Nuevo Call llama al procedimiento Nuevo
End Sub
Private Sub ArchivoAbrir_Click()
Call Abrir CalI llama al procedimiento Abrir.
End Sub
Private Sub ArchivoGuardar_Click()
Call Guardar Call llama al procedimiento Guardar.
End Sub
Private Sub ArchivoImprimir_Click()
Call Imprimir Call llama al procedimiento Imprimir.
End Sub
Private Sub ArchivoSalir_Click()
EndTermina la ejecucin del programa.
End Sub
Private Sub EdicinCopiar_Click()
Call CopiarCall llama al procedimiento Copiar
End Sub
Private Sub EdicinCortar_Click()
Call CortarCall llama al procedimiento Cortar
End Sub
Private Sub EdicinPegar_Click()
Call PegarCall llama al procedimiento Pegar
End Sub
Private Sub FormatoFuente_Click()
Call FuenteCall llama al procedimiento Fuente
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "BotnNuevo"
Call Nuevo
Case "BotnAbrir"
Call Abrir
Case "BotnGuardar"
Call Guardar
Case "BotnImprimir"
Call Imprimir
Case "BotnCopiar"
Call Copiar
Case "BotnCortar"
Call Cortar
Case "BotnPegar"
Call Pegar
End Select
End Sub
Public Sub Nuevo()
'Procedimiento para editar un nuevo archivo
'Guarda las modificaciones realizadas en el archivo
If Modificado Then
rpta = MsgBox("Desea guardar los cambios realizados en el documento?", vbYesNo, "Mi Editor")
If rpta = vbNo Then
Exit Sub
Else
Call Guardar
End If
End If
Form1.Caption = "(Sin ttulo)"
'Borra el contenido actual del cuadro de texto Text1
Text1.Text = " "
Text1.FontName = "Arial" 'Establece la fuente de tipo arial
Text1.FontSize = 10 'Establece el tamao de la fuente
Text1.FontBold = False 'Desactiva la propiedad FontBold (Negrita)
Text1.FontItalic = False 'Desactiva la propiedad FontItalic (Cursiva)
'Desactiva la propiedad FontUnderline(Subrayado)
Text1.FontUnderline = False
'Desactiva la propiedad FontStrikethru(Tachado)
Text1.FontStrikethru = False
'Establece un color (negro) para el texto
Text1.ForeColor = RGB(0, 0, 0)
'Desactiva el indicador de Modificado
Modificado = False
End Sub
Public Sub Abrir()
'Procedimiento para abrir un archivo de texto
Dim Cadena1, Cadena2 As String
Dim Nmero1, Nmero2 As Long
Dim Estado1, Estado2, Estado3, Estado4 As Boolean
'Guarda las modificaciones realizadas en el archivo
If Modificado Then
rpta = MsgBox("Desea guardar los cambios realizados en el documento?", vbYesNo, "Mi Editor")
If rpta = vbNo Then
Exit Sub
Else
Call Guardar
End If
End If
'Si ocurre un error, ejecutar ManipularErrorAbrir
On Error GoTo ManipularErrorAbrir
'Muestra un mensaje en el primer panel de la barra de estado
StatusBar1.Panels(1).Text = "Abriendo archivo"
'Fijar las propiedades necesarias
With CuadroDeDilogo
'Generar un error cuando pulse cancelar en dilogo abrir
.CancelError = True
'Filtros
.Filter = "Archivo de texto|*.txt|Todos los archivos|*.*"
'Filtro por defecto
.FilterIndex = 2
'Extensin por defecto que se aadir al nombre del archivo
.DefaultExt = "Txt"
'El usuario solo podr introducir nombres de archivos existentes
.Flags = cdlOFNFileMustExist
'Visualiza el cuadro de dilogo Abrir
.ShowOpen
'Obtiene un nmero de canal libre
Canal = FreeFile
Open .FileName For Input As Canal
'Muestra el nombre del archivo en la barra de ttulo del formulario
Form1.Caption = .FileName
End With
'Borra el texto actual del control Text1
Text1.Text = " "
Input #Canal, Cadena1, Cadena2, Nmero1, Estado1, Estado2, Estado3, Estado4, Nmero2
With Text1
.Text = Cadena1
.FontName = Cadena2
.FontSize = Nmero1
.FontBold = Estado1
.FontItalic = Estado2
.FontUnderline = Estado3
.FontStrikethru = Estado4
.ForeColor = Nmero2
End With
Close #Canal 'Cierra el archivo
'Borra el mensaje del primer panel de la barra de estado
StatusBar1.Panels(1).Text = " "
Modificado = False 'Desactiva el indicador de modificado
Exit Sub
ManipularErrorAbrir:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido al abrir el archivo"
End If
End Sub
Public Sub Guardar()
'Procedimiento para guardar un archivo de texto
On Error GoTo ManipularErrorGuardar
StatusBar1.Panels(1).Text = "Guardando archivo"
With CuadroDeDilogo
.CancelError = True
.DefaultExt = "txt"
.Filter = "Texto|*.txt|Todos los archivos|*.*"
'Muestra un mensaje preguntando si desea sobreescribir el archivo
.Flags = cdlOFNOverwritePrompt
'Muestra el cuadro de dilogo Guardar como
.ShowSave
Canal = FreeFile
Open .FileName For Output As #Canal
Form1.Caption = .FileName
End With
'Escribir en el archivo los datos necesarios
With Text1
Write #Canal, .Text, .FontName, .FontSize, .FontBold, .FontItalic, .FontUnderline, .FontStrikethru, .ForeColor
End With
Close #Canal
StatusBar1.Panels(1).Text = " "
Modificado = False
Exit Sub
ManipularErrorGuardar:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido al guardar el archivo"
End If
End Sub
Public Sub Imprimir()
'Procedimiento para imprimir el aspecto actual del formulario
Dim copias As Byte
On Error GoTo ManipularErrorImprimir
StatusBar1.Panels(1).Text = "Imprimiendo archivo"
With CuadroDeDilogo
.CancelError = True
.Flags = cdlPDNoSelection Or cdlPDNoPageNums Or cdlPDHidePrintToFile
.PrinterDefault = True
'Muestra el cuadro de dilogo Imprimir
.ShowPrinter
copias = .Copies
End With
'Fijar el nmero de copias
Printer.Copies = copias
'Tomar el estilo de texto
Printer.Font = Text1.Font
'Imprimir el texto actual
Printer.Print Text1.Text
Printer.EndDoc 'Fin de impresin
StatusBar1.Panels(1).Text = " "
Exit Sub
ManipularErrorImprimir:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido"
End If
End Sub
Public Sub Copiar()
'Una copia del texto seleccionado en el cuadro de texto
'Text1 pasa al portapapeles (Clipboard)
Clipboard.SetText Text1.SelText
'Activa la opcin Pegar del men Edicin
EdicinPegar.Enabled = True
'Activa el boton Pegar de la barra de erramientas
Toolbar1.Buttons(7).Enabled = True
End Sub
Public Sub Cortar()
'Una copia del texto seleccionado en el cuadro de texto
'Text1 pasa al portapapeles (Clipboard)
Clipboard.SetText Text1.SelText
'Borra el texto seleccionado
Text1.SelText = ""
'Inhabilita la opcin Copiar del men Edicin
EdicinCopiar.Enabled = False
'Habilita la opcin Pegar del men Edicin
EdicinPegar.Enabled = True
'Inhabilita la opcin Fuente del men Formato
FormatoFuente.Enabled = False
'Inhabilita el boton Copiar de la barra de herramientas
Toolbar1.Buttons(5).Enabled = False
'Inhabilita el boton Cortar de la barra de herramientas
Toolbar1.Buttons(6).Enabled = False
'Habilita el boton Pegar de la barra de herramientas
Toolbar1.Buttons(7).Enabled = True
End Sub
Public Sub Pegar()
'Transfiere texto desde el portapapeles hacia el cuadro de texto Text1
Text1.SelText = Clipboard.GetText()
End Sub
Public Sub Fuente()
'Procedimiento que modifica el estilo del texto
On Error GoTo ManipularErrorFuente
StatusBar1.Panels(1).Text = "Aplicando estilo"
With CuadroDeDilogo
.CancelError = True
'Fijar el estilo actual en el cuadro de dilogo
.FontName = Text1.FontName
.FontSize = Text1.FontSize
.FontBold = Text1.FontBold
.FontItalic = Text1.FontItalic
.FontUnderline = Text1.FontUnderline
.FontStrikethru = Text1.FontStrikethru
.Color = Text1.ForeColor
.Flags = cdlCFBoth Or cdlCFEffects
'Muestra el cuadro de dilogo Fuente
.ShowFont
'Aplica al cuadro de texto Text1 el estilo elegido
Text1.FontName = .FontName
Text1.FontSize = .FontSize
Text1.FontBold = .FontBold
Text1.FontItalic = .FontItalic
Text1.FontUnderline = .FontUnderline
Text1.FontStrikethru = .FontStrikethru
Text1.ForeColor = .Color
End With
StatusBar1.Panels(1).Text = " "
Exit Sub
ManipularErrorFuente:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Modificado Then
rpta = MsgBox("Desea guardar los cambios realizados en el documento?", vbYesNo, "Mi Editor")
If rpta = vbNo Then
Exit Sub
Else
Call Guardar
End If
End If
End Sub
Private Sub Text1_Change()
Modificado = True
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Habilita/Inhabilita el botn Copiar si Seleccion/No seleccion
'texto en el cuadro de texto Text1.
Toolbar1.Buttons(5).Enabled = (Text1.SelLength > 0)
'Habilita/Inhabilita el botn Cortar si Seleccion/No seleccion
'texto en el cuadro de texto Text1.
Toolbar1.Buttons(6).Enabled = (Text1.SelLength > 0)
'Habilita/Inhabilita la opcin Copiar del men Edicin si Seleccion/No seleccion
'texto en el cuadro de texto Text1.
EdicinCopiar.Enabled = (Text1.SelLength > 0)
'Habilita/Inhabilita la opcin Cortar del men Edicin si Seleccion/No seleccion
'texto en el cuadro de texto Text1.
EdicinCortar.Enabled = (Text1.SelLength > 0)
'Habilita/Inhabilita la opcin Fuente del men Formato si Seleccion/No seleccion
'texto en el cuadro de texto Text1.
FormatoFuente.Enabled = (Text1.SelLength > 0)
End Sub
(17) Visualiza Imgenes
ControlPropiedad Valor
Form1 NameForm1
Caption Imgenes
BorderStyle5-Sizable ToolWindow
BackColor&H80000001&
Label1 Name Labell
AutoSizeTrue
BackStyle0-Transparent
BorderStyle 0-None
Caption Abrir imagen
Font Comic Sans MS
ForeColor &H000000FF&
Label2NameLabeI2
AutoSizeTrue
BackStyle0-Transparent
BorderStyle0-None
CaptionSalir
FontComic Sans MS
ForeColor&H000000FF&PictureBoxNamePicturel
BorderStyle0-None
VisibleFalse
Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo ManipularErrorAbrir
'Limpia el control Picture Box
Picture1.Picture = LoadPicture()
CommonDialog1.CancelError = True
CommonDialog1.DialogTitle = "Abrir imgenes"
CommonDialog1.Filter = "Imagenes (.gif)|*.gif|Imgenes (.jpg)|*.jpg|Imgenes (.bmp)|*.bmp|Todos los archivos (*.*)|*.*"
CommonDialog1.FilterIndex = 3
'Muestra el cuadro de dilogo Abrir
CommonDialog1.ShowOpen
'Inserta la imgen seleccionada en el control picture box
Picture1.Picture = LoadPicture(CommonDialog1.FileName)
'Hace visible el control PictureBox
Picture1.Visible = True
'Asigna el color rojo al control Label1
Label1.ForeColor = &HFF&
Exit Sub
ManipularErrorAbrir:
If Err.Number = 32755 Then
Exit Sub
Else
MsgBox "Error desconocido al abrir el archivo"
End If
End Sub
Private Sub Label2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Unload Me 'Cierra el formulario
End 'Finaliza la ejecucin del programa
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Al mover el puntero del mouse sobre el control label1
'el color amarillo se asigna al control label1
Label1.ForeColor = &HFFFF& 'Color amarillo
End Sub
Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Al mover el puntero del mouse sobre el control label2
'el color amarillo se asigna al control label2
Label2.ForeColor = &HFFFF& 'Color amarillo
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Al mover el puntero del mouse sobre el formulario, se
'asigna el color rojo a los controles Label1 y Label2
Label1.ForeColor = &HFF&
Label2.ForeColor = &HFF&
End Sub
Private Sub Picture1_Resize()
'Redimensiona el tamao del formulario en funcin
'del tamao del control PictureBox
Form1.Top = 0
Form1.Left = 0
Form1.Width = Picture1.Width + 360
Form1.Height = Picture1.Height + 960
End Sub
Ing. Hermas Herrera Callejas Pgina : 6 de 6