Programa Simple: Crea Una Propiedad De Una Clase


Objetivo: Programa Simple: Crea Una Propiedad De Una Clase
Os traigo, una pequeña utilidad.

Es un programa que cuando le doy el nombre y el tipo de propiedad de una clase, genera el código fuente de la definición de esa propiedad.


definepropiedad.th

Uploaded with ImageShack.us


Este es el código fuente:
' gambas class file

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
ME.caption = "Genera Definicion de Propiedad"
END

PUBLIC SUB ButtonSalir_Click()

ME.close

END

PUBLIC SUB ButtonCrearCodigo_Click()
DIM codigo AS String
codigo = "PROPERTY nombre AS tipo \n"
codigo &= "PRIVATE hnombre AS NEW tipo \n\n"

codigo &= "PRIVATE FUNCTION nombre_read() AS tipo \n"
codigo &= " RETURN hnombre \n"
codigo &= "END \n\n"

codigo &= "PRIVATE SUB nombre_write(Valor AS tipo)\n"
codigo &= " hnombre = Valor \n"
codigo &= "END\n"

codigo = Replace(codigo, "nombre", TextBoxPropiedad.text)
codigo = Replace(codigo, "tipo", ComboBox1.text)

'Para distinguir en pone New en el tipo...
IF InStr(ComboBox1.text, "[]") = 0 THEN codigo = Replace(codigo, "NEW", "")

TextArea1.text = codigo

END



PUBLIC SUB ButtonLimpia_Click()
TextBoxPropiedad.text = ""
TextArea1.text = ""
TextBoxPropiedad.setfocus
END

PUBLIC SUB ButtonCopia_Click()
Clipboard.Copy(TextArea1.text)
END

última edición por jsbsan el Domingo, 15 Enero 2012, 11:02; editado 2 veces

CreadorClases-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: CreadorClases-0.0.1.tar.gz
Tamaño: 12.08 KB
Descargado: 51 veces
CreadorClases-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: CreadorClases-0.0.1.tar.gz
Tamaño: 12.08 KB
Descargado: 51 veces
CreadorClases-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: CreadorClases-0.0.1.tar.gz
Tamaño: 12.08 KB
Descargado: 51 veces

Objetivo: Re: Programa Simple: Crea Una Propiedad De Una Clase
Julio:

Simple, pero interesante.
A veces con pequeños códigos se aprende mucho.

Cuando hago un programa. Acabo haciendo otro más simple para probar como funciona algo determinado del mismo.

La imagen es un poco pequeña. B-)

Saludos.

última edición por Shell el Domingo, 15 Enero 2012, 10:35; editado 1 vez
Objetivo: Re: Programa Simple: Crea Una Propiedad De Una Clase
Con pequeños códigos pueden aprender los que comienzan.

ejemplocadenas

Por muy simple que pueda parecernos un código puede interesar a los principiantes.
Esto es solo un ejemplo.

PUBLIC frase AS String

PUBLIC SUB Form_Open()

END

PUBLIC SUB btnFrase_Click()
frase = InputBox("Introduce tu frase")
txtPizarra.Text = frase
END

PUBLIC SUB BtnSustituir_Click()
DIM letrasustituir AS String
DIM letra AS String

letrasustituir = InputBox("¿ Que letra quieres sustituir ?")
letra = InputBox("¿ Con que letra ?")
frase = Replace$(frase, letrasustituir, letra)
txtPizarra.Text = frase

END


PUBLIC SUB BtnLetraLetra_Click()
DIM posicion AS Integer

txtPizarra.Text = ""
FOR posicion = 1 TO Len(frase)
txtPizarra.Text = txtPizarra.Text & Mid$(frase, posicion, 1)
WAIT 0.1
NEXT

END


PUBLIC SUB BtnMayusculas_Click()
txtPizarra.Text = UCase$(frase)
END

PUBLIC SUB BtnMinusculas_Click()
txtPizarra.Text = LCase$(frase)
END

PUBLIC SUB BtnRepetir_Click()
DIM repeticiones AS Integer
DIM palabra AS String

