EDITOR DE TEXTO

metano
24 de Mayo del 2006
Estoy haciendo un editor de texto y necesito alinear el texto que esta dentro de un JTextArea.(centrado,izquierda,derecha yjustificado),O CUAL COMPONENTE DEBO USAR.

UN SALUDO! GRACIAS

Yuri Lizama
24 de Mayo del 2006
EDITOR DE TEXTO TIPO NOTEPAD POR Y.L.

Hola los que saben o al menos intentan programar en Visual Basic(para Uds va este tutorial, porque yo empecé así, en 0). En esta ocasión les explicaré como crear un editor de texto simple, para no hacer esto aburrido vamos a los hechos, Solo lean bien el contenido ya que ahí explico para es cada cosa, Bien a Trabajar:


Primero creamos un Formulario, póngale el nombre que deseen en este caso lo llamare EditorY en el ponemos un TextBox(en sus propiedades ponle multiLine = True y ScrollBars = 3 - Both), y un Menú con sus respectivos Submenus de esta forma:

Caption = &Nuevo
Name = mnuNew
------------------------

Caption = &Abrir
Name = mnuOpen
------------------------
Caption = &Guardar
Name = mnuSave
------------------------
Caption = Guar&dar Como...
Name = mnuSaveAs
------------------------
Caption = Imprimir
Name = mnuPrint
------------------------

Caption = &Salir
Name = mnuExit
------------------------
Caption = &Copiar
Name = mnuCopy
------------------------
Caption = C&ortar
Name = mnuCut
------------------------
Caption = Pegar
Name = mnuPaste
------------------------
Caption = Seleccionar Todo
Name = mnuSelectAll
------------------------
Caption = Eliminar
Name = mnuDelete
------------------------
Caption = Fuente
Name = mnuFont

Y me olvida un componente vayan al menú Proyecto->Componentes y seleccionen Microsoft Common Dialog control 6.0 (SP3) y en Proyecto-> Referencias seleccionamos Microsoft Word 9.0 Object Library

Ahora que si quieres crear tu propio CommonDilog te explico al final de explicar como se hace un editor de texto parecido a notepad.


Aclaro que pueden poner el nombre que quieran al menu y sus submenus pero asegúrense de colocar cada codigo en su respectivos menus. Estos nombres son los que yo estoy utilizando para este ejm.
Ahora vamos al formulario EditorY

Codigo en el EditorY:

Option Explicit

Private Modificado As Boolean ‘verifica si el texto se modifica o no como verdadero o falso

‘FUNCION PUBLICA PARA PASAR EL CONTENIDO DE UN TEXTBOX WORD
Public Sub AbrirWord_Click()
'Pasar el contenido del TextBox a Microsoft Word, para ello decimos que el documento de la aplicación de word contendra lo escrito en nuestro textBox
Dim MSWord As New Word.Application
Dim Documento As Word.Document
Dim Parrafo As Paragraph


Set Documento = MSWord.Documents.Add
Set Parrafo = Documento.Paragraphs.Add

Parrafo.Range.InsertAfter Text1.Text

MSWord.Visible = True
End Sub

Private Sub Form_Load()
Dim i As Long, tamFic As Long

'Llamamos a Crear Asociacion pasandole la ruta de nuestro Exe, _
luego la extención a registrar, una descripción , y el último es el _
path opcional para asociar la extención con un icono, que debe estar _
en una dll o será un icono personalizado en este ejm. “Miicono.ico” y la extensión “.yal”.

CrearAsociacion App.Path & "" & App.EXEName, "yal", "Mi Documento Yal", "iconosmiicono.ico" ‘App.Path (es la ruta del .exe ejm. C:Mi exe) y(&) y(&) App.EXEName (es el nombre del .exe ejm. EditorY.exe) lo que nos quedaria la ruta C:Mi exeEditorY.exe, tan facil como eso (para los que recien se inician en la programación de VB6).

