• Lunes 12 de Mayo de 2025, 14:32

Mostrar Mensajes

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


Mensajes - Nebire

Páginas: 1 ... 25 26 [27] 28 29
651
Software / Re: Programa Para Crear Ayudas
« en: Domingo 9 de Septiembre de 2007, 01:31 »
Bueno, pués no está de más indicar otro programa para hacer videotutoriales...
Básicmanete en efecto hacen capturas de pantalla y sonido (de micrófono ) en tiempo real en algunos tipos de formatos de vídeo, luego se pueden editar ...

Este que te recomiendo tiene la bondad de que tanto el vídeo como no el sonuido no se ven entrecortado como sucede con otros programas....

descargar desde: Página de descargas del software

fijaros que hay programas de pago, pero no os dejeis llevar, todo lo que tienen de pago también lo tienen gratis, una o  versiones anteriores, sólo es cuestión de leer y pulsar en los enlaces buscando... básicamente debes bajarte 2 partes: códecs y decodecs, luego aparte el player (aunque con los códecs son plugin que se pueden usar con otros visores), tiene también complementos para flash y varias herramientas más que ya cada uno decidirá si le viene bien o si no las necesita...

652
VB .NET / Re: Sintaxis Delete
« en: Domingo 9 de Septiembre de 2007, 01:01 »
Borrar de una base de datos, noes tan simple como 'enviarle' la misión... la base de datos SQL están bastante afianzadas, lo que implica varias cosas: de entrada   debes tener privilegios como usuario en la base de datos ... y hacer el loogin correspondiente acorde a dichos privilegios ....

Dependiendo de la forma en que hayas implementado otras partes del programa deberás modificar la conectionstring y/o los permisos en la propia base de datos ... si ambas partes no son acordes no hay acuerdo para llevar a cabo la petición...

653
Visual Basic 6.0 e inferiores / Re: Controlar Instancias, Se Crean Muchas Y Solas?
« en: Sábado 8 de Septiembre de 2007, 12:52 »
Hola mira, ya he creado un ejemplo.... descargas el fichero de la dirección que te doy luego, descomprimes el rar y ejecutas el exe, verás que puedes abrir 5 instancias y no más, excepto que vayas a las opciones y modifiques el valor.... una vez que veas que funciona perfectamente, abres el proyecto y lo ejecutas paso a paso. sin embargo en modo debug, sólo podrás abrir una instancia, el modo de probar lo que sucede en otras instancias, exige que previamente abras las instancias desde el ejecutable y luego desde el proyecto (así puedes comprobar otra instancia distinta de la 1ª) espero que será suficiente para que compruebes y comprendas el código, si tienes dudas.... pregunta, aunque a veces tardo en entrar al foro....

Descargar el ejemplo desde: My Webpage

P.D.: le he añadido una opción en línea de comando para superar un posble bloqueo (en la próxima apertura) si por alguna razón (un fallo de corriente, por ejemplo) se colgó el ordenador con todas las instancias en curso (aunque también valdría eliminar el archivo de configuración, pero puesto que se supone que al final dicho archivo tendrá muchas más opciones de la aplicación, se ha provisto esta solución)... Si en ese entretiempo alguien intentó descargar el fichero es posible que no haya podido...

Saludos...

654
VB .NET / Re: Instryccion While....
« en: Sábado 8 de Septiembre de 2007, 07:58 »
Aunque hayas solucionado el problema no es nada 'elegante'...

el goto rompe la secuencia de escape del flujo de un bucle, es decir si proviene de otros flujops romperá dicha secuencia y no podrá retornar por donde vino...

Cuando se desea salir del mismo aún no cumpliéndose la condición, usar un 'exit while' (justo en el sitio desde donde quieres salir)  ..esto no rompe secuencias de retorno de la pila y por tanto no entra en conflicto con otras partes del programa.... el goto es muy bueno pero para saltos dentro de un mismo bucle, ya que de ese modo no rompe secuencias de la pila de retorno, solo desplaza el puntero del programa.

saludos..

655
Visual Basic 6.0 e inferiores / Re: Controlar Instancias, Se Crean Muchas Y Solas?
« en: Sábado 8 de Septiembre de 2007, 04:05 »
Lo lógico es que cada usuario tenga su instancia, y esto debe suceder en cada ordenador. El problema lo tiemes está mal explicado, pués quedan dudas de si en un ordenador lo utiliza uno o varios usuarios al mismo tiempo.

Si lo utiliza un sólo usuario, entonces debes controlar que no se realicen más instancias del mismo, o bien limita a cierto número de instancias...

usa el siguiente código para limitar a una sola instancia:

Código: Text
  1.  
  2. Private Sub Form_Initialize()
  3.     Dim Ya_Existe As Integer
  4.     Ya_Existe = App.PrevInstance
  5.  
  6.     If Ya_Existe <> 0 Then
  7.        MsgBox "El Programa ya se esta ejecutando, sólo se permite una instancia", 0 + 48, "nombre del programa aquí ..."
  8.        End
  9.      End If
  10. End Sub
  11.  

es posible que seas tu mismo quien desde el cóodigo llame a más instancias del programa, revisa alguna parte de código que te hayan 'pasado' y del que hayas hecho un copy-paste, sin verificarlo un poco...

p.D.: después de releer tu mensaje varias veces más, sospecho otra cosa, te doy la siguiente info pués:
En cualquier caso hay una forma más elegante de solucionar todo esto.... si se necesitan más de una instancia pero no quieres que se desborde .

crearé un pequeño programa de ejmplo y mañana o pasado lo cuelgo.. OK ?

656
Diseño de Algoritmos / Re: Concursos De Programación, Grupo De Entrenamiento
« en: Sábado 1 de Septiembre de 2007, 06:20 »
Cita de: "hano"
Hola a todos:

Estoy buscando programadores para formar un grupo de entrenamiento para concursos de programación, sobretodo basados en algorítmica.

(si queréis ver los links, este mismo post está en foros.programacion.com con el mísmo título)

Para los que no los conozcáis:

- TopCoder: Competiciones on-line, en tiempo real, dónde se premia la velocidad y correctitud de las soluciones. ...

Creo que este tipo de concursos de programación son muy beneficiosos. Te dan la posibilidad de practicar tus conocimientos en programación, a la vez que aprendes y desarrollas velocidad a la hora de comprender y resolver problemas. Los directorios son públicos, por lo que también sirve de auto-promoción, y demuestra proactividad...

...
Después de leer bastante por la página esa de topcoder, debo decir que es una tomadura de pelo....

Es una forma de obtener algoritmos (u otros contenidos de programación) a un precio ridículo... puede leerse ya en su página principal lo siguiente:
Citar
Learn how TopCoder delivers high-quality software at a lower cost than the competition.
..

Al intentar ver el nivel de los algoritmos puedes utilizar la 'arena' donde poder practicar con alguno de ellos, sin embargo tras instalar el plugin de java (no hay otras opciones posibles) se te solicita ABSOLUTO acceso a tu ordenador.... vamos que es como si les regalaras el contenido del mismo, no se conforman con una carpeta donde instalar y contener todo el meollo...

Para participar aparte de tener + de 18 años, (para evitar problemas legales, claro) debes estar inscrito en alguna universidad al menos durante la competición, lo que equivale a decir que debes ser estudiante y por tanto grandes posibilidades de que tengas una edad laboral nula o casi nula de modo que si finalmente te ofrecen trabajo resulte más positivo para ellos mangonearte, amén de que cabe la posibilidad de que el contrato no vaya directamente con la empresa para la que sean tus trabajos sino que actuen de intermediarios en algún modo...

Pero vamos ya sólo con la 1ª observación que apunté es suficiente, incluso aunque el resto fuera positivo... vaya una forma de hacer software barato aprovechándose del esfuerzo de los demás... por algún lado reza:
Citar
tu aplicación ya está medio hecha
:lightsabre:

657
VB .NET / Re: Programa Para Gimnasio
« en: Sábado 1 de Septiembre de 2007, 02:30 »
Es comprensible que no te den un programa del que aprender, porque por mucho que mires el código no vas a prender, haciendo modificaciones sólo aprenderás ciertos límites , es decir aquello que no esté en el programa seguirás siendo ignorante de ello.

Para aprender a programar:
1º lo primero que te aconsejo es que te leas un breve manual de UML, te aclarará conceptos e ideas,

2º y 3º  luego un manual breve de VB.net los hay de 2 estilos, (3º) el que te enseña a manejar el IDE y los diferentes controles y (2º) el que te enseña los principios básicos de programación ambos te son necesarios, primero este... ya que si en tiempos conocías algo de basic, te refrescará conceptos y formas. antes que leas el 2º manual básico, te recomiendo que instales ya el Vb.net... la versión que puedas obtener...

4º un manual más técnico de Vb 2005 con ejemplos que al tiempo que vas leyendo vas practicando...

5º Un manual de programación orientado a objetos (aunque no sea específicamente de visual basic te será de gran ayuda para comprender cada concepto más en profundidad y luego trasladarlo a VB), vamos que sea genérico y no específico de un lenguaje...

6º cuando ya hayas aprendido lo suficiente sobre Vb, tocaría el turno a las bases de datos, lo ideal es SQL (el programa que comentas básicamente es un programa de manejo de datos, por tanto lo más efectivo es manejar bases de datos)... debes saber que si se te resiste siempre podrás negar al SQL o cualquier otra base de datos y crear tus propias estructuras para manejar los datos, aunque será más lento de responder y te costará más trabajo desarrollarlo, merecerá la pena siempre que considerases que el tiempo de aprender lo necesario en SQL sea superior al iempo de programar en VB y por supuesto si sólo te vas a limitar a programar ese del gimnasio, si finalmente quieres seguir programando más cosas, será mejor que aprendas algo sobre bases de datos).

--------
Al tyiempo que aprendes todo esto puedes ir haciendo un esquema de todo lo que quieres que haga tu programa e ir detallando en pasos sucesivos cada parte, incluso el aspecto visual que consideras darle (la foto arriba, debajo detalles, o a la derecha, etc...  Por supuesto estas descripciones irán variando en la medida que tus conocimientos vayan evolucionando, pero te servirá para que no se te olviden ideas....

En cualquier caso cuando logres programar algo, saca versiones, primero lo más elemental, es decir añadir los datos de los socios a la base de datos (o fichero si programaste por estrucuturas sin bases de datos) y rescatar dichos datos para mostrarlos, luego en sucesivas versiones vas ampliando el programa con nuevos módulos... Vamos que no te aconsejo que no tengas el programa disponible hasta que no tengas todo completado, lo típico es que vayan apareciendo errores que debes ir corrigiendo, si de cada versión es uno o dos módulos nuevos te será manejable corregir errores, si en cambio tienes 25 módulos y todos ellos salen de golpe te dará tanta pereza corregir tantos errores que quizás desistas... no te quemes, ve poco a poco y paso a paso...

658
VB .NET / Re: Matriz En Espiral
« en: Sábado 1 de Septiembre de 2007, 01:50 »
Bueno a mi no me suena del todo a una tarea, así que le daré una pequeña pista para hacer algo ....

Toma un papel cuadriculado, en espiral ve escribiendo números formando una espiral... (la famosa espiral de Arquímedes)... bueno cuando estés cansado de escribir números (completa las filas y columnas) ahora tomando las filas y columnas tienes que los nuevos índices alojan valores que han formado la espiral, o viceversa... : ordenando la matriz por su valor obtendrás índices formando una espiral ...

una imagen espero que te aclare el asunto... empieza por el uno y sigue en orden, para ver la figura que realiza en espiral


ya tienes por donde tomarlo...

659
Cita de: "'Juravi'"
Cuando ustedes se refieren a violaciones en la seguridad de nuestras aplicaciones, se refieren a la misma plataforma donde trabajamos o a los software que desarrollamos…?
Nos referimos a las aplicaciones que nosotros mismos desarrollamos.... que mocosoft, se preocupe de las suyas...

Cita de: "'Juravi'"
Mi duda es, si .net es orientado a objetos y a la ves se aplica los términos de Abstracción, Encapsulación, Herencia y Polimorfismo, las aplicaciones en .net no serian lo suficientemente seguras para estos casos de violaciones
Estas cualidades de los objetos, se refieren al desarrollo de los mismos, encapsulación es aislamiento, pero es aislamiento del resto de objetos, no tiene nada que ver con los usuarios...

Net no sólo no es seguro sino que el código compilado se traduce a otro lenguaje que se puede descompilar y ver el código fuente.

Una de las cosas que se hace en NET es usar un 'ofuscador' que básicamente lo que hace es cambiar los nombres de variables y procedimientos, una vez compilado para que sus nombres tengan justamente la idea opuesta a cuando se programa de forma estrucuturada... es decir se les da nombres insulsos... por ejemplo una variable que antes se llamaba nombre_cliente ahora a lo mejor se llama a5847589 y un método que antes se llamaba ordenar_lista ahora a lo mejor se llama g5784763.

Citar
Yo lo que he venido haciendo hasta el momento es complicar la validación. En diferentes partes del programa se chequea nuevamente de modo que aunque se salte la primera, cuando acceda a alguna otra parte, salta la protección. Genera un nuevo código, de modo que fuerce a hackearlo de nuevo, entonces o salta todas las protecciones o no le servirá de mucho. Saltar todas las protecciones implica dedicarle mucho tiempo.

Aparte de validar en varios sitios, yo uso hash tanto estáticos como dinámicos, los estáticos son los que en un momento dado resulten más fácil pero les obliga a dedicar un tiempo. Además mezclo  el estático con el dinámico en algun punto y desde luego no uso la base decimal, uso una base aleatoria en el hash dinámico de modo que no basta con hackearlo y cambiarlo, si luego al operar hay elementos no válidos se pproduce un error.

Además procuro que esos hash, formen parte del código,por  es decir pongamos que tengo un hash así de sencillo: 887, pués por ejemplo se puede usar para el ancho de la ventana, si un hacker lo viola tal vez la ventana tenga 076 de ancho... otro ejemplo quizás el carácter 8º de un hash siempre deba ser una cifra concreta, por que quizás este asociado con que un botón esté activo o no... Si enrevesas esos hash en muchos partes estás obligando al hacker a meterse un trabajo de narices, pués no le bastará con modificar un código, ya que esta modificación alterará también el programa... deberá reparar cada parte del programa en que el hash tome parte.

En última instancia suelo poner otra protección que determina el hash del archivo (del exe) y que se valida desde otro exe, si aquel exe no existe se generará un error...

Otra cosa, es hacer protecciones aleatorias, es decir puede que al abrir una ventana y manejar unos controles se realice una validación pero sujeta a las siguientes condiciones: tomamos un número aleatorio del 1 al 100 (por ejmplo) si el número es múltiplo de 7 (o de 11 o es el 46 ó...)  hacemos la validación... esto significa que si se burló la protección puede que funciones durante un tiempo cuando salte esa validación ya veremos...

Otra cosa que suelo hacer es poner una validación que depende del tiempo, de la fecha por ejemplo sólo saltará cada vez que coincida el (número de días desde su creación que dividido por x) mod y=z

En fin se trata de enmarañarlo (un alambre de espinos) justo al final cuando ya lo terminaste, antes de compilarlo definitivamente, procurando que la validación no sea justo empezar el programa, si quieren mirar en ensamblador y tienes una protección justo al inicio, será muy fácil saltarla.... si no se sabe en que momento saldrá pueden pensar que no hay más... en ensamblador repasar un programa de 1Mb. es tedioso..

660
Visual Basic 6.0 e inferiores / Re: Ajustar Picturebox A La Imagen
« en: Martes 17 de Julio de 2007, 17:34 »
Es bastante sencillo...

En vez de alojar la imagen en el picturebox, haz lo siguiente:

coloca un control image dentro del picturebox
cambia su propiedad strecht a true

Ya está, para cambiar el tamaño de la imagen sin perder sus proporciones multiplicas el ancho y el alto del control image por el mismo factor

Código: Text
  1. Sub Redimensionar(zoom as integer, destino as control)
  2.      destino.height=destino.height * zoom
  3.      destino.width=destino.width * zoom
  4. End Sub
  5.  

eventualmente, puedes querer que el picturebox tenga el mismo tamaño que la imagen entonces añades este código a la subrutina anterior

Código: Text
  1. picturebox1.height=image1.height
  2. picturebox1.width=image1.width
  3.  

661
Cita de: "Stevenmn"
Buenas, quisiera saber si alguien conoce la forma de generar los numeros de esta tabla:

para que salgan igual.

Lo que en si necesito es saber si mediante un bucle o algo, puede generar esa combinacion de nuemeros, para que me de exactamente igual que como esta en la tabla.

 
La forma más simple de generarlos, es leerlos de un fichero.

Puedes crear un fichero con una estructura similar a esto

Código: Text
  1.  
  2. <tabla>
  3. <fila>
  4.    <nº>7</nº>
  5.    <lista>
  6.        <item>4</item>
  7.        <item>10</item>
  8.        <item>3</item>
  9.        <item>4</item>
  10.                  .
  11.                  .
  12.                  .
  13.    </lista>
  14. </fila>
  15. <fila>
  16.        .
  17.        .
  18.        .
  19. </fila>
  20.      .
  21.      .
  22.      .
  23. </tabla>
  24.  
  25.  

después de guardado pudrías leerlo con una estructura similar a esta

Código: Text
  1. type tablaNumeros
  2.     filaLlena as boolean
  3.     fila as integer
  4.     numItemsPorfila as integer
  5.     items() as integer
  6. end type
  7.  
  8. Public filas() as tablaNumeros
  9.  



...y los métodos para leer el fichero y asignarlos a la estructura. Luego lo que llamas generarlos es mostrar el siguiente item de esa fila...

Si en cambio lo que quieres saber es si los items en las filas responden o son generados a una función matemática en concreto, pues, podrás imaginarte que no tengo ganas de revisar la tabla para ello, tal vez una pregunta más escueta, le dedicara tiempo.... en cualquier caso a primera vista, como dice Angel_K_ido parece ser listas aleatorias...

662
Inteligencia Artificial / Re: Pidiendo Ayuda Con Lisp
« en: Viernes 13 de Julio de 2007, 18:04 »
Lo adecuado es preguntar dudas, no tareas completas. No se hacen tareas a nadie.

Expón el caso hasta donde has llegado y plantea la duda que tienes, desde la duda que tengas se te orientará, pero lo que no se hará es darte un trabajo que tienes que hacer tú.

Si no tienes ni por donde empezar entonces debes estudiar más antes de ponerte con prácticas.

En los foros se responde esos puntos que no se alcanza a ver pero si no se sabe ni de lo que se habla (lo que se demuestra por la ausencia de un planteamiento básico del problema) , entonces la respuésta es, profundiza en la teoría lo suficiente para concebir lo que se debe hacer y cómo, luego si hay algún detalle que dándole vueltas no sale es cuando se debe preguntar.

663
VB .NET / Re: Problemas Acceso A Base De Datos Access Con Passwo
« en: Viernes 13 de Julio de 2007, 17:57 »
Este es el foro de Vb.net, tu pregunta no se adecúa a este foro, ni Paradox, ni php ... ve al foro de bases de datos y allí eliges la de tu pregunta, opcionalmente vas al foro de php y preguntas allí.

Aprende a ordenar tus preguntas, si se te responde y alguien más pregunta, si está en el foro adecuado, la podrán encontrar si está aquí, dudo que alguien más le sirviera o la encontrara.

664
VB .NET / Re: ª,º,ç,Ç, ¿como Validar Esto?
« en: Viernes 13 de Julio de 2007, 17:46 »
Esos 4 caracteres, son caracteres extendidos, entonces sólo te valdrá si usando el mismo juego de caracteres coincide con ellos.

Es decir debes preguntar por su código ascii y es con eso con lo que lo debes comparar, no con el símbolo ..de hecho yo ni siquiera validaría con e.keychar ya que los caracteres extendidos usan ALT + número, no recoges casos com á,é,í,ó,ú, Á,É,Í,Ó,Ú, ü , Ü que podrías aceptar.... e.keychar solo te devuelve la última tecla pulsada, por tanto si tratas de poner á te devlverá que has pulsado [shift], luego [´] y luego [a], sin embargo es sólo un carácter que requiere 3 pulsaciones.

keychar es muy bueno para validar botones basados en atajos y y teclas que 'se ven' (por ejemplo F1, escape, down, enter, etc....) cosas así, pero para validar caracteres es mejor usar la función asc() y chr() un ejemplo

Código: Text
  1. Imports vb=Microsoft.VisualBasic
  2. Private Sub textbox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged
  3.        Static cadena As String = ""
  4.         Dim  letra As String
  5.         Dim n As Short
  6.  
  7.         letra = VB.Right$(TextBox1.Text, 1)
  8.         n = Asc(letra)
  9.         If ((Asc(letra) >= Asc("0")) And (Asc(letra) <= Asc("9"))) Or ((Asc(letra) <= Asc("a")) And (Asc(letra) <= Asc("z"))) Then
  10.         '    'es correcto
  11.             cadena = TextBox1.Text
  12.         Else     'aquí se valoran opciones menos frecuentes y casos no válidos
  13.             'if n=letras tildadas o letras con diéresis luego
  14.                    'cadena = TextBox1.Text
  15.             'else
  16.                   TextBox1.Text = cadena
  17.                   msgbox("El carácter '" & letra & "' no es válido.")
  18.                   beep
  19.             'end if
  20.         End If
  21.     End Sub
  22.  
Hay que tener en cuenta que esto va examinando letra a letra según se va introduciendo por el teclado, pero hay 2 situaciones en que esto no se validaría correctamente.
Esos casos son cuando el texto sea pegado y no introducido por el teclado, o bien cuando el usuario se plante en medio de una cadena válida y pulse un carácter. Para solucionar estos casos lo ideal es validar toda la cadena cada vez que el texto cambie (y no sólo el último carácter como se muestra en el código),  en ese caso, la función que realiza iría en un bucle, la variable estática sobraría y el texto a devolver si hay error sería o una cadena vacía o llo verficado que es válido hasta el momento.

Si el texto a introducir es muy corto,  la validación va bien en el evento textchanged, en cambio si es muy largo el texto, lo ideal es validarlo cuando el usuario finalice y pulse un botón, y en ese caso no borrarle el texto, si no en el mensaje indicarle que caracteres no son válidos...

665
VB .NET / Re: Consultas
« en: Viernes 13 de Julio de 2007, 16:41 »
Como te dice elnapster...

solo tienes que sustituir var_fecha_ini por el valor de tipo DATE contenido en una celda del datagridview y lo mismo para la otra fecha...

var_Fecha_ini= DataGridView1.Rows.Item(e.RowIndex).Cells.Item("FechaInicio").Value)

