PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  55 - GUARDAR UNA IMAGEN EN VISUAL BASIC
Autor:  Rafael
Hola, me llamo Rafael, y estoy haciendo un programa en Visual Basic. Tengo un problema y no sé como resolverlo.
Yo capturo imágenes a través de una digitalizadora (video HighWay), y captura una fotografía en formato PAL, ahora yo necesito convertir esa imagen a 200x280 pixel. para ello posiciono la foto pal en un frame y oculto la parte sobrante. Hasta aquí consigo visualizar la foto en mi formato, pero no soy capaz de grabar la parte de la foto visualizada en un fichero BMP.
Gracias, estaría muy agradecido si me pudieran resolver este problema.
  Respuesta:  hormiga
podes hacerlo a traves de la API BitBlt que te copia la imagen con las coordenadas que vos les des (p. ej. tenes un picture con una foto de 64x64 y vos queres los primeros 50, entonces les pasas los parametros y listo)
Si tenes alguna duda escribime al correo.
Saludos
  Respuesta:  Yavir Robles
Hola, lo que haces al guardar la imagen de un objeto es tomar y salvar todo su contenido, es decir si tu tienes una imágen que no cabe en un Picture Box por sus dimensiónes, cuando la salves no se guardará lo que ves de ella sino toda porque es el contenido del control.

Lo que puedes hacer es usar la función BitBlt que te guarda àreas de la pantalla, viene documentada en el MSDN, de cualquier forma si tienes alguna duda me escribres.
  Respuesta:  Roberto Morales
Puedes guardar una imagen BMP de la siguiente manera:
creas dos ciclos for anidados y utilizas la función Point(x,y) de visual basic para obtener
el color de cada pixel, Este tipo de solución puede sonar un poco rústica, pero tal vez te pueda servir, por medio de visual basic abres un archivo bmp que hayas creado previamente con el paint, y colocas los primeros 1047 bytes de este archivo en el archivo destino, el formato de los archivos bmp si es en blanco y negro:
Cuando el archivo bmp es en blanco y negro el Paint guarda el archivo leyendo pixel por pixel desde arriba hasta abajo, cada que lee 8 pixeles
crea un byte, este byte es negado por ejemplo, suponiendo que la siguiente es una imagen bmp en blanco y negro y que cada asterizco representa un pixel


*
***
*****
*******

la forma de guardar esto en un archivo bmp es copiar la parte de configuración del archivo que generalmente se encuentra entre los 1000 y 1047 primeros bytes del archivo bmp esta parte contiene información escencial que el paint utiliza para saber el tipo de imagen que se abre o se guarda, todos los bytes restantes del archivo son los colores de los pixeles del dibujo(como ya sabras un dibujo esta hecho solo por colores de pixeles)

para la imagen anterior quedaria asi
11110111 =247d representado en ASCII ´¸´
11100011 =227d representado en ASCCI ´Ò´
11000001 =193d representado en ASCCI ´-´
10000000 =128d representado en ASCCI ´Ç´
de esta manera y como puedes ver el archivo es
muy compacto, ya que para 32 pixeles el archivo solamente ocupó 4 bytes esto es por ser un archvo en blanco y negro, y como lo puedes tu mismo comprobar un archivo B&W es siempre mas compacto que uno a color.

En el caso de un archivo a color
  Respuesta:  Jorge Serrano
Si deseas guardar una imagen Bmp, suponiendo que la imagen capturada la ves en un control Picture, el código para salvar la imagen en formato Bmp es muy simple:
Save Picture Picture1.Picture, "C:\Imagen.Bmp"
Espero que te funcione correctamente, sino, mira la ayuda de SavePicture.
  Respuesta:  Miguel Angel
Bueno no se si te sirva, pero el comando BitBlt del GDI32 puede desplegar y capturar imagenes en la pantalla, desafortunadamente es una funcion externa de Vb y como tal esta poca documentada, la declaracion de la funcion es:
Declare Function BitBlt Lib "GDI32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
Puedes ver el ejemplo "calldlls" que viene con el Vb, para mas detalles.
Espero que te sirva y suerte.
Mi pagina web: http://mike79.home.ml.org

    Pregunta:  65 - COMO IMPEDIR PEGAR TEXTO EN UN CUADRO DE TEXTO
