elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 944
131  Programación / Scripting / Re: .cmd .bat Como cambiar colores y como manejar el sistema desde la Consola en: 31 Marzo 2017, 15:09
No se si se podra

Si, se puede, pero es cosa fea, muy engorrosa y con ciertas limitaciones:
...Esto es Batch.

Para tener más versatilidad y poder modificar el color de cada palabra o caracter a nuestro antojo tienes dos opciones, la primera sería olvidarse de Batch y de las limitadísimas funcionalidades que éste nos ofrece, y empezar a utilizar cualquier otro lenguaje que nos permita hacer lo que quieres (ya sea de forma built-in, o con librerías externas) como Python, Ruby o .NET (VB.NET / C#). La segunda opción sería seguir usando Batch y recurrir a una aplicación externa que interctuase con la ventana/buffer de la CMD, como por ejemplo la aplicación COLOUS:

EDITO: Acabo de recordar, el programa de terceros de usuarios de elhacker.net que utilicé por más tiempo fue 'colous' (estuve dándole un par de años programando en Batch), aunque creo que no fue oficialmente publicado aquí sino en portalhacker, pero bueno, el autor del código publicó posts relacionados con su app, por ejemplo:


( Lamentablemente no funciona el enlace de descarga que compartí. Es cosa tuya buscarte la vida para encontrar el programa en este foro o en protalhacker o en Google, aunque ya te digo desde ya que lo mejor que puedes hacer es NO seguir usando Batch. )

Un ejemplo de su versatilidad, joder, cuanto tiempo hace de esto :xD:

Saludos!
132  Foros Generales / Sugerencias y dudas sobre el Foro / Re: No puedo contestar ningún mensaje, ni salir del foro en: 31 Marzo 2017, 02:45
Nomino a Randomize con 3 puntos y a El_Andaluz con otros 3 puntos para Moderadores del Foro Libre

Muy bonito, pero son los miembros del staff quienes deben nominar a los nuevos pupilos. ¿Nos quieres robar el puesto, Constance?. :¬¬ ¿No será que en realidad eres tú la que quiere moderar el foro libre para tener libertad y castigarnos con una sección dedicada a las fotos de tus gatitos?. :xD

En mi opinión personal @El_Andaluz y @Orubatosu cumplen con ciertos requisitos fundamentales para moderar el libre y ambos lo harían excelente, cada uno de ellos a su manera, los dos se complementarian bien... si, me estoy refiriendo a una doble moderación, o sino pues a uno solo de ellos. No creo que ninguno de los dos acabase quemado si practicamente viven en el foro libre :P.

Ya va siendo hora de que al menos les hagan Colaboradores,  A LOS DOS. Eso como mínimo...

133  Foros Generales / Foro Libre / Re: Salen a la luz los vídeos en los que Paco Sanz se burlaba de sus donantes en: 31 Marzo 2017, 01:12
Primero fue el MrGranBomba (o cara-anchoa) gastándole una "broma" a un repartidor y luego mostrando la intención de denunciarle, luego fue el Reset (el chino maltratador de gatos) dándole galletas rellenas de pasta a un vagabundo para intoxicarle... "broma" lo llamaron también, y ahora es el Paco Sanz este fingiendo una enfermedad terminal y pidiendo sustanciosas donaciones. Uno por uno va saliendo la escoria...

Bienvenidos a Youtube España.

¿Qué clase de infraser tendremos la oportunidad de conocer la próxima vez?, no lo sé, pero seguro que no pasan ni 3 meses antes de que vuelva a aparecer un nuevo gilipollacas en Youtube....
134  Programación / .NET / Re: Toolbox en C# en: 31 Marzo 2017, 00:33
A que te refieres con los segundo?

quiero arrastrar un Listbox desde Treeview hasta el panel.

Entonces olvida lo que dije, yo supuse que querías arrastrar el listbox dentro del área cliente del treeview para "insertarlo" en un nodo, así que te advertí de lo que necesitarías o podrías necesitar controlar (como el procedimiento WndProc/mensajes de ventana por si ibas a hacer otro tipo de modificaciones al TreeView), pero si lo que quieres es arrastrar el control a un panel/contenedor externo entonces la cosa no requiere ni la mitad de esfuerzo. Por eso primero de nada siempre hay que aclarar bien lo que uno necesita hacer antes de preguntar en un foro de programación donde los detalles es lo más importante...

Y tu dices que las clases de uso generico tuyas me seran de ayuda para lo que yo quiero hacer?

La clase ControlDragger implementa la funcionalidad de mover "X" control por la colección de controles donde dicho control se encuentre; para hacer lo que pides habria que adaptarlo (y sería un coñazo). Pero olvida ese código que te mostré, por que si tan solo quieres arrastrar el control adentro de otra colección de controles entonces no necesitas implementar la funcionalidad de mover el control, lo que necesitas es hacer uso de la funcionalidad Drag&Drop (arrastrar y soltar) que proveen los controles de WindowsForms.



Lo primero de todo que debes tener en cuenta sería activar la propiedad AllowDrop del Panel para permitir soltar objetos/controles adentro:
Código
  1. this.panel1.AllowDrop = true;

Luego, tomando como ejemplo la clase que te mostré del TreeView, añadirías el siguiente controlador del evento MouseDown:
Código
  1. using System;
  2. using System.ComponentModel;
  3. using System.Diagnostics;
  4. using System.Drawing;
  5. using System.Security.Permissions;
  6. using System.Windows.Forms;
  7.  
  8. namespace WindowsFormsApplication1 {
  9.  
  10.    [DisplayName("MyTreeView")]
  11.    [Description("A extended TreeView control.")]
  12.    [DesignTimeVisible(true)]
  13.    [DesignerCategory("UserControl")]
  14.    [ToolboxBitmap(typeof(TreeView), "TreeView.bmp")]
  15.    [ToolboxItem(true)]
  16.    [ToolboxItemFilter("System.Windows.Forms", ToolboxItemFilterType.Require)]
  17.    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
  18.    public class MyTreeView : TreeView, IDisposable {
  19.  
  20.        [Browsable(true)]
  21.        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  22.        [Category("Child Controls")]
  23.        public ListBox ListBox { get { return this.listBoxB; } }
  24.        private ListBox listBoxB; // Backing field.
  25.  
  26.        [DebuggerStepThrough()]
  27.        public MyTreeView(){
  28.            this.SuspendLayout();
  29.            this.listBoxB = new ListBox();
  30.            this.listBoxB.MouseDown += this.ListBox_MouseDown;
  31.            this.Controls.Add(this.listBoxB);
  32.            this.listBoxB.Show();
  33.            this.ResumeLayout(performLayout: false);
  34.        }
  35.  
  36.        private void ListBox_MouseDown(object sender, MouseEventArgs e) {
  37.            ListBox lb = (ListBox)sender;
  38.            lb.DoDragDrop(lb, DragDropEffects.Move);
  39.        }
  40.  
  41.        [DebuggerStepThrough()]
  42.        protected override void Dispose(bool disposing) {
  43.            if ((disposing)) {
  44.                if ((this.listBoxB != null)) {
  45.                    this.listBoxB.MouseDown -= ListBox_MouseDown;
  46.                    this.listBoxB.Dispose();
  47.                    this.listBoxB = null;
  48.                }
  49.            }
  50.            base.Dispose(disposing);
  51.        }
  52.  
  53.    }
  54. }

Y por último, en el Form donde hayas colocado el panel, añadirías los siguientes controladores de evento para controlar el arrastre y el soltar/inserción del ListBox:
Código
  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4.  
  5. namespace WindowsFormsApplication1 {
  6.    public partial class Form1 : Form {
  7.        public Form1() {
  8.            InitializeComponent();
  9.        }
  10.  
  11.        private void Form1_Load(object sender, EventArgs e) {
  12.            this.panel1.AllowDrop = true;
  13.            this.panel1.DragEnter += this.Panel1_DragEnter;
  14.            this.panel1.DragOver += this.Panel1_DragOver;
  15.            this.panel1.DragDrop += this.Panel1_DragDrop;
  16.        }
  17.  
  18.        private void Panel1_DragEnter(object sender, DragEventArgs e) {
  19.            Control ctrl = e.Data.GetData(e.Data.GetFormats()[0]) as Control;
  20.            Panel pan = (Panel)sender;
  21.  
  22.            if (ctrl != null) {
  23.                ctrl.Location = pan.PointToClient(new Point(e.X, e.Y));
  24.                pan.Controls.Add(ctrl);
  25.            }
  26.        }
  27.  
  28.        private void Panel1_DragOver(object sender, DragEventArgs e) {
  29.            Control ctrl = e.Data.GetData(e.Data.GetFormats()[0]) as Control;
  30.            Panel pan = (Panel)sender;
  31.  
  32.            if (ctrl != null) {
  33.                ctrl.Location = pan.PointToClient(new Point(e.X, e.Y));
  34.            }
  35.  
  36.            e.Effect = DragDropEffects.Move;
  37.        }
  38.  
  39.        private void Panel1_DragDrop(object sender, DragEventArgs e) {
  40.            Control ctrl = e.Data.GetData(e.Data.GetFormats()[0]) as Control;
  41.            if (ctrl != null) {
  42.                // ...
  43.            }
  44.        }
  45.  
  46.    }
  47. }

Nota: Una vez arrastrado el ListBox adentro del Panel, ten presente que el Panel se convertirá en el contenedor padre (parent) del ListBox.

¡Saludos!



EDITO: ¿Ralmente quieres arrastrar un ListBox en tiempo de ejecución, o más bien lo que quieres es arrastrar una etiqueta donde pone "ListBox" y que se genere un nuevo ListBox allá en donde hayas soltado esa etiqueta?, por que vaya, serían dos cosas complétamente distintas y hasta ahora tú has dicho "quiero arrastrar un ListBox" no "quiero arrastrar una etiqueta y que se cree un ListBox". Intenta dar DETALLES ESPECÍFICOS Y PRECISOS.
135  Programación / .NET / Re: consulta sobre property en: 30 Marzo 2017, 11:09
otra razón para usarla con Get y Set, es que tienes pleno control de su valor y de cuando esta cambia...

Es decir, no solo se contenta uno con recibir y devolver un valor, la mayor ventaja es precisamente poder SABER más cosas acerca del valor que se recibe (también cuando se entrega, aunque no ponga un ejemplo explícito), y en base a ello hacer lo que proceda si es necesario. Y la posibilidad de hacer más cosas en base a ese SABER acerca del valor recibido/devuelto.

Ya que estamos, otro ejemplo de notificación de cambios del valor de una propiedad sería mediante la implementación de la interfáz INotifyPropertyChange:



Otra ventaja bastante importante que no mencioné al utilizar propiedades, serïa la capacidad de utilizar classes de atributos específicos o compatibles para este tipo de miembros.
Los atributos son simples metadatos que podemos "adherir" a la definición de un miembro (en este caso a una propiedad) y que suelen modificar el comportamiento del código en tiempo de diseño.

Por ejemplo, al estar diseñando un control de usuario, un atributo muy usado para una propiedad sería el atributo "<Category()>", con el que podemos hacer que nuestra propiedad se represente dentro de una categoría específica en la grilla de propiedades del control, o el atributo "<Description()>" que nos permite presentar una descripción del propósito de nuestra propiedad en la grilla de propiedades del control:

Código
  1. <Category("Appearance")>
  2. <Description("The background color of the control.")>
  3. <Localizable(True)>
  4. Public Property BackColor As Color


La propiedad <Localizable(True)> se encargaría de traducir automáticamente el nombre "Appearance" en la grilla de propiedades al idioma actual de Visual Studio y también la descripción aportada en el atributo <Description()> siempre y cuando estos sean localizables, es decir que si usamos Visual Studio en Español entonces nuestra propiedad aparecería en la categoría "Apariencia" y su descripción sería la misma que usa Microsoft por defecto.

Existen muchos tipos de classes de atributos que son aplicables a distintos tipos de miembros (a classes, módulos, interfaces, propiedades, métodos y funciones, etc) y por supuesto NO todos ellos tienen un propósito estético, hay atributos para especificar un rango de valor mínimo y máximo para una propiedad, por ejemplo, o atributos para modificar el comportamiento del depurador de Visual Studio sobre un miembro específico.

¡Saludos!
136  Programación / .NET / Re: consulta sobre property en: 30 Marzo 2017, 01:12
" osea que dentro del objeto creamos una variable privada para que no sea vista por todo el programa, pero la que interactua para leer y escribir en esa variable es la propiedad con los gets y los sets"

Exacto.

Si tienes una propiedad con nombre "MiPropiedad" y un valor de apoyo o backing field con nombre "MiVariable", cuando tu haces esto:
Código
  1. Sub()...
  2.    MiPropiedad = Valor
  3. End Sub
...El método Get de "MiPropiedad" se encarga de validar y asignar el valor a "MiVariable".

No le des demasiadas vueltas al tema, una propiedad la utilizarías practicamente de la misma manera que una variable (excepto por el Get y el Set, pero no te obsesiones con eso) y no importa demasiado si decides usar variables o propiedades ...excepto en casos específicos donde es recomendable (o es la única opción) el uso de propiedades.

Saludos!
137  Programación / .NET / Re: consulta sobre property en: 30 Marzo 2017, 01:03
conoces algun video que explique bien el tema y como usarla y implementarlas?

¿Video tutorial?, no, pero todo lo que necesitas saber se encuentra en la MSDN:


Saludos!
138  Programación / .NET / Re: Crear 5 form y que aparezcan en forma aleatoria. con vb 2012 en: 30 Marzo 2017, 00:25
este código que me das los ingreso en un form nuevo o lo ingredo en cada uno de los form donde tengo las preguntas.

Ese código debes añadirlo tan solo al Form principal, o mejor dicho al form que vayas a usar para mostrar los demás forms que contengan "las preguntas".

EDITO:
Por cierto, en el código que te mostré me acabo de dar cuenta que escribí mal el nombre del botón:
Private Sub Siguiente_Click(sender As Object, e As EventArgs) Handles Button.Click
Debería ser así:
Private Sub Siguiente_Click(sender As Object, e As EventArgs) Handles Siguiente.Click
...lo comento para evitarte posibles confusiones.

¡Saludos!
139  Foros Generales / Foro Libre / Re: Teoria de las 24 horas ... en: 29 Marzo 2017, 23:48
La Naturaleza no nos ha hecho para pasar horas y horas y horas con la misma persona si no para Diversificar: un rato en casa con la family, otro en el trabajo con los compis , otro con los amigos tomando una cervezita, otro con la pareja (el que tenga) , otro a solas con nosotros mismos  y así no tendremos que afrontar diferencias, y por tanto nos ahorramos el stress que eso conlleva

En mi opinión lo que expones es una observación vista desde una perspectiva bastante limitada por que solo lo estás enfocando al día a día de la vida moderna del hombre, es decir a los problemas sociales en la gran ciudad, pero eso no ha sido obra de la naturaleza sino del ser humano, cimiento tras cimiento, ha sido el "progreso" de la sociedad quien nos ha echo así para acabar convirtiéndonos en los seres vivos tan inconfomistas que somos a la hora de compartir tiempo con los demás y acabar sobrepasando "la burbuja transparente" de esa persona.

En los paises tercer mundistas allí conviven todos con todos muy juntitos los unos de los otros a todas las horas del día y nadie se queja oye.

¡Saludos!
140  Programación / .NET / Re: Crear forma que aparezcan en forma aleatoria. en: 29 Marzo 2017, 23:19
bueno el código es este.
 
Código
  1. Private Sub Siguiente_Click(sender As Object, e As EventArgs) Handles Siguiente.Click
  2.        form3.Show()
  3.        Me.Hide()
  4.    End Sub
este es el código que tengo para pasar de un form a otro, las preguntas las tengo en form independientes.
lo que quiero es que cada ves que clike en el boton los form no salgan en orden si no en forma aleatoria y que no se repitan los que ya han salido.

Bueno, una forma óptima de hacerlo sería mediante el uso de una pila:

Código
  1. ' Una colección enumerable para especificar cuales forms queremos procesar/mostrar.
  2. Private forms As IEnumerable(Of Form) = {Form2, Form3, Form4, Form5, etc...}
  3.  
  4. ' Una pila en la que iremos añadiendo una referencia de los forms de manera desordenada (aleatoria).
  5. Private ReadOnly stackForm As New Stack(Of Form)
  6.  
  7. ' Una instancia de la class Random que utilizaremos para generar secuencias numéricas aleatorias.
  8. Private ReadOnly rand As New Random()
  9.  
  10. Private Sub Siguiente_Click(sender As Object, e As EventArgs) Handles Siguiente.Click
  11.  
  12.    ' Si la pila de forms está vacía...
  13.    If (stackForm.Count = 0) Then
  14.        ' Ordenamos la secuencia enumerable de forma aleatoria.
  15.        Me.forms = (From x As Form In forms Order By rand.Next())
  16.        ' e iteramos la secuencia resultante para ir añadiendo todos los forms a la pila.
  17.        For Each f As Form In Me.forms
  18.            stackForm.Push(f)
  19.        Next f
  20.    End If
  21.  
  22.    ' Eliminanos el siguiente elemento de la pila para obtener el siguiente Form.
  23.    Dim nextForm As Form = stackForm.Pop()
  24.    ' Ocultamos el Form principal, mostramos el form obtenido, y etcétera...
  25.    Me.Hide()
  26.    nextForm.ShowDialog(Me)
  27.    Me.Show()
  28.  
  29. End Sub

Si tienes cualquier duda al respecto, pregunta.

¡Un saludo!
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 944
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines