• Lunes 12 de Mayo de 2025, 14:44

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 ... 26 27 [28] 29
676
VB .NET / Re: ¿se Puede Llamar Un Evento Dentro De Otro?
« en: Miércoles 11 de Julio de 2007, 13:26 »
Un evento puede a su vez llamar a otro evento, claro que sí, en ello consiste gran parte del ahorro de escribir código, solo hay que tener cuidado con algunas cosas..

que no entre en un círculo cerrado, que se simplifique si es posible (si un evento siempre siempre llama a otroy no existe posibilidad de escape es factible de ser reducido a un mismo (unido) evento), que no consumas el espacio de pila con una cascada de llamadas excesivamente larga....

677
VB .NET / Re: Msgbox Y Iis
« en: Miércoles 11 de Julio de 2007, 13:18 »
Se puede manejar perfectamente el msgbox, sin más historias.

En cualquier caso si se quiere usar algunas cosas específicas de visual basic 6 es tan sencillo y rápido como usar la clase  que le corresponde así:

imports Microsoft.VisualBasic '.lo que sea si se precisa

ó bien para usar específico:
Imports vb=Microsoft.VisualBasic

Por ejemplo yo aún sigo usando el timer de visualbasic 6, aquel da los segundos transcurridos desde las 00:00:00 horas... lo cual siempre lo he usado para comprobar la velocidad de ejecución de una rutina frente a otra equivalente...

Código: Text
  1. private sub pruebaVelocidad()
  2.     dim t1, t2 as integer  'inicia y paran el crono
  3.     dim tiempo1,tiempo2 as integer   'obtienen el crono que tarda una función en ejecutarse (se supone que relaizan la misma operación de distinta manera)
  4.     dim resp,resp1,resp2 as string   'devuelve el nombre de la función
  5.  
  6.     ti=vb.timer
  7.     'resp1= funcionaprobar1()
  8.     t2=vb.timer
  9.     tiempo1=t2-t1
  10.  
  11.     ti=vb.timer
  12.     'resp2= funcionaprobar2()
  13.     t2=vb.timer
  14.     tiempo2=t2-t1
  15.  
  16.     resp=IIF(tiempo1 > tiempo2,resp2,resp1)
  17.  
  18.    msgbox("La función más rápida fue: " & resp & " y los cronos fueron: " & tiempo1 & " " & tiempo2 )
  19.  
  20. end sub
  21.  

678
VB .NET / Re: Listview, Como Dejar El Checkbox En La Segunda Col
« en: Sábado 7 de Julio de 2007, 06:58 »
Es muy fácil... de entrada se supone que tienes activada el valor 'details' en la propiedad view, yo suelo usar conjunto con esta propiedad la de 'gridlines=true' claro que depende de lo que vayas a mostrar....

El orden específico las columnas hay que hacerlo desde el diseño como te indico a continuación:
Vas al diseño en las propiedades del listview vas a COLUMNS allí pulsas en collection se te abre las propiedades avanzadas de collection, a la izquierda verás las columnas enumeradas ( a la derecha las propiedades de la columna actual), bién pués justo a la derecha de las columnas y pegado a ellas hay dos botones para cambiar el orden de las columnas. entonces seleccionas la columna 1 y le das click abajo , ahora ya está en la posición 2, los checkbox aparecen en la columna 2.

Recuerda que con la propiedad:
allowcolumnreorder=true  le das la posibilidad al usuario de ordenarlas a su gusto. Esto lo puedes controlar con el evento 'ColumnReordered(sender,e)' para investigar cualquier situaciónque precisaras, como denegar un orden en concreto y regresarlo a su posición... con algo como:
Código: Text
  1. Dim Vpos, Npos As Integer
  2.         Vpos = e.OldDisplayIndex
  3.         Npos = e.NewDisplayIndex
  4.  
obtienes la POSición que ocupaba una columna (la Vieja) y la Nueva
 y con
Código: Text
  1. dim col as System.Windows.Forms.ColumnHeader=e.header
  2.  

obtienes la COLumna que está seindo cambiada de sitio.

Saludos.

679
SQL Server / Re: Ayuda Gestion De Usuarios.
« en: Jueves 5 de Julio de 2007, 06:25 »
es posible que tengas mal configurado la red, es posible que que los privilegios otorgados sean insuficientes, es posible que el modo de autenticación impida las conexiones... Es un mundo muy intrincado para resolver con preguntas a través de un foro hay demasiados programas en juego cuando hablamos de un cliente y un servidor sobre una red.

Las posibilidades son tan variadas que no se puede decir toca aquí o toca allí porque sería entretenerte...

Posiblemente no tengas los conocimientos necesarios para montar el servidor en condiciones, si es tu negocio contrata a alguien que reúna los conocimientos necesarios al menos durante un tiempo y aprovecha para aprender de él. Si es un 'trabajillo' que te has cogido para ganarte unas monedas, posiblemente te hallas pillado los dedos.

No es lo mismo programar una base de datos, que instalar un servidor sobre una red, puede haber problemas desde el hardware  hasta el software necesitas tener conocimientos sólidos de red para empezar, conocer ISA server, el sqlAgent, la versión del net, la versión del framework, etc, etc, etc...

..y lo peor de todo es que incluso puede ser una tontería y aún así no dar con ello

680
SQL Server / Re: Es Verdad O Falso
« en: Jueves 5 de Julio de 2007, 06:06 »
Yo no he notado diferencia e velocidad, pero claro la cuestión es que normalmente el programador no conoce a fondo el manejo de una base de datos como un administrador de bases de datos, entonces lo que sucede es que las queryes y los controles con los que lo realiza no son todo lo óptimo que puede ser.

crear procedimientos almacenados es muy limpio y si se puede decir que es más rápido será por la ineficacia del programador a la hora de manejar la base de datos. Vamos que si tus querys programando son un churro programando los procedimientos sobre la base de datos van a ser un churro.

La verdadera ventaja está en que si no eres bueno haciendo las querys pero tienes un administrador de bases de datos que te un listado o al acceso a una tabla donde se halla explicados los procedimientos, emplearlos luego desde un datagridview te va a resultar mucho más cómodo y rápido de programar... la velocidad de la base de datos depende de muchos factores, la concurrencia y una base de datos mal planificada o llena de triggers pueden ralentizar ostensiblemente el trabajo sobre la bd.  

Por otro lado hay que tener en cuenta a qué tienes dedicada la base de datos... si es para tu empresa, tener procedimientos almacenados te libera de trabajo (se los pasas al administrador de la base de datos y según te entiendas con él te dirá que te busques la vida que él ya puso los que necesitas o te echará un cable en base a cargarse él con más trabajo) y si es para un pequeño programa o una pequeña empresa mi consejo es que lo sigas haciendo como mejor te defiendas.

Así que en respuesta a tu pregunta, ni verdad ni falso, o dicho de otro modo depende de los conocimientos de quien programe...

681
ASM (Ensamblador) / Re: Urgente(sobre Teclado)
« en: Martes 3 de Julio de 2007, 08:02 »
10 mensajes más abajao tienes la misma petición.
Una sola vez que se pregunte es suficiente. Si nadie contesta, será por algo. Por ejmplo nunca contesto mensajes cuyo título sea 'necesito ayuda' o similar, porque si lo miras bien todo el mundo necesita ayuda, y salvo que se sea tonto, uno tiene la suficiente inteligencia para especificar en el título el asunto sobre lo que necesita ayuda.

Tu crees que es algo interesante que alguien abra 200 mensajes con el título 'ayuda' para luego ver que no puede ayudarle ?, el título le indica a cualquiera si nonoce sobre el tema es posible que se anime a contestar, pero con un título de ayuda, ni siquiera la gente se molesta en leerlo.

es más si yo fuera el administrador automáticamente borraba todos los temas en cuyo título figure alguna de las palabras 'necesito' 'ayuda' 'urgente'.

Porque por mucha urgencia que alguien pueda tener, los demás no estamos abligados. Si alguien pierde su tiempo en ayudar a los demás, lo menos que se puede hacer es no exigirle prisas...

Espero que te apliques la lección que vale para todos los foros que hayas visto y por ver, por otro lado a veces google es más efectivo cuando uno tiene excesiva prisa o bien wikipedia...

...y no repitas mensajes con lo mismo que te acabarán echando fuera...

682
Visual Basic 6.0 e inferiores / Re: Contraseña En La Base De Datos
« en: Martes 3 de Julio de 2007, 07:45 »
Los manuales y la ayuda están para algo, no ???

Sintaxis

Set basededatos = espaciodetrabajo.OpenDatabase (nombrebasededatos, opciones, sólolectura, conexión)
La sintaxis del método OpenDatabase consta de las siguientes partes.

Argumento Descripción

basededatos Una variable de objeto que representa el objeto Database que va a abrir.

espaciodetrabajo Opcional. Una variable de objeto que representa el objeto Workspace existente que contendrá la base de datos. Si no incluye un valor para espaciodetrabajo, OpenDatabase utiliza el espacio de trabajo predeterminado.

nombrebasededatos Un tipo de datos String que es el nombre de un archivo de base de datos Microsoft Jet existente o el nombre del origen de datos (DSN) de un origen de datos ODBC existente. Consulte la propiedad Name para obtener más información acerca de este valor.

opciones Opcional. Un tipo de datos Variant que establece varias opciones para la base de datos, como se especifica en Valores.  

sólolectura Opcional. Un valor de tipo de datos Variant (subtipo Boolean) que es True si desea abrir la base de datos con acceso de sólo lectura o False (predeterminado) si desea abrir la base de datos con acceso de lectura/escritura.  

conexión Opcional. Un tipo de datos Variant (subtipo String) que especifica información variada sobre la conexión, incluyendo las contraseñas.  

683
Visual Basic 6.0 e inferiores / Re: Ayuda Con Archivos Temporales
« en: Martes 3 de Julio de 2007, 07:28 »
Es normal que cree archivos temporales, pero lo lógico es que desaparezcan tras finalizar la aplicación. al trabajar con bases de datos, es posible que necesite guardar tablas o registros temporalmente antes de que reciba la petición de guardar en la base de datos, si los datos adquieren cierto tamaño, es normal que el programa estime que es más oportuno pasarlos a un fichero que dejarlos en memoria reduciendo el espacio de esta.

Sólo te ha de preocupar en el supuesto de que tras terminar la aplicación completamente (y no de forma abrupta) aún quedaran residentes esos ficheros.

684
Inteligencia Artificial / Re: Conversacion En Prolog
« en: Lunes 2 de Julio de 2007, 15:54 »
si no te piden más especificaciones que esa, hacer una conversación, yo crearía un diccionario de palabras sobre un tema y formaría un algoritmo para construir frases lógicas , luego la interacción sería en base a si le entras una frase buscar en el diccionario al menos 1 o más palabras y elaborar una frase de diálogo usando esa misma palabra, si ninguna palabra sobre el tema no aparece en el diccionario, elbaorar una frase del tipo: estás seguro que eso es lo que quieres, es decir una frase ambigua que camufle la imprecisión de una respuesta por falta de acoger términos en el diccionario...

Saludos...

685
VB .NET / Re: Imagen En Tooltip
« en: Lunes 2 de Julio de 2007, 14:51 »
Lencho, mucho código para una cosa tan sencilla, el programa de ejemplo que he subido a la red emplea muy pocas líneas y es muy fácil de entender, admás como ejemplo de empleo lo uso en un datagridview, lo que implica que en otros controles sea aún más sencillo de aplicar y de entender.

El ejemplo que pongo tiene exactamente 38 líneas y sobran varias....la mitad...

Saludos...

686
VB .NET / Re: Pasar Parametro A Un Ejecutable
« en: Lunes 2 de Julio de 2007, 14:43 »
Esto del 2003 y del 2005 sobra...

Para pasar parámetros de un ejecutable a otro, solo tienes que que tener el ejecutable que recibe con la capacidad de admitir dichos parámetros y el que lo envía de enviarlo tal como el otro espera recibirlo, es decir espera una línea de argumentos tal como a ti te de la gana diseñar. Entonces puedo envíar o recibir parámetros entre un programa hecho con quickBasic y vbnet 2005 eso no importa, la forma en que se envía y recibe parámetros es un string el que envía debe enviarlo en la forma que el que recibe debe interpretarlo.

es decir si quiero que reciba un color y diseño que el parámetro sea en la forma
-c rgb(128-45-237) el  que lo envía debe enviar un string así y el que lo recibe debe entender que -c refiere al color y que rgb(n-n-n) es el color, pero a lo mejor prefieres que sea así -color r=128 g=45 a=237, pués entonces el que recibe debe interpretar que el paránmetro -color= se refiere al color y que con r=n v=n a=n se debe componer el color que se usará....

Como hablar es fácil y hay partes más que conocer, he realizado un ejemplo en el que un programa pasa 3 parámetros a otro (que luego se desglosan en 7). Así desde un programa con unos controles tipo numericupdown se especifica las coordenadas de aparición, el tamaño y color de fondo de un textbox  Los controles de posición y tamaño los he limitado a un máximo de 1000 píxeles y los de color están desglosados en 3 controles cada uno especifica un color unitario, su valor se ha limitado desde 0 a 255 y como el parámetro lo paso en formato html (#rrvvaa) el control lo muestra en hexadecimal.

Los parámetros se pasan con la función shell(ruta ejecutable lista parámetros, opciones)... y el que recibe los parámetros debe interpretar la línea de comando mediante descomponer Command$

puedes descargar el código de ambos progrmas en un rar (para ejecutarlo debes 'build' el programa que recibe los parámetros y colocarlo en c:\ o bién modificar la ruta donde lo coloques).

Descargar el código desde este enlace

687
VB .NET / Re: Metodo De Programacion Con Clases
« en: Lunes 2 de Julio de 2007, 12:20 »
Es cansado de leer, porqué no editas el mensaje el código lo quedas dentro de los tags de 'code' del foro y los comentarios sobre lo que preguntas fuera, y por supuesto bien indentado, de otro modo es cansado de leer , no ves claramente donde acab una cosa y donde empieza otra de un simple vistazo...

Edítalo y te digo cosas..

688
VB .NET / Re: Apariencia Visual De Un Programa
« en: Lunes 2 de Julio de 2007, 12:15 »
Bueno, si eres diseñador no deberías tener problemas para tener una interfaz chula....

No hay ningún truco, simplemente es usar un poco la cabeza y contenedores donde están metidos otros controles. sin embargo esto es pesado de hacer cuando tienes varios controles.

Lo que suele hacerse es crear tus propios controles (Activex) controles de usuario . Los creas una vez y luego los usas en tus programas de la misma forma que usas el resto de controles, solo que los controles que has creado ya están concebidos para que hagan aquello que tu quieras que haga, por ejemplo si quieres que emitan un sonido al deslizar una pestaña, pues lo programas en el control. Es trabajoso, pero una vez que personalizas los controles básicos ya te servirían para todas las aplicaciones que quieras hacer, el resto es meter las imágenes que consideres oportunas...

Las transparencias ayudan a tener una forma determinada como veo que has hecho en el ejemplo que aportas.

en cuanto a los gráficos, no suelen usarse uno a uno, sino que se introducen todos en una única imagen y en la carga del formulario lo que se hace es capturar el área donde se encuentra la imagen (la tienes predeterminada de antemano) y asignarla al control , esto facilita el poder reasignar 'fácilmente' los conocidos skin
 usando la misma función inicial pero con la imagen que elija el usuario...

689
VB .NET / Re: Controlaxcalendar 11.0
« en: Lunes 2 de Julio de 2007, 11:10 »
Bueno, no estoy seguro de lo que pides, porque no indicas que esperas del usuario... tengo que suponer...

Veamos, si simplemente vas a manejar fechas, puedes pasar del 'axcalendar' ese y usar la clase gregoriancalendar ... aquí te pongo un código de ejmplo para obtener el día de la semana...

Código: Text
  1. Public Class Form1
  2.  
  3.     Friend cal As New System.Globalization.GregorianCalendar
  4.  
  5.  
  6.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  7.         TextBox1.Text = cal.GetDayOfWeek(Today).ToString
  8.      End Sub
  9. End Class
  10.  
  11.  

Tiene un pequeño inconveniente y es que te da el día en inglés, pero vamos se subsana rápido con este pequeño código:

Código: Text
  1. Module Module1
  2.     Structure calendarioEspañol
  3.         Public Enum SemanaEspañol
  4.             Lunes = 1
  5.             Martes = 2
  6.             Miércoles = 3
  7.             Jueves = 4
  8.             Viernes = 5
  9.             Sábado = 6
  10.             Domingo = 7
  11.         End Enum
  12.         Public Function convert(ByVal diaSemana As SemanaEspañol) As String
  13.              Return diaSemana.ToString
  14.         End Function
  15.         Dim comentario As String 'no hace nada, pero una estructura necesita un miembro.
  16.     End Structure
  17. End Module
  18.  
y entonces cambiamos en el form la línea que decía:
 
Código: Text
  1. TextBox1.Text = cal.GetDayOfWeek(Today).ToString
  2.  
por estas 2 líneas:
Código: Text
  1. Dim se As calendarioEspañol 'SemanaEspañol = 0
  2. TextBox1.Text = se.convert(cal.GetDayOfWeek(Today))
  3.  

Claro que si lo que necesitas es que un usuario pinche arbitrariamente en una u otra fecha entonces necesitas un objeto calendar representable en la pantalla, se podría hacer partiendo del gregoriancalendar, pero no merece la pena perder el tiempo en hacerlo salvo que quieras personalizar uno excesivamente a tu modo, en fin en este caso te recomiendo que uses el  componente: DateTimePicker es como un combobox, muestra la fecha en la forma que tú indicas (en el idioma que el usuario tenga como cultureinfo ;español, francés alemán, etc..) ,y al pulsar en la solapa, al igual que el combo se despliega y se muestra el calendario del mes, que puedes pulsar en el día que quieras, o pasar el mes adelante o atrás...  Si activas la propiedad showUpDown a true, se comporta como un listbox, no se despliega el calendario y se cambia de día en día pulsando arriba o abajo....

Tiene 2 propiedades que son las que más vas a usar text y value; text te devuelve la fecha y hora en la forma: viernes, 13 de enero de 2045 ; value te lo da en la forma: 13/01/2045 11:10:25

Además es bastante personalizable en cuanto a colores y a como quieres que se muestre. con la propiedad format le indicas el modo en que aparezca el letrero en el control long (es como el text), short (es como value pero sin hora), time solo la hora, o custom (te lo preparas tú). Además tiene para indicar un fecha mínima y una fecha máxima, así puedes acotarlo si lo precisas...

Luego hay otro control que es como el calendario pero sin la barra de letrero que se llama monthCalendar (si no te aparece en la barra de herramientas búscalo en los componentes, pinchando en la toolbox y luego en 'choose item', localizas el control),  este permite algunas cosas que el otro no deja,  mira sus propiedades por ejemplo showWeekNumbers=true permite ver el número de semana del año..

Saludos...

690
VB .NET / Re: Crear Un Arbol Con Todos Mis Controles
« en: Lunes 2 de Julio de 2007, 09:55 »
Si puedes ponerme un ejemplo en Vb, podría rastrearlo y ver donde te falla, en C me cuesta seguirlo y no acabo de ver que hace exactamente...

Saludos.

691
VB .NET / Re: Aparecer Un Panel En Determinadas Coordenadas
« en: Lunes 2 de Julio de 2007, 09:45 »
En otro mensaje donde te mandé un ejemplo ya aparece como obtener la posición del ratón... pero vamos a lo que solicitas...

Antes de mostrar el panel, debes calcular si cabe o no, es decir tomando la posición a colocar y sumando el tamaño del panel debes saber si es mayor que el tamaño del formulario, si es menor, perfecto, lo pintas, y si es mayor entonces debes restar el tamaño del panel y el tamaño de la celda.

Nota que debes hacer por separado el 'top' y el 'left'.

Saludos.

692
VB .NET / Re: Guardar Los Textbox De Un Gridview
« en: Lunes 2 de Julio de 2007, 09:37 »
si utilizas el datagridview (que es lo ideal para las BD), una vez definida la conectionString solo tienes que enganchar la propiedad dataSource del dgv con el bindingSource.

Supongamos que usas la Bd Northwind, vas al menu DATA-->add datasource-->database-->next--->new Connection--->datasource=Microsoft SQL Server--->Continue--->server name= la instancia de SQL que usas (si no la modificastes al instalar sql será 'SQLSERVER' )--->use windows authentication (recomendado)--->conectar a database=select o enter database name=localiza la BD que quieres usar-->(haces un test connection paras verificar que fue bien hasta aqui-->ok-->selecciona la tabla-->seleccionas los campos-->aceptas. Se acaba de crear un dataset, si no cambiaste el nombre será algo como: DSNorthwind y se refleja en un fichero llamado DSNorthwind.XSD , también se ha creado un bindingsource llamado DSNorthwindBindingsource y un tableadapter con el nombre de la tabla elegida (si usaste employees por ejemplo se llamará employeestableadapter).

Ahora añades el control DATAGridView (no el datagrid sino el datagridview, mira en toda la caja de herramientas). y luego en su propiedad datasource seleccionas el DSNorthwindBindingsource, ya está enganchado, si ejecutas la aplicación podrás navegas por todos los registros de la tabla....

Los métodos a ejecutar son los que seleccionastes al elegir la tabla, pero puedes modificarlo...

En cualquier caso el datagridview es más potente y rápido que el datagrid aunque cuesta entender como funciona...

693
VB .NET / Re: Ayuda Con Winsock
« en: Lunes 2 de Julio de 2007, 09:10 »
Si tienes un código en VB6 y quieres pasarlo al VB.net haz lo siguiente:

abre VB.net fichero--> abrir proyecto---> localiza el proyecto de vb6--> dale clic al *.vbp---> y sigue las instrucciones...

automáticamente lo convertirá en un proyecto de VB.net Al término hay que repasar el código ya que no realiza la conversión al 100%, pero en casi todo deja una línea que indica porqué no se hizo la conversión dándote un enlace para que veas que debes hacer en esa situación.

Vamos que el 95% te lo resuelve el 4% te indica que debes hacer y sólo el 1% tendrás que sustituirlo por algo equivalente... Naturalmente estas cifras dependerán de cada proyecto y de cómo haya sido programado... pero es bastante efectivo..

Saludos...

694
VB .NET / Re: Imagen En Tooltip
« en: Lunes 2 de Julio de 2007, 09:00 »
No tienes que comprar nada. El tooltip no permite colocar fotos sin embargo piensa un poco... qué rayos es un tooltip ???... pués un control textbox con un fondo amarillo que que emerge tras un evento gotfocus y controlado por un timer pasra desaparecer tras un lapso de tiempo.

Bien pués entonces usa un pequeño picturebox, coloca un pequeño control de imagen en la sitaución que desea y del tamaño que deseas, luego un label o un textbox, para meter los datos . Este picture puede tener la apariencia que tú le quieras dar, puede parecerse al tooltip típico o no, a tu gusto, si quieres que se parezca, deberás quitar el aspecto 3d a los controles y su backcolor en amarillo.

Para usarlo utiliza el evento gotfocus de la celda (o quizás el mouseDown), como prefieras, pero tomando la posición del mouse haces aparecer tu 'tooltipconFoto' en dicha posición...

He creado un pequeño ejemplo que puedes descargar desde
descargar código donde se muestra desde este enlace


En este ejemplo lo único que no hago es actualizar la imagen...pero hay una

695
VB .NET / Re: Generar Codigo En Tiempo De Ejecucion
« en: Lunes 2 de Julio de 2007, 07:54 »
Te genera una consola porque eso es lo que le indicas...en  
Citar
Module Module1

Sub Main()
Console.WriteLine("Hello World!")
Console.WriteLine("Press ENTER")
Console.ReadLine()
End Sub

End Module

toda consola debe contener un método main. Si quieres ventanas debes tener 'formularios'...
Yo no se usar el codeDom, ni sé por qué lo usas en vez del IDE de VB, pero siguiendo lo que aparece en tu código debería ser algo similar a esto:
Aunque pienso que faltaría la rutina del initialize donde queda definido el formulario...(y todos los controles previos que tengas en el diseño del formulario.)

 
Código: Text
  1.  
  2. Public Class miFormulario  
  3.     Friend WithEvents Button1 As System.Windows.Forms.Button
  4.  
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.       'aquí va el código a ejecutar tras arrancar la aplicación
  7.      'aquí puedes colocar el código para generar tu botón o puedes ya tenerlo creado como en el siguiente apartado.
  8.         Me.Button1 = New System.Windows.Forms.Button
  9.         Me.SuspendLayout()
  10.         Me.Button1.Location = New System.Drawing.Point(66, 127)
  11.         Me.Button1.Name = "Button1"
  12.         Me.Button1.Size = New System.Drawing.Size(101, 31)
  13.         Me.Button1.TabIndex = 0
  14.         Me.Button1.Text = "Button1"
  15.         Me.Button1.UseVisualStyleBackColor = True
  16.     End Sub
  17.  
  18.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  19.         MsgBox("hola mundo, estoy en modo ventanas no en consola", MsgBoxStyle.Exclamation, "al fin una ventana:...")
  20.     End Sub
  21. end class
  22.  

696
VB .NET / Re: Guardar El Directorio En Un .ini Para Base De Dato
« en: Lunes 2 de Julio de 2007, 07:28 »
Mira, si la aplicación necesita crear una base de datos y trabajar con ella lo ideal es que se quede en la ruta de la aplicación...

Luego al intentar abrirla, la localizas donde se supone que debe estar, si no la haya entonces le sacas un mensaje y le dices no se ha encontrado la base de datos en la ruta '.....' desea localizarla manualmente? si indica que si, le abres una ventana de exploración para que la localice, después le dices que para que no tebnga que localizarla cada vez que se inicia la aplicación la deje donde debe estar, esto es donde tu la tenías en tu aplicación.

Si dentro de la ruta de tu aplicación creas una carpeta 'BD' y dejas allí la BD, entonces luego con

Código: Text
  1. dim ruta as string=My.Application.Info.DirectoryPath
  2.  
tienes la ruta de la aplicación y con:
Código: Text
  1. dim rutaBd as string=ruta & "\BD\mibasededatos.mdb"
  2.  
tienes la ruta esperada de la base de datos.

Saludos...

697
VB .NET / Re: Como Hacer Para La Linea De Quede Media Ovalada
« en: Lunes 2 de Julio de 2007, 07:14 »
Esto se hacía fácilmente desde VB6 con un control shape manejando su propiedad shape  al valor 4 'rounded rectangle'.

En vb.net no ha permanecido el control, por tanto hay que  hacerlo manualmente con line y circle o arc después de todo son 4 líneas y 4 arcos de 90º con un radio que puedes variar a voluntad.

Te pego un ejemplo que variandolo te da lo que necesitas. Fíjate que:
1) el grueso de línea lo he puesto en 4
2) he usado un color azul.
3) se importa desde system.graphics y hay muchas opciones en system.graphics,graphics2D (pulsa 'f2' y localiza la clase graphics2D).
4) He hecho un garabato irregular de ejemplo.
5) puedes digujarlo paso a paso (f11 en debug) o comentado las líneas...



   
Código: Text
  1.    Imports a = System.Drawing
  2. Public Class Form1 
  3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.         Dim ruta As New a.Drawing2D.GraphicsPath()
  5.         Dim g As Graphics
  6.         g = Me.CreateGraphics
  7.  
  8.         'añade arco(coorX,coorY,ancho,alto,anguloIni,angulofinal)
  9.         'ruta.AddArc(10, 10, 150, 150, -33, 150)
  10.  
  11.         'dibuja con la pluma(color azul,ancho 4,según la ruta definida anteriormente.
  12.         'g.DrawPath(New Pen(Color.Blue, 4), ruta)
  13.  
  14.         ruta.AddLine(20, 20, 100, 20)            'recta de arriba
  15.         g.DrawPath(New Pen(Color.Blue, 4), ruta) 'la dibuja
  16.         ruta.AddArc(100, 20, 30, 30, -90, 90)    'curva superior derecha
  17.         g.DrawPath(New Pen(Color.Blue, 4), ruta) 'la dibuja
  18.  
  19.         ruta.AddLine(130, 50, 130, 80)         'linea derecha (de arriba a abajo)
  20.         g.DrawPath(New Pen(Color.Blue, 4), ruta) 'la dibuja
  21.         ruta.AddArc(130, 80, 30, 30, -90, 180)    'curva inferior derecha (un bulto)
  22.         g.DrawPath(New Pen(Color.Blue, 4), ruta) 'la dibuja
  23.  
  24.         ruta.AddLine(160, 110, 20, 20)          'uno todo para terminar
  25.         g.DrawPath(New Pen(Color.Blue, 4), ruta) 'la dibuja
  26.  
  27.     End Sub
  28. End Class
  29.  