Autor:  Hernando
Quizás no he leído bien los manuales pero aquí va.
¿Como puedo hacer en Visual Basic para que un cuadro para ingresar texto no acepte alguna palabra guardada en el portapapeles? Es decir, impedir que yo "corte" desde algún documento una palabra y luego la "pege" en un cuadro de texto.
  Respuesta:  rafael sanchez
hola, creo que con las anteriores respuestas podrian pegarlas con el raton y punto, sin contar que use control+v para pegar, o algun boton especial de los teclados multimedia.
si quieres evitar q peguen algo que no sea tecleando, prueba lo siguiente:

Private Sub Text1_Change()
If Len(Text1.Text) > Len(Text1.Tag) + 1 Then Text1.Text = Text1.Tag
Text1.Tag = Text1.Text
End Sub

de esta forma solo podran pegar una unica letra o teclear una a una.
ten en cuenta que no puedes filtrar solo las letras, ya que impedirias usar el retroceso, el suprimir, inicio, tabulador, etc.
de esta forma, las demas teclas siguen funcionales, y puedes modificar el texto agregando o barrando letras (o palabras seleccionadas, puesto que solo anula si se introducen mas de una sola letra por vez, pero no las supresiones)
  Respuesta:  CHRISTIAN GONZALEZ
el cuadro de texto -TEXTBOX- posee una propiedad que se llama
LOCKED, figura tanto en tiempo de diseño como de ejecución
eso impide que se modifique el contenido del TEXT, ponela a True
cuando quieras evitar pegar algo y en False cuando si lo quieras. PUNTO.-
  Respuesta:  manuel Romero
para bloquear un cuadro de texto coloca la propiedad Locked igual a True
  Respuesta:  Manuel Camúñez Guijarro
Y digo yo... Porqué no usas una Etiqueta en lugar de Un Cuadro de Texto y PUNTO.
  Respuesta:  Roberto Morales
¡¡¡¡¡Tengo la solución!!!!!!:
coloca en el evento del texto el siguiente código
Text1_Click()

Clipboard.Clear

end sub
-Esto es para que al momento que den click en el cuado y deseen insertar el protapapeles no lo puedan hacer puesto que no existe, ahora que si no quieres que el portapapeles sea perdido, declara una variable de texto como publica, inserta esto:

x=Clipboard.GetText() ´ esto es para guardar el
´portapapeles en la variable y que no se pierda y luego
clipboard.clear´ esto es para borrar el portapapeles
  Respuesta:  LuisR
Se me ocurre una solucion muy sencilla para tu problema:
Private Sub TuCuadroDeTexto_GotFocus()
Clipboard.Clear
End Sub
Como antes de pegar hay que cortar en algún sitio, cunado se vuelva a TuCuadroDeTexto este recibe el Focus, se genera el evento GotFocus y ejecutará el código. Lo que no impedirás así es que se corte y pegue dentro de TuCuadroDeTexto, pero este no parece ser tu problema...
  Respuesta:  Ramón
He supuesto que si no quieres pegar texto procedente del portapapeles, no tienes ningún menú de ´pegar´ en tu aplicación, y por tanto la única manera de pegar texto es con las teclas SHIFT+INSERT. Para evitarlo puedes incluir el siguiente código en el evento ´KeyDown´ de tu cuadro de texto:
Sub CuadroDeTexto_KeyDown (KeyCode As Integer, Shift As Integer)
If Shift = 1 And KeyCode = 45 Then KeyCode = 0
End Sub
El evento ´KeyDown´ tiene dos par metros:
´KeyCode´, que es el código de la tecla pulsada (45 para ´INSERT´)
´Shift´, indica el estado de las teclas ´Shift´, ´Alt´, etc. (1 cuando ´Shift´ está pulsada´)
Si cuando se pulsa una tecla, igualas ´KeyCode´ a 0 (dentro del código del evento), tu programa ignora la pulsación de esa tecla. Por eso con el programa anterior puedes evitar que tu programa detecte la pulsación de SHIFT+INSERT.
Esto lo he hecho en VB3.0 y windows 3.11, y funciona correctamente. Espero que te sirva.
  Respuesta:  Juan De La Cruz