palabra = InputBox("¿ Qué palabra quieres que se repita?")
repeticiones = InputBox("¿ Cuantas veces ?")
txtPizarra.Text = String$(repeticiones, palabra)
frase = txtPizarra.Text

END


Y asi, pues operaciones con archivos, componentes.Etc,etc.

Saludos.

última edición por Shell el Domingo, 15 Enero 2012, 10:47; editado 1 vez
Objetivo: Re: Programa Simple: Crea Una Propiedad De Una Clase
Shell:

Citar:
Por muy simple que pueda parecernos un código puede interesar a los principiantes.

Pues la verdad es que si, pequeñas funciones y procedimientos, te pueden facilitan mucho el dia a dia.

Citar:
La imagen es un poco pequeña. B-)


He cambiado el servidor donde estaba alojada la imagen, ahora se ve bien.


Saludos

Objetivo: Re: Programa Simple: Crea Una Propiedad De Una Clase
Otro Ejemplo:

operaarchivos

Ejemplos que por muy basicos que nos puedan parecer.En el momento que los hace
para practicar te olvidas de ellos y luego ayudan a mas miembros de la comunidad.

Formulario principal:
PUBLIC SUB Form_Open()
ME.Center()
ME.Caption = "Ejemplo de instrucciones para manejo de ficheros"
END

PUBLIC SUB restaurar()
txtaSalida.Text = ""
Variables.contenido = ""
END

PUBLIC SUB BtnAccess_Click()
restaurar()
PractAccess.miaccess()
txtaSalida.Text = Variables.contenido
END

PUBLIC SUB BtnDir_Click()
restaurar()
PractDir.midir()
txtaSalida.Text = Variables.contenido
END

PUBLIC SUB BtnEof_Click()
DIM archivo AS String

archivo = User.Home &/ "pruebaarchivo.txt"
restaurar()
PractEof.mieof(archivo)
txtaSalida.Text = Variables.contenido
END


PUBLIC SUB BtnExist_Click()
DIM archivo AS String

archivo = User.Home &/ "pruebaarchivo.txt" 'Este archivo existe,llamara al Procedimiento anidado PractEof
'archivo =User.home &/ "noexisto.txt"
restaurar()
PractExist.miexist(archivo)
txtaSalida.Text = Variables.contenido
END

PUBLIC SUB BtnIsDir_Click()
DIM nombreCarpeta AS String

'nombreCarpeta = user.home &/ "noexisto" 'Este directorio no existe
nombreCarpeta = User.Home &/ "Prueba" 'Este directorio existe
restaurar()
PractIsDir.miIsDir(nombreCarpeta)
txtaSalida.Text = Variables.contenido

END

PUBLIC SUB BtnStat_Click()
DIM nombre AS String

nombre = User.Home &/ "Prueba/JuegosDOS"
restaurar()
PractStat.miStat(nombre)
txtaSalida.Text = Variables.contenido
END

PUBLIC SUB BtnTemp_Click()

restaurar()
PractTemp.mitemp()
txtaSalida.Text = Variables.contenido

END


PUBLIC SUB BtnOpenClose_Click()
DIM nombrearchivo AS String

nombrearchivo = User.Home &/ "pruebaarchivo.txt"
restaurar()
PractOpenClose.miopenclose(nombrearchivo)
txtaSalida.Text = Variables.contenido
END


Los diferentes modulo para ver que hace cada instrucción:

PUBLIC SUB miaccess()
DIM archivo AS String

'La instrucción acces determina si un fichero es accesible o no.
'Parece similar a ¿Exist?

archivo = User.Home &/ "pruebaarchivo.txt"
Variables.contenido = Variables.contenido & "El archivo " & archivo & " " & CompruebaSiNo(Access(archivo)) & "\n"

archivo = User.Home &/ "dragon64.txt"
Variables.contenido = Variables.contenido & "El archivo " & archivo & " " & CompruebaSiNo(Access(archivo)) & "\n"

END


