Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#9681
Multimedia / Re: Dónde descargar música?
11 Enero 2013, 04:02 AM
http://www2.mrtzcmp3.net

Es lo mejor y más variado que hay (Mejor que el beemp3 y mp3skull, apúntatelas también), tiene un límite de 20 o 30 archivos al día, que se puede saltear muy fácilmente usando un proxy (UltraSurf).

Saludos
#9682
UPS, ME EQUIVOQUÉ DE SECCIÓN, LO PUEDEN MOVER A VB.NET PORFAVOR? XD SORRY










Estaba ayudando a un user que no sabía como usar una barra de progreso, y bueno, hice este form.

Cuando lo completé me dí cuenta de que a mi me habría servido cuando no sabía hacer nada de esto, así que quiero compartirlo por si a alguien le puede servir :xD

Cita de: Yo en otro foroCon mi ejemplo puedes aprender a...:
· Crear / Añadir controles en tiempo de ejecución,
· Modificar algunas propiedades de controles
· Asociar el evento de un control en tiempo de ejecución a una subrutina
· Usar las variables de entorno
· Obtener todos los archivos de un directorio
· Crear un array y procesar su contenido
· Usar y conocer una barra de progreso,
· Algunos métodos útiles como "Update"

Eso sí, sin threads, esto es un ejemplo MUY básico.

PD: En serio, no quiero comentarios como "Esto no vale nada", si no te gusta no comentes, a un novato le servirá.

 


Código (vbnet) [Seleccionar]
Public Class Form1


   ' Declaro los controles que vamos a usar en este form:
   Dim Label_Origen As New Label
   Dim Label_Destino As New Label
   Dim Label_FileName As New Label
   Dim Label_Restantes As New Label
   Dim WithEvents Button_Copiar As New Button
   Dim ProgressBar_1 As New ProgressBar


   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

       Me.Size = New Point(420, 320)
       ' Le otorgo las propiedades a los controles
       ' -------------------------------------------------------
       ' Label Origen
       Dim Fuente As New Font("Sans Serif", 20, FontStyle.Regular) ' Seteo la fuente personalizada que quiero usar, porque me apetece usar una distinta y así aprendes xD
       Label_Origen.Font = Fuente
       Label_Origen.Text = "Origen: " & Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\Fonts"
       Label_Origen.AutoSize = False
       Label_Origen.Size = New Point(640, 40)
       Label_Origen.Location = New Point(0, 0)
       ' Label Destino
       Label_Destino.Font = Fuente
       Label_Destino.Text = "Destino: " & Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) & "\Test" ' O Environment.SpecialFolder.ProgramFilesX86
       Label_Destino.AutoSize = False
       Label_Destino.Size = New Point(640, 40)
       Label_Destino.Location = New Point(0, 50)
       ' Botón Copiar
       Button_Copiar.Size = New Point(180, 80)
       Button_Copiar.Text = "Copiar!"
       Button_Copiar.Location = New Point(100, 100)
       AddHandler Button_Copiar.Click, AddressOf Button_Copiar_Sub ' Añado el evento "Click" que sucede cuando pinchas el botón, y se llama a la subrutina "Button_Copiar_Sub"
       ' ProgressBar_1
       ProgressBar_1.Size = New Point(180, 20)
       ProgressBar_1.Location = New Point(100, 200)
       ' Label FileName
       Label_FileName.AutoSize = True
       Label_FileName.Location = New Point(100, 230)
       ' Label Restantes
       Label_Restantes.AutoSize = True
       Label_Restantes.Location = New Point(100, 250)

       ' Añado los controles al form principal:
       Me.Controls.Add(Label_Origen)
       Me.Controls.Add(Label_Destino)
       Me.Controls.Add(Button_Copiar)
       Me.Controls.Add(ProgressBar_1)
       Me.Controls.Add(Label_FileName)
       Me.Controls.Add(Label_Restantes)
   End Sub


   Private Sub Button_Copiar_Sub(sender As Object, e As EventArgs)

       ' Seteo las variables de origen y destino de carpetas
       Dim Origen As String = Label_Origen.Text.Split(" ")(1)
       Dim Destino As String = Label_Destino.Text.Split(" ")(1)

       ' Creo un array con todos los archivos del directorio de origen
       Dim Directory As New System.IO.DirectoryInfo(Origen)
       Dim Array_Files As System.IO.FileInfo() = Directory.GetFiles("*")

       ' A la progressBar tenemos que darle un valor "Máximo" (SIEMPRE) (El máximo por defecto es 100, pero si tenemos 101 archivos nos joderá porque no podemos sobrepasar el Máximo),
       ' Ese valor en este caso es el número total de archivos que contiene el directorio.
       ProgressBar_1.Maximum = Array_Files.Length

       ' Por cada archivo del Array, sumamos un valor a la ProgressBar, y realizamos las operaciones de copiado o lo que queramos...
       For Each File In Array_Files
           Label_FileName.Text = "Archivo copiado: " & File.Name
           Label_FileName.Update() ' Como no estoy usando threads, tengo que actualizar el estado del label para darle prioridad y que se muestre correctamente, lo cúal ralentiza bastante (BASTANTE) el proceso. Para estas cosas ya te digo que se deben usar Threads + delegados
           Threading.Thread.Sleep(20) ' Le hago esperar 20 ms a este hilo símplemente para que veas bien como se actualiza el proceso de la barra de progreso.
           ProgressBar_1.Value += 1
           Label_Restantes.Text = "Faltan " & (ProgressBar_1.Maximum - ProgressBar_1.Value) & " archivos por copiarse"
           Label_Restantes.Update() ' Otra vez el update necesario para poder mostrar el estado del label, más ralentización para el hilo, de verdad, estudia sobre los threads y cuando sepas algo te ayudaré a entenderlos y usarlos.
       Next

       ' Devolvemos los valores originales a la ProgressBar y modificamos los valores de los labels
       ProgressBar_1.Value = 0
       ProgressBar_1.Maximum = 100
       Label_FileName.Text = Nothing
       Label_Restantes.Text = "Todos los archivos copiados."

   End Sub