Saludos.

698
Redes y Comunicaciones / Re: Manejo De Camara Web
« en: Lunes 2 de Julio de 2007, 01:58 »
Ignoro si el mensaje fue movido donde correponde y se dejó copia aquí o no, por que no se indica...

Repondiendo a nuestro amigo:

Debes manejar y tener acceso a 'diapositivas' de la cámara debes utilizar un módulo WIA, posiblemente ya lo tengas en tu sistema, solo debes buscarlo en las bibliotecas de objetos...(componentes-->objetos insertables--> Wia) creo que el archivo se llama camocx.dll y permite manejar el control videoPreview...

Saludos.

699
VBA / Re: Iconos (smilies) Y Texto Junto En Algun Tipo D Box
« en: Lunes 2 de Julio de 2007, 01:45 »
Tienes cierto cacao mental, que te impide pensar con claridad.

Un icono,emoticon etc... es antes que nada una imagen... es pués sencillo, basta cponer un control image y luego crear más controles image (usando new).. Y simplemente debes colocarlos todos en un mismo contenedor. Debes tener una variable que mantenga el número de elementos (si usas imgIcono(0) ... imgIcono(x), es decir índices es fácil saber cuantos hay a cada momento) cuantos vas a colocarlos en el control simplemente debes repartir el espacio para saber donde se ubicará cada uno.
Supongamos que quieres 32 píxel para el icono y 8 de separación, entonces:

1) calculas el el número de columnas que caben:
Código: Text
  1. col=int((anchoRecipiente - (EspacioEntreIconos) )/ (anchoIcono + EspacioEntreIconos))
  2.  
queremos valores enteros de ahí col=int(resultado).

2) Si sobra espacio es mejor ajustar el contenedor al número de columnas YA conocido (suponiendo un espacio dinámisoc, esto es que tiene en cuenta la resolución de pantalla del usuario:
Código: Text
  1.  contenedor.width=(col*(anchoIcono + espacioEntreIconos)) + EspacioEntreeIconos    
  2.  
'el espacio inicial'... Ten en cuenta que conviene que tengas un picture dentro de otro, el picture contenedor de todo es 'inamovible', el que yace dentro de este es el que contendrá los iconos, aquel picturebox se desplazará vetrticalmente con un scroll

3 ) de modo similar calculas el números de filas, aunque en este caso solo sirve para ajustar el contendor de los iconos y poder usar el scroll para mover dicho contendor dentro del picturebox si no son visibles todos los iconos.

3) empezar a situar los controles:
 
Código: Text
  1. e=espacioEntreIconos
  2.   i=anchoicono +e
  3.   for n=0 to imgIcono.count-1
  4.     imgIcono(n).left=e +( (n mod col)* i)
  5.     o=int(n/col)
  6.     imgIcono(n).top=e + ((n mod o) * i)
  7.   next
  8.  

