La verdad es que en muchos casos en .NET no tengo ni idea de lo que hago, solo se que esto o lo otro funciona o hace esto o aquello. En fin que hace lo que yo quiero.
Voy a aclarar algunos puntos.
A. No soy programador, solo aficionado. No trabajo para ninguna empresa ni tengo intención de ello, ni creo que pueda.
B. Acabo de empezar con VB.NET hace como un par de meses o tres, más o menos. Empecé tonteando un poco para adaptarme al entorno, del cual solo he usado seguramente como el 2% de lo que tiene.
C. No soy "programador" de escuela, ni de libro, es decir, no estudio la teoría, aprendo de forma empírica. Quiero hacer algo y busco la forma. Muchas veces es a base de prueba y error. Por supuesto entiendo conceptos como array, bucles, funciones, eventos, etc. y leo definiciones, que muchas veces tengo que decirlo no las entiendo. Por ejemplo, hace unos días pregunté sobre el operador XOR porque por la definición del MSDN no entendía ni papa. Pero afortunadamente dos usuarios respondieron de forma fantástica y pude entenderlo.
D.
¿Ese es el código completo que estás utilizando?
Me gusta programar por bloques, algo así como una conexión en red pero de código. No me gusta mezclarlo todo, porque en el momento que se me ocurre algo y quiero hacer una modificación, puede resultar o bien que la modificación produzca un error que me obliga a modificar todo o empezar casi desde el principio por incompatibilidad o bien haya pasado tanto tiempo desde que revisé el código que ya no recuerdo ni lo que hice y no se lo que hacía esto o aquello, sobre todo con códigos muy grandes.
También facilita y agiliza la creación de programas pues solo tengo que hacer un copia y pega. Tengo cientos de plantillas de código simple y ejemplos sólo de VB, los cuales hacen lo básico y lo importante. Por supuesto son modificables y ajustables a la necesidades del programa.
Y por supuesto mi me memoria es pésima, cuando dejo de usar algo se me olvida, y es muy práctico tener un código de ejemplo para cuando lo necesite.
El código que he puesto NO es el programa que estoy haciendo, tan sólo quiero hacer como he dicho un bloque de código independiente que me va a servir para el programa o para futuros programas. Tan sólo quiero:
Form1 (o cualquier otro, o módulo)
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-Llama a la función y la URL
-Recibir información de descarga mientras se produce
-Opción cancelar
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▲
•
•
•
▼
Bloque de código aparte
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- Función de descarga con la URL
- Obtener información de descarga
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Por lo tanto como ejemplo y como base, tan solo necesito un label el cual va a recibir la información del porcentaje, todo lo demás es irrelevante.
A veces encuentro en la red, que gente pone ejemplos supercomplejos, casi programas completos, con variables incomprensibles, por ejemplo como usar un Listview, y en lugar de decir para crear columnas, tal, para introducir filas, tal, para esto tal. Pues te ponen un entramado inconprensible que tienes que ir desglosando. Lo cual dificulta el aprendizaje de aquellos que están aprendiendo y solo buscan algo muy concreto. Además, no todos somos unos gurús de la informática. Esto me ha pasado especialmente, buscando información sobre GDI, que siempre aparecen ejemplo de programas completos y bastante complejos. Hace poco modifiqué un programa de Leandro (no se qué) que semitransparenta un Form de modo que se vean nítidamente los controlos y demás pero el fondo del form sea semitransparente. Pero tengo que decir que no comprendo el código completo. Tuve que modificarlo porque su código degradaba el form en dos colores sin opción o propiedad 'set' para cambiar dichos colores o ponerlo todo a un solo color. También hace poco también puse un ejemplo muy sencillo para convertir una imagen en blanco y negro con GDI. Poniendo lo básico, sin florituras.
Estas cosas:
AddHandler, Task, WithEvents, RaiseEvent ,IsNullOrWhiteSpace, InvokeRequired
todavía no se como van, es nuevo para mí, tendré que mirar uno por uno para poder entender el código y conseguir lo que busco.
Intentaré conseguir lo más básico y simple posible y luego lo colgaré.
Sl2