PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  533 - INFORME DE LA IMPRESORA
Autor:  Roberto Luis Estrada Mancillas
Mi duda es como puedo preguntarle a windows o al controlador de la impresora cuanto espasio esta dejando arroba, abajo, izquierdo y derecho la una hoja, osea una impresora laser deja 0.5 cm del principio de la hoja y enpiesa a imprimir pero como puedo hacerle la pregunta a windows para que me diga eso

De antemano agradesco su ayuda

  Respuesta:  Luis Pérez
Prueba esto a ver si es lo que necesitas:
´ En un módulo
Public Const PHYSICALOFFSETX As Long = 112
Public Const PHYSICALOFFSETY As Long = 113

Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long

´ En el procedimiento de impresión

Printer.ScaleMode = vbTwips

´ Obtiene el margen izquierdo no imprimible en twips
LeftOffset = Printer.ScaleX(GetDeviceCaps(Printer.hdc, PHYSICALOFFSETX), vbPixels, vbTwips)

´ Obtiene el margen superior no imprimible en twips
TopOffset = Printer.ScaleY(GetDeviceCaps(Printer.hdc,PHYSICALOFFSETY), vbPixels, vbTwips)

    Pregunta:  547 - MAIL NOTIFICATION EN VB5
Autor:  Mario de León González
Para los que conocen el ´mail notification´ de NETSCAPE quisiera hacer lo mismo (el mail notification va a tu buzón de correro y te informa si tienes new messages) en vb5, y lo intenté pero lo que me hacia era leer los mensajes del correo y eliminarles el estatus de ´new message´, y mis mensajes se perdian.
Agradeceria mucho si alguien pudiera informarme como ir al buzón y revisar los mensajes nuevos y dejarlos disponibles por si deseo leerlos o no. (solo verificar la existencia de mensajes nuevos sin tocarlos)
  Respuesta:  Rodrigo Treviño
Te recomiendo veas el ejemplo Mapi, que viene en el subdirectorio de Samples de VB, y si puedes conseguir ayuda acerca de MAPI, que es el API de mensajeria, te sera facil encontrar la respuesta, solo te puedo decir que busques HEADER que el encabezado y no el mensaje completo.

creo que es getheader

saludos y espero haberte ayudado

    Pregunta:  551 - COMO HACER HIPERTEXTO EN VISUAL BASIC
Autor:  Claudia
Necesito saber, si existe forma de hacer hipertexto, en visual basic, con un control especial o cualquier otro modo, pero teniendo en cuenta que el texto al cual se le va a hacer el hiperenlace puede aparecer en cualquier lugar de la pantalla, ya que estan en modo texto en un control. Ya que tengo una base de datos y en ella van a existir varios campos entre ellos: un texto de uno o varios párrafos, la palabra o palabras que van a enlazarse y en otro la explicación a dicha palabra. Así que la palabra que debe aparecer resaltada puede aparecer en cualquier lugar.
  Respuesta:  pablo ****************
hay una orden que es
Hyperlink.NavigateTo "direccion web"
si creas un label y en el evento click colocas la orden anterior entonces el explorador se abre y se carga la pagina
  Respuesta:  Marvin Ramos
Te Puedo Dar Una Ayuda Pero, No Se Si Solucione Tu Problema, Existe Un Control Activex Para VB6 Llamado HyperLabel.OCX Que Te Permite Crear Vinculos a Cualquier Dirección o Protocolo Soportado en Internet (mailto,http ...) Y Se Encuentra En La Siguiente Dirección www.programando.com, Tambien Te Digo Que Puedes Crear Vinculos Mediante Código Usando Una De Las API´s De Windows. Si Deseas Ese Código Escribeme y Te Lo Obsequiaré
  Respuesta:  Cederik
Mira para formatear discos con un formato propio bajo dos es bastante interesante ya que la verdad es que lo que puedes lograr es que te de un formato DOS pero acomodado de diferente manera, si quieres dar un formato especifico necesitas crear tu propio sistema de archivos esto ya no se convierte de manera trivial si quieres aqui te listo o en un post mas largo te mando el codigo de un sistema de archivos completo ... dame tu direccion y te lo puedo pasar..
Para mas informacion puedes consultar los manuales del ext2 fs de UNIX o Linux te pueden dar una pista para los formatos que quieres hacer...