Dudo mucho que logres impedirlo, a menos que te metas con la cola de mensajes del Windows, pero si deseas evitarlo solo por el hecho de validar la entrada de datos, pues simple cuando suceda el evento change checas la información contenida y eliminas la basura!!!!

    Pregunta:  66 - PROBLEMAS CON EL BLOQUEO DE REGISTROS EN VISUAL BASIC
Autor:  Marceliano
Es sobre el bloqueo de registros de una base de datos Access bajo Visual Basic 5.0: Consigo abrir una tabla en modo no exclusivo de modo que un usuario sólo bloquea un grupo de registros mientras se realiza un UPDATE (Utilizo el bloqueo "Optimista"). El problema viene cuando utilizo índices p.e. Tabla.index="Apellido"
Entonces bloquea el grupo de registros incluso sin haber hecho un EDIT o un ADDNEW, estando la propiedad EditMode a DbEditNone. No entiendo por qué y quisiera que me ayudases a resolverlo.
  Respuesta:  Juan Honorio Palavicini
Mira, el hecho de que uses índices no afecta para nada el bloqueo en los registros. Creo que tienes por ahí alguna instrucción o propiedad que te está impidiendo editar los registros.

Si estás usando controles Data y alguno de ellos tiene la propiedad ReadOnly establecida a True, entonces puedo asegurar que es este control el que te ocasiona los problemas (esto fue un error en VB4, no sé si en la versión 5 y 6 ya lo corriegieron), si es así cambia esta propiedad a False.

Para mayor información para desarrollar aplicaciones para red checa:

http://orbita.starmedia.com/~el_zorro_willis
(debes de usar MS IE para visualizarla)

posteriormente entra a la página de Lenguages de Programación, después a VB, después a Soluciones, por ahí hay un tema que detalla los bloqueos de registros.
  Respuesta:  Marceliano
La función Command() devuelve una cadena conteniendo toda la línea de argumentos. el nº de argumentos y la distribución de éstos tendrás que averiguarlo manejando la cadena devuelta investigando los espacios...
  Respuesta:  Fredy JM
El uso del Command() es la forma adecuada y para el manejo de la cadena de entrada encontrarás un ejemplo completo en el help del Visual

    Pregunta:  68 - RECIBIR PARAMETROS EN VISUAL BASIC 4
Autor:  Diego
¿Hay alguna manera de que un programa implementado con Visual Basic 4 reciba parámetros de línea de comandos tal como lo haría uno de C con ARGC Y ARGV[]?
  Respuesta:  Marceliano
La función Command() devuelve una cadena conteniendo toda la línea de argumentos. el nº de argumentos y la distribución de éstos tendrás que averiguarlo manejando la cadena devuelta investigando los espacios...
  Respuesta:  Fredy JM
El uso del Command() es la forma adecuada y para el manejo de la cadena de entrada encontrarás un ejemplo completo en el help del Visual

    Pregunta:  70 - LEER DATOS DEL PUERTO PARALELO CON VISUAL BASIC 4
Autor:  Pachi
Estoy tratando de hacer una tarjeta de adquisición de datos a través del puerto paralelo, en realidad, haría una doble función ya que necesitaría leer y escribir datos en el puerto paralelo bajo Windows 95, programando en Visual Basic 4. El caso es que no se como leer ni escribir los datos ni si se puede o no insertar código en ensamblador.
  Respuesta:  CX-Rom CX-Team
Primero que nada VB no nos deja accesar a los puertos con alguna funcion, se debe escribir una dll en c++ y cargarla desde VB y asi utilizar desde VB

Codigo de c++

#include <conio.h>

' Esta funcion retorna nada solo se escribe el numero del puerto
' Si se quiere escribir en el LPT1 888 o 3F8h
EXPORT lectura(int)
{
int regData;
regData = _outp(int);
}