700
VBA / Re: Error 28 "out Of Stack Space"
« en: Lunes 2 de Julio de 2007, 01:11 »
Hola.

El problema del espacio de pila, no son las variables, sino la forma en que las utilizas.

Veamos, la pila es un espacio de memoria de tamaño limitado cuyo cometido es acceder muy rápidamente a su contenido o bien contener los punhtos de ruptura de la secuencia de los programas, para retornar al punto siguiente una vez terminado el ciclo de una estructura (función, sub,evento...). Esto pués supone una ventaja y un inconveniente. La ventaja es que usando la pila el acceso alos datos es más rápido, el inconveniente es que como el espacio es limitado hay que asegurarse que no ocupamos todo el espacio de pila.

Tienes que examinar tu código y buscar donde haces operaciones de recursividad (que es cuando más facilmente puedes desbordar la pila sin darte cuenta).

Por ejemplo, el sigueinte código me produce el desbordamiento de la pila (se pone un botón que llama a una rutina:

cuando aparece el problema de la pila d vale 5568 (en mi sistema).
Código: Text
  1.  
  2. Private Function sumar() As Double 'esta función producirá desbordamiento
  3.     Static d As Double
  4.     d = d + 1
  5.     If d = 6000 Then Exit Function
  6.     Call sumar
  7.     sumar = d
  8. End Function
  9.  
  10. Private Sub Command1_Click()
  11.     msgbox(sumar)
  12. End Sub
  13.  
  14.  
  15.  

Lo que sucede es que tras cada llamada a la rutnina contar, el sistema debe almacenar en la pila el punto del SALTO a la rutina contar, para que al término de la misma pueda retornar, pero sucede que tras un salto, sucede otro y orro y otro ... por tanto el espacio de pila se queda agotado o al menos el sistema detecta que se puede quedar agotado, porque ha entrado en un bucle que parece sin fin (en este caso concreto). ya que el desboramiento se produce cuando d vale 5568 no llega a alcanzar el valor 6000, que es cuando la pila se empezaría a vacíar tras empezar a devolver los puntos de retorno, de hecho si pusiéramos el valor 5567 en la comprobación de d, habríamos llegado al límite sin superarlo...

La solución consiste en resolver el problema con otro enfoque , en el ejemplo sería cuestión de usar una estructura for...next para evitar esto... (sin eliminar aquella función creamos otra similar para ver las diferencias)
Código: Text
  1. Private function contar() as double 'esta función NO producirá desbordamiento
  2.     Dim d As Double
  3.     For d = 0 To 6000
  4.         d = d + 1
  5.     Next
  6. End Sub
  7.  
  8. Private Sub Command1_Click()
  9.     msgbox(contar) 'no da error
  10.     msgbox(sumar) 'dará error de desbordameinto de pila
  11. End Sub
  12.  
  13. Private Function sumar() As Double  'esta función producirá desbordamiento
  14.     Static d As Double
  15.     d = d + 1
  16.     If d = 6000 Then Exit Function
  17.     Call sumar
  18.     sumar = d
  19. End Function
  20.  
  21.  
  22.  

Es decir el bucle for next almacena en la pila (suponiendo que se almacene) sólo 1 variable (el valor del límite)...que se consulta con cada next y se elimina de la pila al salir del bucle.

Así tu problema posiblemente esté en que abres archivos  y abres y abres y abres, cuando lo ideal es abrir y cerrar ; si es necesario abrir y abrir sin cerrar, debes asegurarte que esto no se aplique a un número muy grande ... La forma rápida y segura de desbordamiento es anidar a un nivel profundo...

Aunque el problema no lo tuevieres en los archivos es similar.... un problema de anidación o de múltiples llamadas a funciones, eventos, subrutinas, doevents,etc.. sin generarse el retorno para ir vaciando la pila.

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