Nota que FechaInicio es el nobre del 'header' de esa columna.
e.rowindex refiere a la fila sobre la que se pincha en ese momento que se obtiene de un evento click por ejemplo:    ' Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick'

Si la fecha de inicio y fin estuvieran en distintas filas, tendrías que pasar el valor a una variable temporal hasta presionar el botón o la acción que desencadene la consulta (que tal una estructura pública con dos elementos de fecha )..

666
Visual Basic para principiantes / Re: Error Al Instalar Mi Aplicacion En Otra Pc
« en: Viernes 13 de Julio de 2007, 16:24 »
Esta línea:
Código: Text
  1. Object Variable or With block variable no set
  2.  

y esta otra:
Código: Text
  1. a se me olvidaba, instale visual basic en otra makina donde instale mi aplicacion , y ahi ya jalo, apoco tendria ke instalar visual en cada makina para ke me jale la aplicacion???
  2.  
quedan de manifiesto que te falta alguna librería. Al instalar Vb en una máquina se cargan las librerías, pero esa no es la solución.

La solución consiste en saber que librerías usa tu aplicación y proveerlas. Para saber que librerías usa tu aplicación hay varias formas, la más sencilla es hacer lo siguiente:

abre una ventana de exploración de windows.... localiza una ruta que posiblemente sea muy parecida a esta: C:\Archivos de programa\Microsoft Visual Studio\Common\Tools busca la aplicación llamada Depends.exe (si no la tienes búscala en tu cd de instalación). Ejecuta dicha aplicación, dentro de la aplicación dale al menú 'file' -> 'open' y localiza tu aplicación la selecciona y aceptas.... te dirá todas las dependencias que tiene, esto es todas las librearías que son referenciadas que son las que en alguna parte del programa se emplean, esas son las librerías que debes comprobar si existen en el equipo donde hospedas tu programa y en caso de no existir, instalarlos, si por alguna razón ya existe, pero la versión que hay da problemas con tu programa, (no la elimines, seguro que otras aplicaciones la usan correctamente) entonces copia la librería con  la versión que funciona en tu programa en una ruta de tu programa (en vez de en windows\system32\ ... ) y regístrala allí, para que windows sepa que existe.