'Esta funcion retorna el dato leido del puerto especificado en la funcion
' en este caso el puerto en la variable se puede poner en Hex o Dec
EXPORT Escritura(int Puerto)
{
int regData;
regData = _inp(int);
}

Estas dos funciones tienen que ser exportadas en el archivo de cabezare hay que ponerlas para exportar y generar la dll y insertarla de la misma manera que se usa la API de Windows solo que hay que poner la direccion completa del fichero o en dado caso colocarla en la carpeta de SYstem

Y ya tienes la funcion para poder escibir o leer desde el puerto paralelo o cuialquier puerto fisico

Dudas a mi mail
  Respuesta:  Jose Antonio Sanchez
A mi me pasa el mismo caso.
Y la unica solución que he encontrado es crear una dll en c++ y llamarla desde Visual Basic, la llamada desde Visual Basic es mas bien facil, mirando las ayudas lo encontraras, pero crear la dll en C++ es algo mas complicado.
  Respuesta:  Carlos
El año pasado me conseguí unos archivos VBX para manejar el puerto paralelo. Nunca los he usado. Quien los desee puede escribirme.
Atte. Carlos
  Respuesta:  Fabio
si necesitas leer y escribir por el puerto paralelo desde vb4 la solucion es la siguiente:
tenes que bajarte de internet dos archivos .dll segun el windows que uses. si es para win 95 o superior el archivo es inpout32.dll y para win 3.1 el archivo es inpout16.dll.
luego copias este archivo en el sistem de windows
Cuando bajes estos archivos .dll seguramente tambien encontraras un .bas con la declaracion de estas bibliotecas.este .bas tenes que cargarlo en tu programa (insertar modulo) y luego solo utilizas las sentencias out y inp como en qbasic.
una buena direccion para buscar es www.lvr.com funciona porque yo cree mi propio adquisidor de datos.
si tenes algun problema o necesitas mas informacion sobre esto escribime y te contesto.

    Pregunta:  71 - TRASPASAR UNA APLICACION DE VB5 EN WINDOWS 95 A WINDOWS NT
Autor:  José
Hola a Todos. He hecho una aplicación en VB5 y Windows 95 y la quiero traspasar a Windows NT.
Los programas se han traspasado bien, pero los Crystal REport no se ejecutan y dan un error 20534, error de DLL de la BD.
  Respuesta:  Luis Rodrigo Solorzano Solorzano Monroy
puedes probar con el set location de la db en el menu \dababase\set location..
y ready ...
saludos
  Respuesta:  Luis Rodrigo
Ese error se produce habitualmente cuando la relación entre la B.D y el Report se ha ´roto´, es decir la B.D. no es exactamente igual que cuando se hizo el Report.
Prueba lo siguiente, abre el report de nuevo selecciona la B.D. (del NT) y pide que la compruebe, ese debe solucionar tu problema.
  Respuesta:  InCaSaS
El Problema no Radica en el paso de W95 a WNT. Esto sucede cuando la Base de Datos a la cual vinculas (p. ej. Access), la cambias de directorio.
Si utilizas uno o varios ficheros de datos, deberias probar a poner lo siguiente:
Crw.DataFiles(0) = "c:\datos\clientes.mdb"Crw.DataFiles(1) = "c:\datos\proveedo.mdb"
Lo Anteriormente expuesto, es un ejemplillo. Si solo trabajas con un unico archivo, basta con poner la primera linea. Si le echas un ojo al Help de Crystal, esto esta documentado alli.
Si Puedes, echa un ojillo a mi URL: http://www.geocities.com/BourbonStreet/Delta/3637/index.html

    Pregunta:  79 - PROBLEMAS CON LAS DLL DE AIMSLABS
Autor:  Jose
Estoy intentando crear un programa con VB 4.0 para manejar a mi gusto la tarjeta RadioTrack de AimsLabs. El fabricante proporciona un paquete SDK que incluye la librería RTRACK.DLL y algún ejemplo en C.
El problema es que las funciones de la dll no me admiten los parámetros como en los ejemplos (con las correspondientes modificaciones para VB).
La pregunta es si alguien conoce esta dll ¿podría decirme cuáles son exactamente los tipos de datos que admiten sus funciones?
¿Existe algún programa con el que se puedan ver los procedimientos contenidos en una dll y los tipos de datos que admiten?
Gracias.
  Respuesta:  PPCOOL