'Ahora recibimos el valor de la linea de comandos, si es distinta de un a cadena vacia osea a nada entonces
'Leemos el archivo con el método FreeFile del TextBox, pasandole la ruta, al Command$ es la ruta del documento que contenga la extensión .yal o cualquier extensión que quieran registrar.
If Command$ <> "" Then
i = FreeFile ‘Utilizamos el freeFile para abrir el Texto cuando hagamos doble click en el documento.yal
Open Command$ For Input As I ‘abrimos la ruta del Command$ en donde sea que este en Mis documento en C: o en donde este.
tamFic = LOF(i) ‘le decimos que el textbox abra el documento con la ruta command& utilizando el FreeFile
Text1.Text = Input$(tamFic, i)
Close i ‘cerramos i
Caption = Command$ & " – Mi Editor" ‘colocamos l nombre del documento en el caption del Formulario
Modificado = False ‘le decimos al textBox que no se modifique cuando abrimos el documento
CommonDialog.FileName = Command$ ‘le decimos al commonDialog que la ruta del archivo es igual a la ruta de Command$, esto para que cuando modifiques el documento lo siga guardando en el mismo y no se abra guardar como un documento que no existe.
Else
VerNuevoDoc 'Llamada a la operacion de nuevo documento en caso se abra el .exe sin utilizar un domento de extensión .yal, para que entiendan abrir EditorY.exe de forma normal y se coloque en el caption del formulario “Mi Documento 1 – Mi Editor”
End If
End Sub

Private Sub Form_Unload(Cancel As Integer) ‘Esta parte indica que al cerrar el formulario se preguntara si desea guardar los cambios si es que el texto se ha modificado o no
mnuExit_Click ‘ Para ello nos vamos al menú salir donde se encuentra el código de salida
End Sub

Public Sub imprimeLineas(Texto As Object, Linea As Integer)
‘Funcion para imprimir el texto del editor
On Error GoTo NoImprimir ‘el On Error nos sirve para enviar cualquier error que suceda al ejecutar el comando a una determinada función en este caso NoImprimir (puede ser cualquier nombre que deseen pero recuerden poner ese nombre al final de declarar toda la función en nuestro ejm NoImprimir:) <- no es una carita feliz es el fin de la función, NoImprimir:
Dim i As Long
Dim Bloque As String
'Numero de caracteres = NumC
'Numero de Bloques = NumB
Dim NumC, NumB As Integer
NumC = Len(Texto.Text) ‘Numero de caracteres igual ala longitud del texto
If NumC > Linea Then
NumB = NumC Linea
For i = 0 To NumB ‘ Para no complicarnos decimos que imprimimos de 0 lineas hasta las lineas que exista para todo esto utilizamos un bucle, estudien bien cada codigo puesto aquí
Texto.SelStart = (Linea * i)
Texto.SelLength = Linea
Bloque = Texto.SelText
Printer.Print Bloque
Next i
Else
Printer.Print Texto.Text
End If
Printer.EndDoc
NoImprimir: ‘No imprime si sucede algun error
End Sub

Private Sub mnuAbrir_Click()
On Error GoTo NoAbrir ‘el On Error nos sirve para enviar cualquier error que suceda al ejecutar el comando a una determinada función en este caso NoAbrir (puede ser cualquier nombre que deseen pero recuerden poner ese nombre al final de declarar toda la función en nuestro ejm NoAbrir: y le podemos poner un mensaje el que queramos como lo veremos abajo)

Dim sFile As String
Dim i As Long, tamFic As Long

With CommonDialog ‘solo decimos que con(With) realizamos todas las funciones que contiene este componente.
.DialogTitle = "Abrir Documento..." ‘titulo del commondialod
.FileName = sFile ‘Nombre del Archivo, decimos que es igual a sFile, este para poder asignar la ruta al textBox
'Filter indicadores y atributos del control common dialog
.Filter = "Mi Documento YAL (*.yal; *.txt)|*.yal; *.txt|Todos los archivos(*.*)|*.*"
.ShowOpen ‘abrimos el commonDialog
If Len(.FileName) Then ‘ este punto ya lo explicamos en el Form_Load()
sFile = .FileName
i = FreeFile
Open sFile For Input As i
tamFic = LOF(i)
Text1.Text = Input$(tamFic, i)
Close i
End If
If Len(.FileName) = 0 Then ‘ en este punto decimos que si no hay ningun archivo el caption del formulario es igual al mismo nombre osea “Mi documento 1 o sea el numero de documento en que estemos o sea el nombre del ducumento que tengamos abierto en ese momento, esto es para evitar errores cuando pulsemos cancelar y no escojamos ningun documento y no se coloque ningun nombre en el caption del Formulario”
Caption = Caption
Else ‘si abrimos un documento se asignara el nombre(.FileTitle) del documento que abramos
Caption = .FileTitle & " - Mi Editor"
End If
End With

