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

#5201
Cita de: DarK_FirefoX en 10 Mayo 2015, 03:47 AMTambién puedes hacer uso del método Contains(). Que sería algo como nombreDeTuListView.Items.Contains(listViewItemAComprobar) en un If antes de añadirlo al ListView.

Cabe mencionar que la función ListView.Items.Contains realiza una comparación de referencias (tanto para un ListView cómo un RadListView, y otros muchos controles de .Net Framework).

¿Que quiere decir esto?, pues que que crear dos instancias del mismo tipo de objeto, en este caso dos ListViewItem distintos que tengan los mismos datos, no los convierte en el mismo objeto, por que tienen referencias distintas.

Ejemplo demostrativo:
Código (vbnet) [Seleccionar]
Dim articulo As String = "Clavos"
Dim cantidad As Integer = 1

Dim lvItem1 As New ListViewItem({articulo, cantidad.ToString("00")})
Dim lvItem2 As New ListViewItem({articulo, cantidad.ToString("00")})

Dim areEqual As Boolean = lvItem1.Equals(lvItem2)

Debug.WriteLine(String.Format("Son Iguales?: {0}", areEqual))


C#:
Código (csharp) [Seleccionar]
string articulo = "Clavos";
int cantidad = 1;

ListViewItem lvItem1 = new ListViewItem({articulo, cantidad.ToString("00")});
ListViewItem lvItem2 = new ListViewItem({articulo, cantidad.ToString("00")});

bool areEqual = lvItem1.Equals(lvItem2);

Debug.WriteLine(string.Format("Son Iguales?: {0}", areEqual));


Saludos!
#5202
Cita de: TrashAmbishion en  9 Mayo 2015, 22:20 PMalguna otra idea....

La solución que especifiqué es el bypass oficial para ese problema, Visual Studio comprueba ese valor en el registro ...solo se basa en hacer eso, si lo falsificas entonces haces el engaño y se soluciona el problema, ¡es imposible que no te funcione!.

¿Estás teniendo el mismo problema, o ahora es otro distinto?, has dado pocos detalles.

De todas formas, ¿has probado a ver si con el instalador de la Release Candidate del nuevo Visual Studio 2015 te sigue sucediendo lo mismo?.
Visual Studio 2015 RC Downloads

Saludos!
#5203
Antes de nada, cuando formules una pregunta de este tipo asegúrate de aclarar que estás utilizando los componentes de Telerik, que no todo el mundo los conoce y eso puede confundir a los demás.




Cita de: nolasco281 en 10 Mayo 2015, 05:20 AMsi hay otra forma mas eficiente se los agradeceria

Lo que estás haciendo con el For Each es una solución efectiva, pero en este caso específico donde solo tienes 2 columnas y quieres que no se repita la columna de artículos, deberías asignarle una llave a cada item con el nombre del artículo, eso lo puedes hacer estableciendo un valor a la propiedad ListViewItem.Name, y luego utilizar la función ListView.Items.ContainsKey para determinar si la llave existe.