Windows, cuando busca una librearía primero busca en la ruta local, si no se halla entonces mira en el sistema (esto lo hace mediante el registro).

667
Programación de Videojuegos / Re: Estamos Creando Un Proyecto
« en: Miércoles 11 de Julio de 2007, 18:02 »
Cómo va el proyecto en cuestión ????...

Veo que el último mensaje es de marzo, lo terminaron, lo abandonaron, lo llevan desde otra web....?

Por cierto yo tengo una copia del dark Basic que se indica en el primer post, perdido en alguna carpeta del disco duro...  :whistling:

668
Inteligencia Artificial / Re: Asignar Valor A Variable De Una Forma A Otra
« en: Miércoles 11 de Julio de 2007, 17:22 »
Te has equivocado de foro, este es de inteligencia artificial, tu necesitas escribir en uno de c++

669
Diseño de Algoritmos / Re: ¿cómo Generar Un Calendario Deportivo?
« en: Miércoles 11 de Julio de 2007, 17:16 »
Para que un equipo no se enfrente a sí mismo sólo tienes que ver que posición tiene, por tanto si uno ocupa la posición pongamos 7, entonces en el segundo bucle hay que decirle que cuando sea 7 se lo salte y contnue con el siguiente...

un ejemplo: con una matriz para 9 elementos

  123456789  
1*23456789
21*3456789
312*456789
4123*56789
51234*6789
612345*789
7123456*89
81234567*9
912345678*

Como puedes ver el bucle 'a' (horizontales) va tomando elementos, el bucle 'b' (verticales) lo primero que hace es comprobar si b=a luego avanza hasta el sigieunte elemento del bucle b, lo cual sucede cuando coinciden 1,1 2,2 3,3 4,4 5,5 6,6 7,7 8,8 y 9,9 que es cuando en teoría uno jugaría consigo mismo.... pero si observas un periódico deportivo ya verías las tablas con dichos elementos tachados... lo que te debía de haber servido de pista.

670
Diseño de Algoritmos / Re: Arboles Y Nodos Hojas Inciales
« en: Miércoles 11 de Julio de 2007, 17:00 »
De acuerdo a tu dibujo, debes borrar sólo él último nodo, es decir el que no tiene más nodos bajo si.

En teoría si se te borró todo el árbol es bastante probable que lo llevaras bien enfocado y el problema está en la recursión.

es decir tras eliminar un nodo, su ancestro ahora es la hoja, por tanto si le das recursividad, se borrará ese, que a su vez dejará el nodo superior como hoja...y al final podas todo el árbol....

El árbol solo ha de ser ecorrido una vez, cada elemento sólo se debe comprobar una vez. Si con todo lo quieres hacer recursivo, entonces cuando se pasa por un nodo, si se decidió no borrar se marca, y antes de borrar se comprueba cada marca si se ´marcó no borrar aunque sea nodo final, no se deb borrar...

671
Visual Basic para principiantes / Re: Quien Me Pueda Ayudar
« en: Miércoles 11 de Julio de 2007, 16:34 »
Cita de: "erojasb"
Hola Nebire.
A lo que me refiero es que tengo una maquina industrial en la que hago productos fìsicos. Es decir, tengo una maquina que me produce bolsas para empacar, bolsas comunes y corrientes como en la que se empacan unas galletas. Cada bolsa es una referencia, y cada montaje es los cambios que le tengo que hacer a mi maquina para proucir una bolsa diferente a la que estaba produciendo.
El programa que necesito desarrollar es para ayudarme en la programaciòn de la producción de mi planta, pues estoy siendo muy ineficiente al no programar una secuencia de referencias que sean lo suficientemente similares entre si para que no tenga que realizar muchos cambios en el montaje.
Me explique bien? Ojala que si lo haya hecho y que me puedan ayudar.
Gracias.
Hola... ahora ya te has explicado mejor.

Mira para eso que necesitas existe lo que se llaman clases (class), pero te recomiendo que uses el Vb.net que es más claro y conciso para esos propósitos.

Te explico un poco por encima.

Una clase es (para que lo entiendas) un modelo básico de un elemento cualquiera, lo que podríamos llamar una plantilla básica.

A diferencia de una plantilla física (que sólo te vale para una forma determinada, la que adquiere la plantilla), en programación se lo hace lo más abstracta (genérica) posible a fin de que pueda adaptarse a muy diferenctes casos.

supongamos que voy a fabricar tipos de pastas, tengo una maquinaria que admite programas .exe (que no tienen que ser específicamente programados) de windows... y lo interpreta corectamente (que es compatible con el software).

entonces (abreviadamente) se crearía una clase básica de pasta (la clase es lo que tu de alguna manera has dado en llamar referencia). La clase más básica de pasata incluye las siguientes partes que iremos bosquejando:
ingredientes que lo forman
forma y tamaño
presentación de lotes y embalado
pasar los datos a la máquina
crear diferentes pastas partiendo de la básica abrirlas y guardarlas