Modificado = False ‘le decimos que el texto no se modifica cuando se abre
Exit Sub
NoAbrir: ‘si hay error al abrir mandamos el contenido a Microsoft word, porque a Microsoft word... para que sepan como pasar un documento de texto en VB6 a word.
If MsgBox (“El texto es demasiado grande para abrirlo con Mi Editor...” &vbCrLf & _ ¿desea abrirlo con Microsoft Word?”, vbQuestion + vbYesNo) = vbYes Then ‘Mensaje si hay error en abrir
AbrirWord ‘llamada a función para abrir word
End Sub
Private Sub mnuCopy_Click()
'Copiar Texto
Clipboard.Clear
Clipboard.SetText Text1.SelText
Text1.SetFocus
End Sub

Private Sub mnuCut_Click()
'Cortar Texto
Clipboard.SetText Text1.SelText
Text1.SelText = ""
Text1.SetFocus
End Sub

Private Sub mnuEliminar_Click()
'Eliminar Texto
Text1.SelText = ""
End Sub

Private Sub mnuExit_Click()
If Modificado Then 'verificar si el texto esta Modificado, fijate bien en esto cuando presionamos salir preguntamos si esta modificado y si(If) en el mensaje presionamos Aceptar (vbYes) entonces se presionará guardar.
If MsgBox("El documento ha sido modificado..." & vbCrLf & _
"¿Desea Guardar el documento antes de salir del editor?", vbQuestion + vbYesNo) = vbYes Then
mnuSave_Click
End If
End If
End
End Sub

Private Sub mnuFont_Click()
CommonDialog.flags = cdlCFBoth Or cdlCFEffects
'observar el tipo de fuente que tendra nuestro textBox
CommonDialog.FontName = "Ms Sans Serif"
CommonDialog.ShowFont
If Err <> 32755 Then

Text1.Font = CommonDialog.FontName
Text1.ForeColor = CommonDialog.Color
Text1.FontItalic = CommonDialog.FontItalic
Text1.FontBold = CommonDialog.FontBold
'Aquí indicamos que la fuente del textbox es igual a la fuente del commonDialog, asi como el color ect,ect,ect...
'como te dije en un comienzo estudia bien los codigos puestos aquí ya que te los estoy explicando no es solo copiar y ya hay que saber porque va cada cosa por las....¡’?@ no te estoy expklicando paso a paso todo ...Perdón pero es que me interesa que aprendan
End If
End Sub

Private Sub mnuNew_Click()
'Si el texto se ha modificado preguntar si se guarda o no
If Modificado Then ‘si el texto se ha modificado preguntará si se guarda o no
If MsgBox("El documento ha sido modificado..." & vbCrLf & _
"¿Desea guardar el documento?", vbQuestion + vbYesNo) = vbYes Then ‘si sale el mensaje de guardar verificar si se presiona aceptar(vbYes) si es igual a este entonces presionamos mnuSave(Guardar). Si no simplemente se pierde la información y generamos un nuevo documento ...como? lo veremos en un momento.
mnuSave_Click
End If
End If

'Abrir Documento en blanco
Text1.Text = "" 'Pone el texto en blanco, simplemente borra el contenido escrito en el.
VerNuevoDoc ‘Llama a la funcion que hace que aumente los numeros 1, 2, 3 etc. Recuerda que esto lo hace en el caption de Formulario.
Modificado = False ‘hace que el TextBox(Text1.Text) se vuelva a no modificado.
CommonDialog.FileName = "" ‘hace que el commondDialog no contenga ningun documento para que sea guardado como nuevo y no reemplace nuestro documento que habiamos trabajado anteriormente.
End Sub