Mira tu problema no es muy grande como parece, en Internet veta a YAHOO y busca "OCX" o "ACTIVEX" ahí te aparecerán los controles que esiten en el Web y ahí tendras muchos archivos que te servirán para solucionar tu problema, si encuentro uno te lo mando paro necesito tu mail... Adiosito...

    Pregunta:  81 - CÓMO PUEDO SOLUCIONAR LOS PROBLEMAS DE INSTALACIÓN EN VB
Autor:  Pablo
Instale en 4 equipos un sistema hecho en Visual Basic 4.0 empresarial sin ningún problema, después modifique el sistema, desinstale la versión anterior y al hacer la nueva instalación, me tira para fuera con el siguiente mensaje:
"Ocurrió un error inesperado, se cerrara el programa"
Parece que al desinstalar la primera versión se eliminaron archivos de Windows o algo por el estilo
  Respuesta:  Willson Santos Solares
La RESPUESTA ES MUCHO MAS SENCILLA YA QUE LO QUE TENES QUE HACES ES INSTALAR EL DATA ACCES COMPONETS MAS RECIENTE EN TU COMPUTADORA DE DESARROLLO Y COMPILAR FULL Y HACER NUEVAMENTE EL INSTALADOR
  Respuesta:  Miriam Sanchez Salas
Hola
Espero que te ayude esta respuesta
Utiliza el Kit de instalación Setup Wizard que viene en Visual Basic,y lo instalas en las máquinas que quieras, despues cuando te pidan una actualización generas el nuevo ejecutable y lo actualizas en las maquinas anteriores sin volver a instalar
  Respuesta:  Francisco Javier Rodrigue
Espero que te sirva de ayuda.
La contestación de Francisco Javier está en el archivo pr03.txt
  Respuesta:  Luis Perez
Ese problema me es conocido porque me tuvo mucho tiempo ocupado. Un amigo me dió la clave. Su respuesta, que te envío íntegra fue la siguiente:
El error se produce cuando se va ha instalar una aplicación realizada con Visual Basic 4.0 y que utiliza el Kit de instalación Setup Wizard que viene con esta versión de Visual Basic, y en ordenadores que tiene instalados aplicaciones como ie 3.01, Office 97,... la explicación la vas ha encontrar más abajo en un articulo que se publicó en la Knowlegde Base de Microsoft. Yo he pasado por esto también y aún sabiendo el problema y cómo dice Microsoft que hay que corregir la mejor solución que he visto y la he comprobado, es instalar Visual Basic 5.0 Profesional o Empresarial, porque el Setup Wizard de esta versión ya es algo mejor que la versión 4.0.
El articulo al que hace referencia Luis está en el archivo pr03.txt
  Respuesta:  Jose Hernandez
Un compañero y yo tuvimos el mismo problema al tratar de instalar un sistema. El problema ocurre porque las maquinas donde estas tratando de instalar tu programa tienen una version del Olepro32.dll 5.X y no tienen la version del Oleout32.dll 2.20.XXX instalado. Esto sucedo cuando instalas una aplicacion de Office 97, Internet Explorer 3.0, o VB 5.0 en esa maquina. Lo que puedes hacer es copiar el Oleout32.dll y el Olepro32.dll de una maquina donde puedas instalar tu sistema y si funcione.

Si sigues teniendo problemas, escribeme.

    Pregunta:  84 - GRÁFICA CON EL CONTROL GRAPH
Autor:  Eduardo
Me podrías explicar como hacer una gráfica con el control GRAPH, los datos los tengo en un GRID.
Gracias
  Respuesta:  Victor M. Garcia