Salu2

    Pregunta:  556 - CÓMO ENVIAR A LA PAPELERA EN VEZ DE USAR KILL
Autor:  Marceliano
supongo que existirá alguna función de API que permita borrar un fichero al estilo Win95, es decir, enviándolo a la papelera primero. La instrucción KILL lo borra de modo permanente.
Muchas gracias
  Respuesta:  Keylor
para esto podrias copiar el archivo antes de borrarlo "Kill", a la dirección C:\RECYCLED que es la direccion donde siempre esta el basurero de windows.
Realmente esto no es un basurero no que es es un directorio más. Explorer lo que hace es mover el archivo a este directorio.
  Respuesta:  Vicente Serrano
Realiza una copia a la "papelera" y luego Borra.
De momento te funciona...
  Respuesta:  Rodrigo Reviño
esta es la api para mover un archivo [ creo : ) ]
Declare Function MoveFile Lib "núcleo32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
(todo en una linea)
solo tienes que moverla al directorio c:\recycled y listo
  Respuesta:  Ricardo M.
Borrar un fichero y enviarlo a la papelera de reciclaje:

Crear un formulario y escribir el siguiente código:

Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type

Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40

Public Sub PapeleraDeReciclaje(ByVal Fichero As String)
Dim SHFileOp As SHFILEOPSTRUCT
Dim RetVal As Long
With SHFileOp
.wFunc = FO_DELETE
.pFrom = Fichero
.fFlags = FOF_ALLOWUNDO
End With
RetVal = SHFileOperation(SHFileOp)
End Sub

Private Sub Form_Load()
PapeleraDeReciclaje "c:\a.txt"
End Sub

El programa preguntará si deseamos o no eliminar el fichero y enviarlo a la papelera de reciclaje. El parámetro .fFlags nos permitirá recuperar el fichero de la papelera si lo deseamos. Si eliminamos esta línea, el fichero no podrá ser recuperado.

    Pregunta:  562 - FUNCIONES
Autor:  David Arroyo
Mi pregunta consiste en la alteracion del codigo de una aplicacion desarrollada en visualbasic5.0, la pregunta surge del desarrollo de una aplicacion la cual debe integrar funciones entre valores predeterminados a traves del metodo de CUADRATURA GAUSSIANA ,o sea que deseo alterar el codigo para cambiar la funcion a integrar mientras se esta ejecutandola aplicacion.Espero tener respusta a mi problema pronto dado que es para una materia que me encuntro cursando en este momento ,desde ya muchas gracias.
  Respuesta:  Rafael Chacin
Ok. No se la fecha de tu inquietud pero conozco y he trabajado con un control de Vb denominado "Microsoft Script Control 1.0". Este es un interprete de codigo fuente VB y te permitiría modificar en tiempo de ejecución el contenido de un Archivo, Se me ocurre "GAUSIANA.TXT" y luego interpretar su contenido en el control.

Espero te ayude en algo. ...
  Respuesta:  Al Camms
David:

¡Por lo que entendí, deseas modificar la ecuación misma, los intervalos de integración y otros parámetros para comparar los valores, la ponderación y la validez de sus grados dependiendo de los términos entre ecuaciones, todo ello sin tener que deterner el programa y modificar el código!

¡Wow! ¡a tu maestro en serio se le pasó la mano!, porque se me ocurren dos formas:

La primera es que tengas que desarrollar un pequeño intérprete de comandos, donde al oprimir un control de comando, la ecucación que escribiste en un textbox sea analizada y procesada.

En los códigos fuente de ejemplo hay un prototipo de intérprete que alguien publicó, de lo contrario tendrás que desarrollarlo por tu cuenta.

El intérprete tendrá que buscar las asociaciones, las operaciones, agruparlas, clasificarlas, ejecularlas según su relación, y si le metes integrales, ¡a los Simpson solo los querrás ves en caricatura!. Estoy hablando de muuuucha chamba!. Cuando escribí un pequeño intérprete que relaciona comando = parámetro, parámetro # comentario me tardé al menos un mes.

Otra forma que he escuchado es usando la interfase de aplicación de programas, donde una aplicación modifica su comportamiento gracias a la API que tiene incluida, por ejemplo, las macros de Excel permiten programarse sin tener que detener la ejecución de la hoja, las macros de Autocad hacen lo mismo. Con solo elegir un menú, la macro se ejecuta. Creo que también hay un ejemplo del uso de las APIs en los códigos fuente.