Private Sub mnuPaste_Click()
'Pegar Texto
Text1.SelText = Clipboard.GetText()
Text1.SetFocus
End Sub

Private Sub mnuPrint_Click()
'Imprime X lineas, X es 60 en este ejmplo
imprimeLineas Text1, 60 ‘Llamamos a la funcion imprime lineas
End Sub

Private Sub mnuSave_Click()
Dim sFile As String
Dim i As Integer

If Len(CommonDialog.FileName) = 0 Then ‘Aquí decimos que si el commonDialog es igual a 0 osea que no contiene ningun achivo se abra el commonDialog con
mnuSaveAs_Click ‘el menu guardar como...
Else ‘y si hay un archivo abierto simplemente se omitira abrir guardar como y se guardara lo modificado el documento ya abierto con la funcion commonDialog.FileName
i = FreeFile
Open CommonDialog.FileName For Output As i
Print #i, Text1.Text
Close i
End If

mnuSave.Enabled = False ‘colocamos el menu guardar a Enabled = False
Modificado = False ‘le decimos al editor que como se guardo no hay nada que quede modificado hasta que se vuelva a escribir en el.
End Sub

Private Sub mnuSaveAs_Click()
On Error GoTo NoGuardar ‘lo mismo explicado anteriormente que si hay error no guarde
Dim sFile As String
Dim i As Long

With CommonDialog ‘Esta función hace que el commondialog se abra siempre que queremos guardar un nuevo documento (estúdienlo bien ya que parte de este codigo ha sido explicado anteriormente).
.DialogTitle = "Guardar Documento..."
.FileName = sFile
'establecer los indicadores y atributos del control common dialog en Filter
.Filter = "Mi Documento YAL (*.yal)|*.yal|Documento de texto (*.txt; *.wri)|*.txt; *.wri|Todos los archivos (*.*)|*.*"
.ShowSave ‘abre el commonDialog para guaradra documento.
If Len(.FileName) Then ‘recuerda que .FileName es la ubicación del archivo ejm. C:Mis documentosmi documento.yal. Que .FileTitle es el nombre del documento ejm. Mi documento.yal, asi que lo que nos quiere decir esto es que si(If) la longitud(Len) es .fileName(C:Mis do......) entonces(then) se guarda el documento con el FreeFile en la ubicación del .FileName
sFile = .FileName
i = FreeFile
Open .FileName For Output As i
Print #i, Text1.Text
Close i
End If
If Len(.FileName) = 0 Then ‘Aquí decimos que si se presiona cancelar y no se guarda el documento sigue conservando el nombre que tiene sea documento 1 o el nombre del documento con que se esta trabajando actualmente.
Caption = Caption
Else ‘ y si lo guardamos se colocara el nombre con que lo guardamos
Caption = .FileTitle & " - Mi Editor"
End If
End With
Modificado = False ‘ le decimos al textbox que ya no hay nada modificado
NoGuardar: ‘ si hay error se viene aquí
End Sub

Private Sub mnuSelect_Click()
'Seleccionar todo el texto
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub

Private Sub VerNuevoDoc()
'Esta funcion hace que el nombre del nuevo documento aumente progresivamente
'Ejm. documento 1, documento 2,3,4.... ect, ect, cada vez que se presione Nuevo Documento.
Static lDocumentCount As Long ‘se crea un valor estatico
lDocumentCount = lDocumentCount + 1 ‘se indica que el valor estatico sea igual a este mas 1, en pocas palabras que aumente cada vez que sea llamado.
Caption = "Mi Documento " & lDocumentCount & " – Mi Editor” ‘Hacemos que el caption del formulario se escriba lo siguiente: Mi documento 1 – Mi Editor.
End Sub

Private Sub Text1_Change()
Modificado = True ‘Aquí solo indicamos que si se modifica el texto Modificado cambia a verdadero
lblGuardar.Enabled = True ‘ hace que le quite el enabled al menú guardar
End Sub
EN UN MODULO .BAS COPIA LO SIGUIENTE y como te dije analiza lo que va aquí no seas flojo... J

Option Explicit


'Funciones Api para leer, abrir, cerrar y escribir en el registro
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long
Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
Public Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long