End Class
#9683
Cita de: spiritdead en 11 Enero 2013, 03:13 AM
y por cierto esos tonos negros, me dejan ciego... cansa la vista...

Sé que cansan, a mi no me gusta todo tán oscuro, quería buscar la armonía entre "oscuros/grises/casi blancos" para los users que usan AERO y me encuentro con eso!,
no me negarás que los tonos DEFAULT blancos de la segunda imagen cansan MUCHO más que los negros de la primera imagen xD.

En fin, me decanto por usar groupboxes de terceros como han comentado, y los botones no me queda otra que dejarlos en flat o buscar algún buen botón de terceros que no use los estilos visuales de Windows.

Saludos!
#9684
@NovLucker
Segúramente no lo llegaste a leer, pero dije que ya probé a desactivar los estilos visuales, y se ve mucho peor, si lo desactivo, todos los PNG que uso se ven mal.

@Spiritdead
Quien me iba a decir a mí que para introducirme en .NET y hacer las cosas bien necesitaría ponerme a reinventar todos los controles existentes por un maldito borde... puf! si eso es para gente muy avanzada. :(

@Seba123Neo
Siempre uso los colores "WEB" o le pongo "ARGB" customizados,
pero no veo que haya ninguna propiedad para cambiar el color de los bordes de los groupboxes... Sé que todos vosotros desarrollais con AERO... por eso pregunto: ¿No os pasa lo mismo en AERO? :(

Para cambiar el color del borde de los botones tengo que ponerlo en "Flat" y ahi ya puedo tocar las propiedades del FlatStyle, pero es que los groupboces...me matan, maldito Aero.

Me he informado bastante y he leido que en los forms WPF el borde es incluso mayor, y es mayor en Windows 7 que si ejecutas la misma APP en WinXP, eso es lo que se comenta...

Un saludo!
#9685
Pero como coj**es se modifican esos bordes?

Abro cualquier aplicación en mi PC (Con AERO activado) y veo que usan controles nativos y que los bordes son finos y NEGROS, no son blancos, horribles, y grandes, como en los de mi APP. :(

EDITO: Que asco que me da que Microsoft decida el color de cada cosa de mis aplicaciones basándose en la mi**rda del theme del usuario, ¿Y si el user tiene un tema rosa? Pues todos los bordes standard de color rosa, fiesta Pink!, no me imagino el contraste que le daría eso a cualquier aplicación, juas!, yo quiero definir los colores que se van a usar para cada control, uno por uno, hardcodeando cada control heredándolos o como séa si hace falta, héchenme una mano, odio ese aspecto de la segunda imagen.

PD: Me pone de muy mal humor.

EDITO2:
Así es como quiero tener mi groupbox, bordes finos y de color oscuro...



Gracias Microsoft, gracias por complicarnos a todos la vida, ¿Tanto te costaba agregar una maldita propiedad para cambiar el tamaño del borde y otra propiedad para el color para tus malditos controles del Framework?, Te odio.

Díganme que esto tiene una solución sencilla :(
#9686
El programa se vé así en mi Windows (uso un theme oscuro):




Y así es como se ve en un Windows con el theme de Aero:



Sin comentarios!, la visibilidad de todos los controles se vuelve prácticamente NULA,
necesito modificar esos horribles bordes blancos por un color más oscuro (Como en la primera imagen) , y no sé como hacerlo ni si es posible.

He probado a desactivar los estilos visuales de XP en el proyecto, bua!, si lo desactivo se ve 50 veces peor en Aero, y ni siquiera se ve la transparencia de los PNG de los botones.

¿Esto tiene arreglo?



EDITO: He conseguido eliminar los bordes blancos de los botones cambiando la propiedad "FlatStyle" y bueno ya saben así quedan los botones muy planos y sin vida puff..., ¿Pero como le hago para los GroupBoxes?
#9687
Tienes toda la razón, supongo
Citar\ Integer division
/ Division

Bueno, mi consuelo es que a alguien tan Pro como NovLucker también se le ha pasado el detalle de la barra xD

Solucionado, Gracias Danyfirex!
#9688
Esta es la misma aplicación que posteé, pero usando la classe del GradientPanel que he comentado antes, y un control GRATIS de groupbox degradado que se llama "The Grouper":



La diferencia visual es mínima y la diferencia de carga es brutal, no llega ni a 1 segundo de carga, cuando antes tardaba unos 7-10 seg.

· Saquen sus propias conclusiones sobre los comentarios de Seba123Neo y mis pruebas xD, si quieren una APP linda busquen controles gratis antes que contorles de pago!

PD: Aún me falta testear lo que comenta spiritdead sobre los controles de krypton, pero bueno, no seré pesado haciendo otro comentario, el tema está más que hablado y solucionado.

Gracias por leer.
#9689
Hombre, pero también he descubierto que los controles de terceros por así decirlo..."gratis", por ejemplo los que hay en CodeProject, como el objectlistview, más de uno son buenisímos y no les cuesta nada cargar, claro, solo pesan unos pocos KB en lugar de los muchos MB que pesan los controles DE PAGO, y las muchas más diferencias (que desconozco) que tienen los de pago que los hacen tán pesados.

Ahora encontré un panel degradado gratis, no tarda nada en cargar, está muy bien, aquí lo dejo por si alguien lo necesita :)

GradientPanel.vb

Código (vbnet) [Seleccionar]
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Text
Imports System.Windows.Forms

Namespace GradientPanel
Public Partial Class GradientPanel
Inherits System.Windows.Forms.Panel

' member variables
Private mStartColor As System.Drawing.Color
Private mEndColor As System.Drawing.Color

Public Sub New()
' InitializeComponent()
PaintGradient()
End Sub

Protected Overrides Sub OnPaint(pe As PaintEventArgs)
' TODO: Add custom paint code here

' Calling the base class OnPaint
MyBase.OnPaint(pe)
End Sub


Public Property PageStartColor() As System.Drawing.Color
Get
Return mStartColor
End Get
Set
mStartColor = value
PaintGradient()
End Set
End Property


Public Property PageEndColor() As System.Drawing.Color
Get
Return mEndColor
End Get
Set
mEndColor = value
PaintGradient()
End Set
End Property


Private Sub PaintGradient()
Dim gradBrush As System.Drawing.Drawing2D.LinearGradientBrush
gradBrush = New System.Drawing.Drawing2D.LinearGradientBrush(New Point(0, 0), New Point(Me.Width, Me.Height), PageStartColor, PageEndColor)

Dim bmp As New Bitmap(Me.Width, Me.Height)

Dim g As Graphics = Graphics.FromImage(bmp)
g.FillRectangle(gradBrush, New Rectangle(0, 0, Me.Width, Me.Height))
Me.BackgroundImage = bmp
Me.BackgroundImageLayout = ImageLayout.Stretch
End Sub

End Class
End Namespace


#9690
Definitívamente lo que está causando que la APP tarde 10 segundos en cargar son los controles del "DotNetBar", serán controles muy buenos y todo lo que quieras (spiritdead), pero son pesadísimos a la hora de cargar, no creo que valga la pena usarlos para que luego séa incómodo abrir la APP, y eso que solo uso 2 groupboxes y un panel... no me imagino si usase más controles de esa suite.

En otra aplicación que estoy haciendo, nada más cargar la aplicación dibuja +20 botones con 1 imagen en cada botón, 4 picturebox, 1 listview, 1 textbox, el executable está comprimido, además de cargar +250 recursos de texto al inicio, pues no me tarda ni 1,5 segundos en cargarse la APP, claro, porque no he usado krypton ni DotNetBar esta vez.

Un saludo!