Primero rellenas las etiquetas del graph, es decir, lo que es la "leyenda", y pones a 0 los datos del Graph (de paso)
´ Muchos cajeros, un sólo dato.
grafico_frm.grafico.ColumnCount = (Len(x2) - 1) / 3
ReDim label_y(1 To grafico_frm.grafico.ColumnCount)

´ Toma nota de las etiquetas (y)
i = 1
For i1 = 0 To lista_cajeros.ListCount - 1
If lista_cajeros.Selected(i1) Then
label_y(i) = lista_cajeros.List(i1)

´ Nombre de las leyendas
grafico_frm.grafico.Column = i
grafico_frm.grafico.ColumnLabel = label_y(i)
i = i + 1
If i = (grafico_frm.grafico.ColumnCount + 1) Then
Exit For
End If
End If
Next i1

For i1 = 0 To lista_datos.ListCount - 1
If lista_datos.Selected(i1) Then
x = "´" + lista_datos.List(i1) + "´"
Exit For
End If
Next i1

    Pregunta:  85 - VINCULOS CON CRISTAL REPORT
Autor:  Maac
Hola, tengo un problema con el Crystal Report. Quiero vincular dos tablas en un mismo informe, entonces me voy a definir vínculos y defino un vinculo.
Que se supone que se debe hacer una vez definido el vinculo. ¿Ya puedo mezclar en el informe campos de ambas tablas?
Un saludo
  Respuesta:  Juan Carlos Galvan
Que saben estos cuates que te contestaron... no.. nada.. Mira.. Tu problema no es tan dificil.. Si lo que desea es mezcar dos tablas o tres o cuatro en un reporte solo tienes que cargar las tablas de la base de datos, si, bueno despues que hayas hecho esto lo siguiente es hacer los vinculos.. pero, pero.... aqui esta el detalle. No se que tenga Crystal pero para que los datos de las tablas se vean en el informe tienes que usar una logica inversa en las relaciones que tengas en tu base de datos de tus tablas, no las tomes en cuenta, sino antes por ejemplo si tenemos una tabla alumno y otra maestro y estas estan vinculadas de uno a muchos donde alummo es el de muchos en crystal haz lo contrario haz que maestro sea muchos y alumno uno . Esto es todo.....
  Respuesta:  Segundo Fidel Puerto Garavito
Hola desde Colombia, lo que te puedo decir con respecto vinculos, lo mejor que puedes realiar es crear una consulta un el motor de base de datos y crear el reporte apartir de dicha consulta que tiene todos los campos que requieres. hasta una proximo
  Respuesta:  HORACIO ACOSTA
Si lo que deseas es que en el informe se muestren solo algunos campos de varias tablas y que cumplan o nó con una condición, solo tienes que editar una formula de selección o pasar la instrucción SQL desde VB; es sencillo, si deseas que te amplie la información, escríbeme.
  Respuesta:  miriam Sanchez Salas
Hola
Espero contestar tu pregunta.
Mira ocupo crystal report desde utilizando accees como base de datos y visual basic como aplicacion y crystal report para los informes, en crystal report6 en la barra de menu llamada Database es coges la opción add Database to Report y a parece la base de datos y lugo tus tablas seleccionas las que deses, despues te vas a insert y escoges la opción Database Field. te aparecen las tablas que escogistes con sus respectivos campos.

¡Hasta Luego!
  Respuesta:  Pablo Andrade R.
Hola, mi nombre es Pablo Andrade, no sé si entendí tu pregunta, pero por lo que pude apreciar, te diría que si, una vez que escoges la opción vínculos, y realizando la relación entre los campos ya puedes visualizar la información de las distintas tablas, pero si los campos índices de las tablas que son los quieres vincular, y tienen el mismo nombre, se vincularán automáticamente (siempre que sean los campos que quieres vincular).
No se si te sirve de algo mi respuesta, pero si me escribes un mail detallándome más tu problema, a lo mejor podré cooperar más.
  Respuesta:  David Freites
Soy David Freites, desde Venzuela. Tengo bastante experiencia con Crystal Report trabajando como herramienta individual y utilizandolo como generador para VB. Remiteme al mail tus preguntas, con gusto podre ofrecerte alguna solución

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|