'Constantes varias para las funciones Api del registro
Public Const REG_SZ As Long = 1
Public Const REG_DWORD As Long = 4

Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const ERROR_NONE = 0
Public Const ERROR_BADDB = 1
Public Const ERROR_BADKEY = 2
Public Const ERROR_CANTOPEN = 3
Public Const ERROR_CANTREAD = 4
Public Const ERROR_CANTWRITE = 5
Public Const ERROR_OUTOFMEMORY = 6
Public Const ERROR_INVALID_PARAMETER = 7
Public Const ERROR_ACCESS_DENIED = 8
Public Const ERROR_INVALID_PARAMETERS = 87
Public Const ERROR_NO_MORE_ITEMS = 259
Public Const KEY_ALL_ACCESS = &H3F
Public Const REG_OPTION_NON_VOLATILE = 0

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long


Public Declare Function OSRegOpenKey Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long
Global Const HKEY_CLASSES_ROOT = &H80000000
Public Const ERROR_SUCCESS = 0&

Private Declare Sub SHChangeNotify Lib "shell32.dll" _
(ByVal wEventId As Long, _
ByVal uFlags As Long, _
dwItem1 As Any, _
dwItem2 As Any)

Const SHCNE_ASSOCCHANGED = &H8000000
Const SHCNF_IDLIST = &H0&


Public Sub CrearAsociacion(RutadelExe As String, EXT As String, Descripción As String, LibreriaIcono As String)
‘Aquí decimos que RutadelExe es igual a donde estara ubicado nuestro .exe, EXT es la extensión que utilizaremos y descripción es la descripción que va como identificador del documento ejemplo documento.yal su descripción es Documento de YAL, y libreríaIcono es el icono que tendra nuestro documento .yal
Dim sPath As String

sPath = App.Path & "" & "EditorY.exe" & " %1"

CreateNewKey "." & EXT, HKEY_CLASSES_ROOT
SetKeyValue "." & EXT, "", RutadelExe, REG_SZ

CreateNewKey RutadelExe & "shellopencommand", HKEY_CLASSES_ROOT
CreateNewKey RutadelExe & "DefaultIcon", HKEY_CLASSES_ROOT

SetKeyValue RutadelExe, "", Descripción, REG_SZ
SetKeyValue RutadelExe & "shellopencommand", "", sPath, REG_SZ
SetKeyValue RutadelExe & "DefaultIcon", "", LibreriaIcono, REG_SZ
SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0

End Sub

‘Ahora las funciones para el registro
Private Sub CreateNewKey(sNewKeyName As String, lPredefinedKey As Long)
'handle para la nueva clave
Dim hKey As Long
'retorno de la función RegCreateKeyEx
Dim r As Long
r = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hKey, r)
Call RegCloseKey(hKey)
End Sub

Public Sub SetKeyValue(sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)
'retorno de funcion SetValueEx
Dim r As Long
'handle
Dim hKey As Long
'Abrimos la clave especifica
r = RegOpenKeyEx(HKEY_CLASSES_ROOT, sKeyName, 0, KEY_ALL_ACCESS, hKey)
r = SetValueEx(hKey, sValueName, lValueType, vValueSetting)
'cerramos la clave abierta pasandole el handle
Call RegCloseKey(hKey)
End Sub


Private Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
Dim nValue As Long, sValue As String

Select Case lType
'Valor de Cadena
Case REG_SZ
sValue = vValue & Chr$(0)
'Establecemos el valor en el registro
SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue))
'Valor entero
Case REG_DWORD
nValue = vValue
'Establecer el valor en el registro
SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, nValue, 4)
End Select
End Function

Esto solo es adicional no coloquen dentro del codigo del formulario es solo si quieren crear un efecto con un Label, vamos al ejemplo, solo coloquen un Label que tenga el color blanco:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = vbWhite ‘si pasamos el roton por el formulario el Label tendra el color Blanco y si lo ponemos encima del Label se pondra de Color Rojo.
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = vbRed
End Sub

Bueno como les dije en alguna parte de este tutorial les explicare como hacer un commond dialog, en un Modulo con nombre “MiDialogo.bas” pongan lo siguiente:

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
Dim OFName As OPENFILENAME