Todo esto es lo que vamos a hacer con nuestra clase. Empezamos por crear un proyecto nuevo, este proyecto lo llamaremos FabricaPastas, automáticamente aparece un formulario que será con el que luego que creemos nuestro molde de pasata básica, utilizaremos para crear más pastas, guardarlas e introducir los datos de creació de una pasta a las máquinas.

sin embargo antes de hacer nada en el formulario, vamos a crear nuestra pasta básica, el molde simple pero completo....elegimos añadir un nuevo tipo de elemento al proyecto, de los componentes que se ofrecen elegimos uno que se llama clase (con Vb.net generar clases es más sencillo y rápido y es más claro la sensación de objeto que con VB6). menú proyecto: add Class

hoy te explico la parte de los ingredientes, como sería esto en la clase, como se crean y para qué... y crear esta primera pasta, otro día te explicaré como crear pastas diferentes a partir de esta básica y así en sucesivos días otras partes más...

Es lógico que las pastas se compongan de diferentes ingredientes, como queremos que nuestra plantilla sirva para que las maquinarias puedan hacer muy diferentes tipos de pastas, cuanto más amplio sea el repertorio de ingredientes, más facilidad habrá para esa diversidad, no obstante en este ejemplo vamos a considerar un número limitado de los mismos para que no sea excesivamente extenso, pero lo suficientemente largo para que los distribuyamos en categorías.
pego el código que de momento generaríamos y luego te comento cada parte, qués qué hace, para qué sirve...

Código: Text
  1. Public Class Pasta
  2.     Public Structure info
  3.         Public producto As String
  4.         Public cantidad As Integer
  5.     End Structure
  6.     Public Enum otrosEdulcorantes
  7.         miel = 1
  8.         aspartame = 2
  9.     End Enum
  10.  
  11.     Public Enum ingredientesSecretos
  12.         canela = 1
  13.         anis = 1
  14.         piña = 2
  15.     End Enum
  16.  
  17.     Public Enum otrosIngredientes
  18.         limon = 1
  19.         naranja = 2
  20.         calabaza = 3
  21.         ajo = 4
  22.         tomate = 5
  23.         cocacola = 6
  24.         chococalte = 7
  25.         coco = 8
  26.         nataMontada = 9
  27.         caramelo = 10
  28.     End Enum
  29.  
  30.     Public Enum ingredientesBase
  31.         agua = 1
  32.         aceite = 2
  33.         sal = 3
  34.         azúcar = 4
  35.         harina = 5
  36.         alcohol = 6
  37.     End Enum
  38.     Public Enum formas
  39.         irregular = 0
  40.         redonda = 1
  41.         oval = 2
  42.         triangular = 3
  43.         rectangular = 4
  44.         estrellada= 5
  45.     End Enum
  46.  
  47.     Public Structure ingredientes
  48.         Public base() As info
  49.         Public edulcorantes() As info
  50.         Public secretos() As info
  51.         Public otros() As info
  52.     End Structure
  53.     Public Structure dimensiones
  54.         Public largo As Short       'en milímetro
  55.         Public ancho As Short       'en milimetro
  56.         Public grueso As Short      'en milimetros
  57.         Public superficie As Short  'en cm cuadrados
  58.     End Structure
  59.     Public Structure empaquetado
  60.         Public tamañoCaja As dimensiones
  61.         Public cantidad As Short
  62.         Public precio As Short
  63.         Public peso As Short
  64.     End Structure
  65.  
  66.     Public numIngredientes As Short
  67.     Public partesTotales As Integer
  68.     Public forma As formas
  69.     Public tamaño As dimensiones
  70.  
  71.     'genera una pasta básica
  72.     Public Sub New()
  73.  
  74.     End Sub
  75.  
  76. End Class
  77.  