PUBLIC FUNCTION CompruebaSiNo(sino AS Boolean) AS String
DIM probar AS String

IF sino = TRUE THEN
probar = "es accesible"
ELSE IF sino = FALSE THEN
probar = "no es accesible"
ENDIF
RETURN probar

END
-------------------
PUBLIC SUB midir()
DIM directorio AS String
DIM fichero AS String

directorio = User.Home
FOR EACH fichero IN Dir(directorio, "*.*").Sort()
Variables.contenido = Variables.contenido & fichero & "\n"
NEXT

END
-------------------
PUBLIC SUB mieof(nomarchivo AS String) 'nombarchivo es el nombre del archivo
DIM hFile AS File 'Nombre del archivo
DIM linea AS String 'Cada linea

OPEN nomarchivo FOR READ AS #hFile
WHILE NOT Eof(hFile)
LINE INPUT #hFile, linea
Variables.contenido = Variables.contenido & linea & "\n"
WEND
CLOSE #hFile
END
----------------------
PUBLIC SUB miexist(nombarchivo AS String)
IF Exist(nombarchivo) THEN
Variables.contenido = "El fichero: " & nombarchivo & " existe." & "\n"
Variables.contenido = Variables.contenido & "El contenido es: " & "\n"
PractEof.mieof(nombarchivo)
ELSE
Variables.contenido = "El fichero: " & nombarchivo & " no existe."
ENDIF
END
------------------------
PUBLIC SUB miIsDir(directorio AS String)
DIM existedirectorio AS Boolean

existedirectorio = IsDir(directorio)
IF existedirectorio = TRUE
Variables.contenido = "El directorio existe"
ELSE
Variables.contenido = "El directorio no existe"
ENDIF

END
---------------------------
PUBLIC SUB miopenclose(nomarchivo AS String)
DIM longitudarchivo AS Integer
DIM linea AS String
DIM hFile AS File

IF Exist(nomarchivo) THEN
OPEN nomarchivo FOR READ AS #hFile
longitudarchivo = Lof(hFile)
WHILE NOT Eof(hFile)
LINE INPUT #hFile, linea
Variables.contenido = Variables.contenido & linea & "\n"
WEND
CLOSE #hFile
ELSE
Variables.contenido = Variables.contenido & "El archivo: " & nomarchivo & " no existe"
ENDIF
END
-----------------------------
PUBLIC SUB miStat(informacion AS String)

IF Exist(informacion) THEN
Variables.contenido = "Tamaño: " & Round(Stat(informacion).Size / 1024) & "K" & "\n"
Variables.contenido = Variables.contenido & "Grupo: " & Stat(informacion).Group & "\n"
Variables.contenido = Variables.contenido & "Ultimo acceso: " & Format$(Stat(informacion).LastAccess, "dd/mm/yy") & "\n"
Variables.contenido = Variables.contenido & "Ultimo cambio: " & Format$(Stat(informacion).LastChange, "dd/mm/yy") & "\n"
Variables.contenido = Variables.contenido & "Ultima modficiación: " & Format$(Stat(informacion).LastModified, "dd/mm/yy") & "\n"
Variables.contenido = Variables.contenido & "Ruta: " & Stat(informacion).Path & "\n"
Variables.contenido = Variables.contenido & "Fecha y hora de creación " & Format$(Stat(informacion).Time, "dd/mm/yy hh:nn:ss") & "\n"
Variables.contenido = Variables.contenido & "Usuario: " & Stat(informacion).User & "\n"
ELSE
Variables.contenido = "El archivo o carpeta no existe"
ENDIF
END
---------------------------
PUBLIC SUB mitemp()

Variables.contenido = 24
">Temp$()

END
--------------------------
PUBLIC contenido AS String



Podemos aprender con ejemplos simples.Como se va haciendo más grande el programa.
Por cierrto, el modulo para probar Temp$. No salio bien al convertirlo en código.

Saludos.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 4.8425s (PHP: -90% SQL: 190%)
Consultas SQL: 49 - Debug off - GZIP Activado