Public Function AbrirArchivo(f As Form, extenciones As String, titulo As String) As String
With OFName
.lStructSize = Len(OFName)
.hwndOwner = f.hWnd
.hInstance = App.hInstance
.lpstrFilter = extenciones
.lpstrFile = Space$(254)
.nMaxFile = 255
.lpstrFileTitle = Space$(254)
.nMaxFileTitle = 255
.lpstrInitialDir = "C:Mis documentos"
.lpstrTitle = titulo
.flags = 0

If GetOpenFileName(OFName) Then
AbrirArchivo = Trim$(OFName.lpstrFile)
Else
AbrirArchivo = ""
End If
End With
End Function

Public Function GuardarComo(f As Form, extenciones As String, titulo As String) As String
With OFName
.lStructSize = Len(OFName)
.hwndOwner = f.hWnd
.hInstance = App.hInstance
.lpstrFilter = extenciones
.lpstrFile = Space$(254)
.nMaxFile = 255
.lpstrFileTitle = Space$(254)
.nMaxFileTitle = 255
.lpstrInitialDir = "C:Mis documentos"
.lpstrTitle = titulo
.flags = 0
If GetSaveFileName(OFName) Then
GuardarComo = Trim$(.lpstrFile)
Else
GuardarComo = ""
End If
End With
End Function


Ahora en un formulario coloquen un TextBoxy un CommandButton:

Private Sub Command1_Click()
Dim NomArchivo As String, tipoArchivos As String

tipoArchivos = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
NomArchivo = MiDialogo.AbrirArchivo(Me, tipoArchivos, "Selecciona un archivo") ‘Aquí MiDialogo es el modulo donde estan las funciones, tipo de Archivo es el archivo seleccionado y “seleccionar un archivo es el nombre que tendra nuestro commonDialog como titulo mejor dicho el DialogTitle de VB6”
If NomArchivo <> "" Then
Text1.Text = NomArchivo ‘ en el textbox aparecera la direccion abierta si desean abrir el contenido solo reemplacen el contenido del FreeFile del Texbox por este.
End If
‘SI QUIEREN GUARDAR SOLO REEMPLACEN MiDialogo.AbrirArchivo por MiDialogo.GuardarComo y ponerle como titulo guardarComo… o lo que quieran en “seleccionar archivo”.
End Sub

Bueno muchachos esto es todo por hoy ojalá lo sepan aprovechar y si hay algo que no esta bien explicado pues me disculpara pero yo soy un AUTODIDACTA DE LA PROGRAMACIÓN VISUAL BASIC, pero empece como Uds. queriendo hacer programas y teniendo muchas veces frustaciones porque no encontraba todo lo que queria encontrar para hacer mis programas. Hay que dar gracias a muchas personas de buen corazón que publican articulos con pequeñas ayudas para nosotros como el Guille, el guro y muchos mas de los cuales obtuve muchas pequeñas ayudas para aprender un poco cada dia aunque lastima que siempre no estaba todo lo que queria pero después de mucha búsqueda al de programación se, No es que me queje de ellos al contrario dan mucha ayuda para aprender, pero como se que hay muchos de nosotros que quieren aprender todo y mucho mas así que me tome el tiempito para explicar y aclarar todas las dudas al menos creo yo (si falta algo me lo hacen saber) de los que recien se inician en este mundo de la programación, en este caso la unica tarea para la casa es analizar el codigo explicado en este tutorial no hay como piar texto capitulo 10 NO NO todo esta aquí que es la mejor forma de aprender analizando tu mismo para sirve cada cosa si no lo haces así ponte una etiqueta en la frente soy uno del monton... un proximo capitulo, bueno adios y aquí le dejo una imagen del editor que creé que obviamente tiene mas funciones que las explicadas aquí y es gratis para los 6 primeros que me soliciten el programa como cortecia para que los ayude en la edición de programas ya que esta creado para eso.





Buena Suerte y Hasta Pronto
Puedes comunicarte a:
[email protected] | http://www.rgperu.dgrafico.net.ar M&M
[email protected]
(051-1-99481064) Yuri A. Lizama A
1997 – 2003 –2006 V.A.



rolextreme
24 de Mayo del 2006
Esto es Java