Lo primero que hemos creado es una estructura, un estructura es en si una miniclase, puede contener funciones y rutinas al iigual que una clase, pero con la salvedad de que las estructuras se quedan en memoria, por eso no hay que abusar de ellas, las clases se cargan y descargan de memoria según se soliciten..
La estructura sirve para contener en un mismo recipiente diversas cosas pero que las vemos como un conjunto, así a la primera estructura la hemos llamado info (el nombre no es muy ilustrativo, pero se lo he dado para que veas que un nombre no muy ilustrativo a la larga puede dar problemas. (nota las estructuras es lo que en VB6 se llamaban type, pero aquí tienen mayor funcionalidad).

Esta estructura tiene 2 elementos, producto y cantidad producto es una cadena de texto y cantidad una cifra (integer en vb.net es una cifra muy grande, en VB6 sólo llegaba hasta 32767) Esta estrucutra la usaremos para relacionar cada ingrediente utilizado, si por ejemplo usamos el ingrediente(4), entonces la forma ingrediente(4).producto   nos indica el nombre del mismo y la forma ingrediente(4).cantidad el peso en que inteviene para hacer una única pasta.

Luego hemos creado enumeraciones. Las enumeraciones son básicamente listados, es una forma de que si doy a un usuario a elegir una cifra no elija una que no se correponda con lo que tenemos disponible... imagina que vas a un bar y pides una cerveza negra de marga Groug de medio litro, te dirán , lo sentimos tenemos un problema, no tenemos esa cerveza... un modo de solucionarlo (en parte) consiste en exponer una carta con las cervezas disponibles, si no figura en la carta, no la tienen, si figura, está (en el bar esto es sólo teoría pero en nuestro caso es distinto). Además una enumeración es una forma doble de llamar a algo, puedo llamar inditintamente al azúcar por su nombre o utilizar el valor que le representa el 4, es el valor que nos ha dado la gana darle, al igual que en la carta de cervezas uno podría decir dame una 'guau 5 estrellas' o decir dame la número 8...

Como ves hemos creado varias enumeraciones, una para los ingredientes base estos queremos que entren siemopre en cada pasta, con mayor o menos medida, digamos que son los productos imprescindibles, la pasta más básica. Hemos creado uno de edulcorantes, miel, aspartame... podríamos haber incluído allí el azú car pero suponemos que al menos en una pasta siempre debe haber algún adulcorante, más adelante podremos definir si lo deseamos si al introducir un edulcorante dejamos fuera (sustituye completamente) al azúcar o no.

Hemos puesto también una enumeración de ingredientes secretos.... como mera cursiosidad de que la personalización puede levarse a extremos.
..y hemos añadido también una enumeración para la forma de las pastas creadas, puede tener cualquiera de las formas allí indicadas (en otra ocasión ya le indicaremos a la máquina como se hace cada forma, ahora baste saber que esto es lo que queremos para nuestra pasta. Las enumeraciones las puedes aumentar tanto como quieras y puedes cambiarlas de sitio, sólo hay 2 premisas a la hora de programarlo, debes indicarlas en orden correlativo, pueden indicar cifras negativas también... y no puedes repetir el nombre a ninguna (ni la cifra).

En tu caso deberías hacer una enumeración de los diferentes tipos de bolsas, si las bolsas están divididas en grupos y luego cada grupo tieien su lista, entonces cada grupo lo describes como una estruuctura y creas una enumeración por cada grupo ... ahora vamos a esa parte ...

analizando la estructura de ingredientes:
Código: Text
  1. Public Structure ingredientes
  2.         Public base() As info
  3.         Public edulcorantes() As info
  4.         Public secretos() As info
  5.         Public otros() As info
  6.     End Structure
  7.  
  8.  
verás que es como te he sugerido para tus grupos de bolsas...
cada uno de los miembros de esta estrucutura en una matriz de elementos del tipo info es decir que finalmente nuestro azúcar no es ingrediente(4).producto como sería si solo hubieramos concebido los productos básicos, como esta clase es un modelo base es deseable que lo formen más elementos para que teneiendo una gran variedad, no sirva sólo para 2 o 3 pastas sino una variedad mucho mayor. entonces nuestra pasta básica aún no ha sido creada, tenemos los elementos pero aún hay que crearla, esto se hace desde la rutina llamada new(), en vb.net esto se llama constructor. Un constructor es la base y el origen de creación de un objeto cualquier clase creada necesita ser construída. Si no tienen un new, el sistema asigna uno automáticamente pero no hace nada, aquí es donde le diremos que es una pasta básica.

Nota que vamos a dividir o separar lo que es diseñar una pasta nueva de fabricarla, es decir serán 2 actos distintos, eso quiere decir que al invocar el new() lo que hacemos es diseñar , luiego para fabricar la pasta crearemos otras funciones. Crearemos incluso una función que al tiempo que se diseña también se crea, es decir reune las partes, las prepara, las mezcla, las lleva al horno, las saca y las empaqueta. Pero esta la haremos al final, priemro hay que definir parte a parte del mecanismo.

Falta por hoy explicar 3 cosas más:
1 el constructor lo hemos dejado vacío, en otra ocasión lo completamos para que veas como será nuestra pasta básica.
2 la estructura ingredientes será una parte fundamental de esa rutina  
3 hay otros elementos fuera de las estructuras y de las clases:
 
Código: Text
  1.  
  2.     Public numIngredientes As Short
  3.     Public partesTotales As Integer
  4.     Public forma As formas
  5.     Public tamaño As dimensiones
  6.  

Cada uno de estos se puede interpretar como una estructura de un único elemento, o bien al revés las estructuras son como estos pero compuestos de varios elementos. Estos básicamente los usaremos para informar, y para usar en otras partes que nos las pedirán. numIngredientes, contará el número de ingredientes que se usarán para cada pasta, esto será necesario saberlo para que cuando la máquina se ponga a reunir los ingredientes y mezclarlos, sepa cuantos nos hacen falta cuantas veces tendrá que volcar el recipiente que lo conteiene y batir, cuantas veces tendrá que pesar, etc... por tanto será necesario crear una función que descubra y calcule dada una pasta en concreto cuanto ingredientes tiene. De igual modo partes totales nos informa de las proporciones en que entra cada ingrediente, si le pidiéramos fabricar 1234 pastas necesitarémos saber cuanto azúcar, agua , huevos o sal necesitáremos..., si se dispone de una máquina que pesa y toma la cantidad necesaria necesitaremos pasarle este dato para cada ingrediente, para que la fórmula sea la misma sea cual sea el número de pastas a fabricar, la forma es capricho y estética, de igual modo el tamaño de cada pastadecide cuanto volumen se precisa para completar x piezas, si una pasta tiene el tamaño de una caja de cerillas no empleará el mismo material que si tiene el tamaño de la palma de la mano, entonces 1000 piezas de diferente tamaño tienen diferentes cantidades...

por hoy vale....

672
Visual Basic 6.0 e inferiores / Re: Manipular Los Bass De Wmp
« en: Miércoles 11 de Julio de 2007, 14:23 »
No se exactamente que pretnedes hacer, pero para manejar el mediaplayer usa esta: WMP.dll

673
Visual Basic 6.0 e inferiores / Re: Empaquetar Txt
« en: Miércoles 11 de Julio de 2007, 14:18 »
si vas a guardar cierto contenido de texto y quieres que quede incrustado como tu dices en el exe (no se podrá variar) entonces es tan sencillo como añadir un control richtextbox (o textbox si solo es un usuario y contraseña) meter el texto que deseas y darle la propiedad de invisible, además puedes darle un left=-5000 y/o un tamaño 1,1 y un enabled=false...

Dicho de otro modo son varibles del programa en este caso constantes, pués cada vez que se inicia el programa son lo mismo, la ventaja de leer el fichero es que puedes validar la contraseña mediante algún algoritmo para identificar si es verdadera o no....  por otro lado puedes cifrar el archivo de texto, así la contraseña y el usuario quedan a salvo de miradas curiosas.

Si sólo una persona va a maenjar ese programa puedes hacer lo primero, guardar las variables de usuario y contraseña en el formulario como campos ocultos o simplemente como constantes del programa:

Código: Text
  1. dim adminContraseña as string
  2. dim usuario as string
  3. adminContraseña="FedericogarciaLorca%&/()=2007"
  4. adminUsuario="adminFTP@miweb"
  5.  
  6. private sub form1_load()
  7.   dim conectado as boolean
  8.   dim conexManual as VbMsgBoxResult
  9.   conectado= conectaFTP(adminContraseña,adminUsuario)
  10.   if conectado=false then
  11.      conexManual= msgbox("La contraseña, el usuario, o ambos no es correcto. Desea hacer una conexión manual?", vbYesNO,"Falló la conexión al FTP")
  12.         if conexmanual=vbYes then
  13.               formConectarManual.show 1
  14.        end if
  15.  
  16.   end  if
  17. end sub
  18.  

674
Visual Basic 6.0 e inferiores / Re: Problema Con Macro
« en: Miércoles 11 de Julio de 2007, 13:59 »
Hay dos causas posibles:

La primera y más lógica es que no coincida con otra que ya utilice esa misma combinación ().

La otra es que en el formulario debes activar una propiedad para que se invoquen los eventos de teclado para los controles de un objeto que los eventos de teclado del objeto en sí .

Ve a las propiedades del Form1 (o como le llames) y cambia el valor de la propiedad keyPreview

675
Visual Basic 6.0 e inferiores / Re: Cortar Imagen
« en: Miércoles 11 de Julio de 2007, 13:45 »
Hay una función asociada a los controles gráficos muiy útil al caso que se llama 'paintpicture' (pulsa  la tecla f2 y pulsa enter, saldrá el visor de objetos, escribe paintpicture y pulsa enter... estudia los controles y la función en si)

Paintpicture, no sólo copia y pega un trozo de imagen sino que también permite giros, la línea de ejemplo siguiente produce una salida de 'espejo vertical'
Noas: (picture1 contiene una imagen que deseamos introducir en el objeto picture2 invertido verticalmente, si sólo quieres un trozo selecciona las coordenadas del origen (en este ejemplo las coordenadas de origen son 0,0 ancho,alto es decir la imagen completa, esto está expresado en los parámetros ', , , , ' que por defecto toma los valores reales del origen.)

Lee los detalles de esta instrucción más abajo.

Código: Text
  1.             Picture2.PaintPicture Picture1.Picture, 0, Picture2.Height, Picture2.Width, -Picture2.Height, , , , , vbSrcCopy
  2.  
  3.  

PaintPicture (Método)
      

Dibuja el contenido de un archivo gráfico (.bmp, .wmf, .emf, .cur, .ico o .dib) en un objeto Form, PictureBox o Printer. No aceptaargumentos con nombre.

Sintaxis

objeto.PaintPicture imagen, x1, y1, ancho1, alto1, x2, y2, ancho2, alto2, códigoOp

La sintaxis del método PaintPicture consta de las siguientes partes:

Parte Descripción
objeto Opcional. Unaexpresión de objeto que da como resultado un objeto de la lista Se aplica a. Si se omite objeto, se supone que objeto es el objeto Form que tenga elenfoque.
imagen Requerido. El origen del gráfico que se va a presentar en objeto. Debe ser la propiedad Picture de un objeto Form o control PictureBox.
x1, y1 Requerido. Valores de precisión simple que indican las coordenadas de destino (eje x y eje y) del objeto en el que se dibuja la imagen. La propiedad ScaleMode del objeto determina las unidades de medida que se usan.
ancho1 Opcional. Un valor de precisión simple que indica el ancho de destino de la imagen. La propiedad ScaleMode del objeto determina las unidades de medida que se usan. Si el ancho de destino es mayor o menor que el ancho de origen (ancho2), imagen se amplía o se comprime para que quepa. Si se omite, se usa el ancho de origen.
alto1 Opcional. Un valor de precisión simple que indica el alto de destino de la imagen. La propiedad ScaleMode del objeto determina las unidades de medida que se usan. Si el alto de destino es mayor o menor que el alto de origen (alto2), la imagen se amplía o se comprime para que quepa. Si se omite, se usa el alto de origen.
x2, y2 Opcional. Valores de precisión simple que indican las coordenadas (eje x y eje y) de la región de recorte dentro de la imagen. La propiedad ScaleMode del objeto determina las unidades de medida que se usan. Si se omite, se asume el valor 0.
ancho2 Opcional. Un valor de precisión simple que indica el ancho de la región de recorte de la imagen. La propiedad ScaleMode del objeto determina las unidades de medida que se usan. Si se omite, se usa el ancho de origen total.
alto2 Opcional. Un valor de precisión simple que indica el alto de origen de una región de recorte de la imagen. La propiedad ScaleMode del objeto determina las unidades de medida que se usan. Si se omite, se usa el alto de origen total.
códigoOp Opcional. Un valor de tipo Long o código que se usa sólo conmapas de bits. Define una operación bit a bit (como vbMergeCopy o vbSrcAnd) que se realiza sobre imagen a medida que se dibuja sobre objeto. Para obtener la lista completa de constantes de operadores a nivel de bits, vea el tema Constantes de RasterOp en la Ayuda de Visual Basic.
Existen algunas limitaciones del uso de códigos opcionales. Por ejemplo, no puede usar un código opcional distinto que vbSrcCopy si el origen es un icono o un metarchivo, y los códigos opcionales que interactúan con el patrón (o "brush" en términos SDK) como MERGECOPY, PATCOPY, PATPAINT y PATINVERT actualmente interactúan con la propiedad FillStyle del destino.

Nota   CódigoOp se utiliza para pasar una operación a nivel de bit en un mapa de bits. Colocar un valor en este argumento cuando pasa otro tipo de imagen puede provocar un error "El argumento o la llamada al procedimiento no son válidos". Ocurre en tiempo de diseño. Para evitar este error, deje el argumento códigoOp en blanco para cualquier tipo de imagen que no sea un mapa de bits.

Páginas: 1 ... 25 26 [27] 28 29