Pero si tu me pagaras por hacerlo, lo que yo haría sería lo siguiente:
Programaría una aplicación de Visual Basic que leyera los valores y la ecuación de las cajas de texto, al presionar el botón de ejecución, VB6 se vale de Excel, le pasaría esos valores y ecuaciones, resolvería la integral, la valuarla en el intervalo dado y regresaría los valores a VB6 para que los despliegue muy monos en cuadros de texto, grids y los grafique a todo color.

¿Que ocurre? Que excel no puede interpretar los comandos en español (=suma(a1:a7)) por lo que tendrás que traducirlos al aburrido inglés (=sum(a1:a7)), entre otras visicitudes.

Pero como no me vas a pagar (porque tampoco le vas a pagar a alguien para que te resuelva tu chamba cuando trabajes, a menos que seas jefe) te la vas a tener que aventar solito!

¡Suerte!
  Respuesta:  Rodrigo Treviño
Mira no se si te entendi, pero si lo que necesitas es utilizar varias funciones para un solo evento, puedes hacer varias rutina y llamarlas como vayas necesitando, si necesitas poder actualizar esas rutinas te recomiendo las encapsules en una DLL, y asi solo tendras que cambiar la DLL que quieras modificar

saludos y espero haberte ayudado

    Pregunta:  573 - COMO GUARDAR IMAGENES EN VISUAL BASIC
Autor:  Hugo Cardenas Riojas
Por Favor, estoy trabajando en Visual Basic usando RDO con una base de datos en SQL server 6.0.
Grabo datos numericos, textos, fechas mas mi gran problema es como grabar una imagen o foto en esta base de datos, sin utilizar RDC o el Data Control
Estoy utilizando el control Image con su propiedad Picture pero me sale un error " Numero de Parametro Incorrecto".

PD. Si me ayuda para trabajar Con DAO, estaria mas que agradecido

  Respuesta:  Fernando morales
Hola definitivamente yo tambien te aconsejo que no las guardes en la base de datos, simplemente utiliza un campo varchar en una tabla donde guardes el nombre de la imagen, y luego cuando vayas a hacer referencia a esa imagen o quieres que aparesca en el picture, utilizas el siguiente codigo:

Picture1.Picture = LoadPicture("E:\Proyecto\Imagenes\" & consulta!Foto_u)

dentro de loadPicture, va la ruta donde guardas la imagen, y le concatenas el nombre el cual lo tienes guardado en la base de datos, para esto primero tienes que extraer el nombre de la base de datos, si no sabes como hacer eso me dices y yo te mando el codigo, espero te sirva saludos desde michoacan
  Respuesta:  Jose Andres Mosquera Ramos
Hola, amigo yo te sugiero una forma mas facil, no hagas un campo en la base de datos para guradar imagenes ya q esto hace q la base de datos se torne muy pesada.... crea una carpeta alterna para guardar las imagenes.. como las vas a guardar muy facil cuando le des guardar la imagen la salvaras en la carpeta con un nombre... cuando desees cargarla para consultarla solo le haces referencia al nombre y colocarla en el picture... eso es todo.... el codigo no te lo envio porq esta de tu parte investigar y hacerlo... espero te sirva... cualquier duda escribeme...
  Respuesta:  Juan Pablo Crossley
Este es un metodo más estandar:

'Grabar recibe un picture y genera el campo
Public Function Grabar(picImagen As PictureBox) As Variant
On Error GoTo ErrorHandler

Dim n As Integer
Dim X As Long
Dim tb() As Byte
n = FreeFile
If Dir$(App.Path & "\tmp.bmp") <> "" Then
Kill App.Path & "\tmp.bmp"
End If
If picImagen.Picture.Handle <> 0 Then
SavePicture picImagen.Picture, App.Path & "\tmp.bmp"
Open App.Path & "\tmp.bmp" For Binary As n
For X = 0 To LOF(n)
ReDim Preserve tb(X + 1)
Get #n, , tb(X)
Next X
Close #n
Grabar = tb
Else
Grabar = Null
End If
Exit Function
ErrorHandler:
End Function

Public Function Recuperar(Imagen As ADODB.Field) As IPictureDisp
On Error GoTo ErrorHandler

Dim n As Integer
Dim X As Long

Dim tb() As Byte 'Variable a almacenar en bmp
Dim varImagen As Variant 'Variable para de donde viene el arreglo

If TypeOf Imagen Is Field Then
varImagen = Imagen.Value
Else
varImagen = Imagen
End If

For X = LBound(varImagen) To UBound(varImagen)
ReDim Preserve tb(X + 1)
tb(X) = varImagen(X)
Next X

If Dir$(App.Path & "\tmp.bmp") <> "" Then
Kill App.Path & "\tmp.bmp"
End If

n = FreeFile
Open App.Path & "\tmp.bmp" For Binary As n
X = 0
For X = LBound(tb) To UBound(tb)
Put #n, , tb(X)
Next X
Close #n

Set Recuperar = LoadPicture(App.Path & "\tmp.bmp")
If Dir$(App.Path & "\tmp.bmp") <> "" Then%0
  Respuesta:  Rodrigo Treviño
primero lo primero, no esplicas todo lo que has hecho para tratar de hacerlo, pero hay te va todo lo que necesitas.

crear un campo objeto Ole(binario), que te permite guardar imagenes o cosas como hojas de calculo o procesadores de texto que sean servidores ole
para manegarlo necesitas "AppendChunk" y "GetChunk", puedes consultar la ayuda de VB para saber como usarlo, y sus restricciones. que en si son de solo poder manejar mas que 16kb de vez en vez, pero hay te dicen como manejar esto

Saludos y espero haber podido ayudarte

    Pregunta:  575 - BLOQUEO DE FICHEROS
Autor:  Emilio
En el tema del bloqueo de ficheros para trabajar en red, lo he conseguido pero solo puedo bloquear por paginas, osea 2048 bytes es decir si cada registro de mi base de datos ocupa 135 bytes hasta 2048 tengo un monton de espacio vacio, es decir que aproximadamente bloquea 16 registros, con el consiguiente problema que esto acarrea, ¿Podrias indicarme como o a alguien o algun lugar donde me pudiesen ayudar?.
  Respuesta:  Alvaro Navarro Chaves
El bloqueo en visual 5 es de dos páginas y por lo que se el visual 6 es mayor, sin embargo el bloqueo se puede hacer optimista o pesimista si lo bloqueas optimista le facilita que aunque se bloque la página solo el registro que entra en modo de edicion quede bloqueado dejando a las demás personas trabajar con los demas registros sin tener problema.
Aplica el bloqueo al accesar el registro y este eso si, si alguien modifica ese registro en ese mismo momento enviara un mensaje de error que debes controlar. Si deseas mas información es posible que te envie parte de la sintaxis ya comprobada de como se hace.
  Respuesta:  Rodrigo Treviño
efectivamente el bloqueo es por paginas de 2kb, la unica forma en que he podido solucionar ese problema es haciendo una rutina en codigo para bloquear el registo especifico, esta rutina (en realidad son dos)la utilizo cuando abro el registro, y cuando lo guardo. el truco consiste en añadir un campo boleano al registro, y cuando abro el registro verifico que este en si, y si lo esta entonces abro el registro y lo cambio a "no" (si esta en "no" quiere decir que esta siendo editado), y cuando guardo el registro con los cambios vuelvo a establecer el campo a "si", para permitir que sea editado.

esto es lo que hace en la practica el bloqueo, pero sobre los 2kb de la pagina.

el bloqueo aptimista te lo recomiendo solo si conoces el manejo de errores, y recuerda que el mensaje de error te lo da cuando tratas de guardar los cambios, no cuando lo abres.

saludos y espero haberte ayudado

    Pregunta:  586 - GUARDAR UN PICTUREBOX
Autor:  Ricardo Markiewicz
Estoy haciendo un programa en Visual Basic 4, y necesito guardar el contenido de un objeto PictureBox en un archivo BMP. Mi problema radica en que el contenido del PictureBox lo modifico en tiempo de ejecucion, con el comando PaintPicture, por lo tanto si intento usar SavePicture solo toma el grafico original cargado en la propiedad Picture del control.
Si poder ayudarme te lo agradecere mucho.
  Respuesta:  Juan Palma
La anterior solución es válida, pero recuerda que para funcione la propiedad AutoRedraw del PictureBix debe ser True
  Respuesta:  Ricardo Markiewicz
La solucion es la siguiente :
Picture1.Picture = Picture1.Image
donde Picture1 en un PictureBox. La propiedad Image representa el contenido que se le dibuja al PictureBox, y con la instruccion de arriba lo pasa a la propiedad Picture. Luego son SavePicture lo grabas como un BMP.

    Pregunta:  595 - TAMAÑO DEL PAPEL DE UN REPORTE
Autor:  Walter
Cual es la forma de modificar el tamaño de hoja de un reporte hecho en Crystal Reports desde un programa creado en VB 5.0. Al ejecutar el reporte lo imprime con el tamaño de hoja configurado desde Crystal
  Respuesta:  JOSE IVAN VASQUEZ RAMOS
SI ESTAS TRABAJANDO CON REPORTES LOS CUALES NECESITAN UNA HOJA PEQUEÑA QUE NO SE PUEDE CONFIGURAR EN CRYSTAL ENTONCES LO QUE DEBES HACER ES REALIZAR UN PROCESO POR QUIEBRES Y CONTAR LAS LINEAS QUE ENTRARAN EN EL REPORTE ES ALGO COMPLICADO DE REALIZAR PERO ES NECESARIO EN LA MAYORIA DE APLICACIONES DE LAS ORGANIZACIONES.
SI QUIERES SABER COMO REALIZARLO ESBRIBE
  Respuesta:  Mirna Díaz
Si estas trabajando con la versión 5.0 del Crystal Reports lo único que debes hacer es lo siguiente:
- Modifica la propiedad WindowShowPrintSetupBtn a True, del control Report
ya sea en tiempo de diseño o ejecución

Con eso permitiras que a la hora de visualizar el reporte puedas configurar los detalles de la impresora o incluso cambiarla.
  Respuesta:  herney salazar
puedes primero mostrar un caja de dialogo de impresora con un common dialog y luego si mandas el reporte de esta manera la persona puede configurar la orientacion y el tamaño del papel

ejemplo

public sub command1_click()
commondialog.cancelerror=true
commondialog.showprinter
if err<>0 then
procedimientoparadispararelreporte
end if
end sub

Nota esta forma es util porque algunos cristal por lo menos el 4.6 solo permite mandar a imprimir a la impresora predeterminada
ciao
  Respuesta:  Walter
Mirá, por lo que yo maenjo, el crystal report siempre (ya sea en la vista de diseño o cuando se ejecuta) toma el tamaño de la hoja configurada en la impresora. Si cambias el tamaño del papel en el panel de control, hay que cerrar y volver a abrir el reporte para que te tome el nuevo tamaño.
Espero haber sido útil.

    Pregunta:  599 - CONTROL TREEVIEW
Autor:  Javier Pérez Sepúlveda
Estoy trabajando en Visual Basic 5.0, concretamente estoy trabajando con el control TreeView para un programa de control de proyectos.
Bien mi problema es que no se por codigo desplazarme a un nodo concreto de una rama cualquiera que tengo ya creada.

Se como añadir un nodo, como eliminarlo, desplazarme por las ramas con el evento NodeClick, pero en algunos momentos determinados necesito ir directamete a una rama.

Creo tambien que este mismo problema tengo con el control TabSrip

Muchas Gracias

  Respuesta:  Oscar
Cuando generas las jerarquias en un control treeview, a cada una de estas se le asigna u numero de item, un texto y una clave o key opcional. si lo que quieres es moverte a un nodo en particular, lo que tienes que conocer es su numero de indice en la coleccion, o su clave o bien su texto.
La manera mas facil es conocer su indice, con lo cual deberias escribir:
trvnodos.SelectedItem = trvnodos.Nodes.Item(1)
y, ademas, si lo quieres expandir, deberias escribir:
trvnodos.Nodes.Item(1).Expanded = True
Si lo tienes que localizar por su texto, lo que deberias hacer es preguntar el indice del nodo que tiene como texto "Texto del nodo", y luego, con este valor conocido, ejecutar las ordenes anteriores.
Espero que tu duda haya sido aclarada.
me gustarioa saber si era esto lo que necesitabas, asi que por favor contestame por e-mail.
Tienes otras maneras de hacerlo, pero es un poco mas complicado. Si de todas maneras quieres conocerlas, solo hazmelo saber.
Saludos

|<  <<  8 9 10 11 12 13 14 15 16 17 18  >>  >|