VB.Net:
Código (vbnet) [Seleccionar]
   Private Sub Test() Handles MyBase.Shown

       Dim articulo As String = "Clavos"
       Dim cantidad As Integer = 40

       Dim lvItem As New ListViewItem({articulo, cantidad.ToString("00")}) With
       {
           .Name = articulo
       }

       Me.ListView1.Items.Add(lvItem)

   End Sub

   Private Sub Button1_Click() Handles Button1.Click

       Dim articulo As String = "Clavos"
       Dim cantidad As Integer = 5

       If Me.ListView1.Items.ContainsKey(articulo) Then
           MessageBox.Show("El articulo ya existe en la lista.", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
       Else
           ' ...
       End If

   End Sub


C-Sharp:
Código (csharp) [Seleccionar]
private void Test()
{
string articulo = "Clavos";
int cantidad = 40;

ListViewItem lvItem = new ListViewItem({articulo, cantidad.ToString("00")}) { Name = articulo };
this.ListView1.Items.Add(lvItem);
}

private void Button1_Click()
{
string articulo = "Clavos";
int cantidad = 5;

if (this.ListView1.Items.ContainsKey(articulo)) {
MessageBox.Show("El articulo ya existe en la lista.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
} else {
// ...
}
}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//======================================================


Nota: La función ListView.Items.ContainsKey es case-insensitive, es decir, no distingue entre minúsculas y mayúsculas.




Para un RadListView puedes utilizar la función RadListView.FindItemByKey, para asignar la llave a un item lo puedes hacer estableciendo un valor a la propiedad ListViewDataItem.Key

VB.Net:
Código (vbnet) [Seleccionar]
   Private Sub Test() Handles MyBase.Shown

       Dim articulo As String = "Clavos"
       Dim cantidad As Integer = 40

       Dim lvItem As New ListViewDataItem(text:="", values:={articulo, cantidad.ToString("00")}) With
       {
           .Key = articulo
       }

       Me.RadListView1.Items.Add(lvItem)

   End Sub

   Private Sub Button1_Click() Handles Button1.Click

       Dim articulo As String = "Clavos"
       Dim cantidad As Integer = 5

       If Me.RadListView1.FindItemByKey(key:=articulo, searchVisibleItems:=True) IsNot Nothing Then
           RadMessageBox.Show("El articulo ya existe en la lista.", "", MessageBoxButtons.OK, RadMessageIcon.Error)
       Else
           ' ...
       End If

   End Sub


C-Sharp:
Código (csharp) [Seleccionar]
private void Test()
{
string articulo = "Clavos";
int cantidad = 40;

ListViewDataItem lvItem = new ListViewDataItem(text: "", values: {articulo, cantidad.ToString("00")}) { Key = articulo };
this.RadListView1.Items.Add(lvItem);
}

private void Button1_Click()
{
string articulo = "Clavos";
int cantidad = 5;

if (this.RadListView1.FindItemByKey(key: articulo, searchVisibleItems: true) != null) {
RadMessageBox.Show("El articulo ya existe en la lista.", "", MessageBoxButtons.OK, RadMessageIcon.Error);
} else {
// ...
}
}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================


Nota: La función RadListView.FindItemByKey es case-sensitive, es decir, distingue entre minúsculas y mayúsculas.

Saludos
#5204
Windows / Re: Win Pro8.1
9 Mayo 2015, 21:02 PM
https://docs.google.com/document/d/15JaFtODfQJ5se_3_G67GGeB6gT3X_G06hV8quo7o5Ew/edit
(son torrents)

9600.16384.130821-1623_x64fre_Client_ES-ES-IRM_CCSA_DV5.iso

Saludos
#5205



Descripción



PATHS es una aplicación por línea de comandos para administrar las entradas de la variable de entorno PATH y PATHEXT de Windows.


Características




  • Tiene opciones para agregar y eliminar entradas así como limpiar, restaurar o crear una copia de seguridad del PATH y del PATHEXT.
  • Instalador personalizado con integración en el menú contextual de directorios.


Imágenes


       


Descarga



Última versión:
http://www.mediafire.com/download/ffuxgwezf4jd5c0/PATHS.rar

Versiones anteriores:
http://foro.elhacker.net/net/source_paths_administra_las_entradas_de_las_variables_de_entorno_path_y-t398347.0.html;msg1883825#msg1883825


Versión en RUBY (deprecada):
http://foro.elhacker.net/scripting/ruby_apporte_para_windows_paths_v03_una_utilidad_para_el_path-t375961.0.html;msg1800672#msg1800672

Saludos!
#5206
Es que el problema en realidad no tiene que ver con no haber usado nunca el designer, sino más bien tiene que ver con un desconocimiento del manejo de eventos y namespaces, y eso sucede por que 3 meses aprendiendo un lenguaje no es nada, y mucho menos lo es en .Net ...en ese tiempo no se aprende ni el 4% de toda su magnitud, y de todas formas siempre  (SIEMPRE)  hay algo nuevo que aprender mientras van pasando los años, con una librería de classes tan gigantesca y una IDE con cientos de características de las cuales algunas son muy recónditas, ni los más veteranos pueden aprenderlo y memorizarlo todo a la perfección, así que no te desanimes xD, pero aprende sobre eso que comenté (y sobre delegados), son cosas básicas y esenciales que a estas alturas ya deberías conocer.

Saludos!
#5207
Scripting / Re: [Python]Duda con thread
9 Mayo 2015, 07:16 AM
Creo que se ha entendido a la perfección lo que pretendes hacer, no te preocupes :P, aquí te escribo este ejemplo bien documentado!.

Basicamente inicio una cantidad específica de threads (4) a los que les voy pasando tareas que realizar, es decir, una cantidad específica de valores que procesar, en este ejemplo es 1 valor por thread, por lo que siempre hay 4 threads activos procesando de forma asíncrona 1 valor de la pila de valores.

Código (python) [Seleccionar]
# -*- coding: Windows-1252 -*-
from Queue import Queue; from threading import Thread, current_thread

# El trabajo que realizará cada hilo.
def MathWorker(queue):
   # El While mantiene activo el hilo para aceptar nuevas tareas.
   while True:
       # print current_thread().getName() + " work started."
       # Itero los valores del siguiente item en la cola.
       for value in queue.get():
           # Hacer operaciones aritméticas aquí.
           print "value: " + str(value)

       queue.task_done()
       # print current_thread().getName() + " work done." + "\n"

# La colección de valores.
valueList = [
             1, 2, 3, 4,
             5, 6, 7, 8,
             9
           ]

# La cola (o pila) de espera.
mathQueue = Queue(maxsize=0)

# La cantidad máxima de hilos simultaneos.
maxThreads = 4

# La cantidad máxima de valores simultaneos por hilo.
maxValues = 1

# Voy insertando los valores simultaneos por hilo, en la cola (o pila) de espera.
for index in range(0, len(valueList), maxValues): # range(start, stop, step)
   mathQueue.put(valueList[index:(index+maxValues)])

# Inicio los hilos.
for value in range(maxThreads):
   worker = Thread(target=MathWorker, args=(mathQueue,))
   worker.setDaemon(True)
   worker.start()

# Espero a que la cola (o pila) se vacie.
mathQueue.join()


Esta linea la he documentado 'print current_thread().getName()' por que queda muy feo cuando hay varios threads activos debido a la asincronía, pero este sería el resultado de ejecución con un solo thread activo:

Thread-1 work started.
value: 1
Thread-1 work done.

Thread-1 work started.
value: 2
Thread-1 work done.

Thread-1 work started.
value: 3
Thread-1 work done.

Thread-1 work started.
value: 4
Thread-1 work done.

y así hasta el 9...


PD: Me ha tocado desempolvar Python y volver a instalarlo, que practicamente no lo uso nunca pa nah, pero te lo mereces :).

Saludos!
#5208
CitarNo sé, Elektro, pero Python ha sido un lenguaje muy popular en distribuciones Linux en lo que es Scripting y pequeños componentes en programas con lenguajes más complejos, como por ejemplo, el C++. Para Windows tenemos Batch!

En ningún momento se estaba debatiendo sobre su popularidad ni soporte multiplataforma, sino de su estabilidad cómo proyecto libre (cómo cualquier otro proyecto libre).

¿Que tiene que ver que sea popular en alguna distro de Linux o que se utilice cómo lenguaje complementario del desarrollo de otro software?, nada en ese sentido.




Cita de: gecko1 en  9 Mayo 2015, 01:24 AMhay software Open-Source que no pertenece a Microsoft y cumplen con muchas necesidades nuestras

La cuestión es que mientras el software libre suele cumplir muchas necesidades, el software privativo (pero el de las grandes compañias) suele cubrir todas las necesidades.

Te pondré unos ejemplos:

  • Microsoft tiene la IDE de desarrollo de aplicaciones más completa a nivel mundial indiferentemente de sus lenguajes soportados, Visual Studio.
  • Microsoft tiene el framework de aplicaciones más completo a nivel mundial, .Net Framework.
  • Microsoft tiene las APIs para desarrollo de videojuegos más completo y explotado a nivel mundial, DirectX (Direct3D, DirectDraw, DirectSound, etc).
  • Microsoft tiene la suite de oficina más completa a nivel mundial, Microsoft Office.
  • Microsoft ha tenido el cliente de mensajería instantanea más completo y personalizable a nivel mundial, MSN Messenger.
  • Microsoft tiene las gafas de realidad aumentada más completas, HoloLens. (por poner un ejemplo de Hardware)

Cualquiera de esos productos incorporan un contenido más extenso/completo (y más elaborado y estable al ser privativo, todo sea dicho) que cualquiera de sus otras alternativas libres.

Además, favoreciendo al programador, ninguna otra compañia open-source es capaz de ofrecer kits de desarrollo (SDKs) tan completos cómo los de Microsoft para todos sus productos ...por que realmente tienen un SDK para cualquier cosa, es así de simple, si se elige software libre se obtienen recursos mediocres y no hay derecho a la resolución de problemas, pero si se elige la privacidad, en este caso la de Microsoft, entonces lo tienes practicamente todo a tu disposición, el programador adquiere comodidad, estabailidad, documentación y soporte de usuario por doquier.

Ahora, vamos a lo malo:

  • Microsoft tiene una birria de antivirus, Windows Defender.
  • Microsoft tiene una birria de navegador web, Internet Explorer.

¿Pero que tienen en común?, que son aplicaciones gratuitas para cumplir los requisitos esenciales del end-user. (dejando a un lado los fallos de seguridad de IE blah blah blah, todos los programas tienen sus fallos)

(Seguro que me dejo algunos productos más por nombrar en los ejemplos positivos y negativos, pero son solo eso, un ejemplo.)




Cita de: gecko1 en  9 Mayo 2015, 01:24 AMel navegador de código libre más preferido por los activistas en Firefox, seguido por Chromium, y mira, el primero es de Mozilla y el segundo de Google, nada que ver con el gigante Microsoft

En parte tienes razón pero es que Internet Explorer, en esa comparación que has hecho es un producto gratuito más, estandarizado para cubrir las necesidades esenciales del consumidor de Windows.

Firefox y Chrome son gratuitos también ...claro está, a lo que me refiero es que es normal que la competencia pueda superar en esta ocasión a un producto privativo que es gratuito, siempre que se lo proponga.

Si Internet Explorer fuese un navegador de pago, entonces tal vez otro gallo cantaría, por que eso implicaría un nivel superior de prestaciones y calidad.




Cita de: gecko1 en  9 Mayo 2015, 01:24 AMdespués de muchos años ha tratado de ganarse la confianza con Internet Explorer, pero parece que todavía le falta.

Yo ya utilizaba IE en los años 90 antes de aparecer Mozilla, era un buen software, se lanzó FireFox y lo cambió todo con su alta personalización y fluidez (aunque hoy en día la fluidez de este navegador deja que desear con la aparición de los 64 Bits, y no estoy hablando de las build Nightly, que también),
tienes razón, IE quedó atrás cómo un mal producto lleno de fisuras que nadie quería ni ver...
pero déjame decirte que el motivo de que IE se considere el peor navegador desde hace muchos años no es precisamente por el impacto de sus fallos de seguridad (que todos los navegadores tienen sus fallos y agujeros), que si, eso influye muchisimo, pero es la imagen que esto fue generando en la compañia con el paso de los años, por que cuando aparece algo que criticar en la compañia que es número uno, esa crítica se extiende como el viento, las malas críticas a una compañia tan grande siempre vuelan, y los usuarios siempre tenian una mala opinión en la boca sobre IE, entonces llegó un punto en que ya no se podía revertir la imagen de este producto, pero bueno, Microsoft intentará empezar de cero con su nuevo navegador, Edge.


Saludos!
#5209
Cita de: darkweb64 en  9 Mayo 2015, 00:47 AMme gustaría que la página fuera fija y no pueda cambiarse por otra

No manejo PyQT, pero leyendo la documentación de QT encontré la señal/evento urlChanged:
void QWebView::urlChanged(const QUrl & url) [signal]

La idea sería que al emitirse esa señal reestablezcas la url por defecto y así poder mantenerla "fija".

Saludos.
#5210
Software / Re: HashTab
9 Mayo 2015, 00:00 AM
CitarNecesito este programa de donde lo puedo bajar en forma " segura" gracias
Los programas freeware se descargan desde la página oficial del autor para evitar posible ad-aware de otros servicios...

Joer, Zorronde, que sale en el primer resultado de Google...
http://implbits.com/products/hashtab/

Le das a "Download Now!", introduces tu email, y te mandan un enlace de descarga directa.

Saludos