Ayuda con formulario de Visual Basic, sistema de guardado y uso de MediaPlayer

Hola a todos.
1.- Tengo un formulario hecho (el que viene con VB) de iniciar sesión, en el cual he añadido una casilla de esas de marcar (check1) para iniciar una sesión anónima. El caso es que ahora lo tengo puesto para que nada más seleccionar la casilla, se ejecute el programa, pero yo quiero que se seleccione la casilla y que se deshabiliten los 2 txtBox (se pongan en gris y no deje escribir), tienen de nombre txtUserName y TxtPassword, y el código que tengo puesto ahora es:
Option Explicit
Public LoginSucceeded As Boolean
Private Sub Check1_Click()
Unload frmLogin
fMainForm.Show
Dim RetVal%
RetVal = MsgBox("Ha iniciado una sesión anónima. No podrá modificar archivos de otros usuarios, pero sí los propios.", 64, "Inicio de sesión anónima")
frmTip.Show
End Sub
Private Sub cmdCancel_Click()
'establecer la variable global a false
'para indicar un inicio de sesión fallido
LoginSucceeded = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
'comprobar si la contraseña es correcta
If txtPassword = "mallagaray" Then
'colocar código aquí para pasar al sub
'que llama si la contraseña es correcta
'lo más fácil es establecer una variable global
LoginSucceeded = True
Me.Hide
Else
Dim RetVal%
RetVal = MsgBox("La contraseña no es válida. Vuelva a intentarlo.", 16, "Contraseña erronea")
End
End If
Unload frmLogin
fMainForm.Show
frmTip.Show
End Sub
2.- Quiero hacer que al guardar los archivos con mi programa (archivos de texto *.txt), automáticamente coja el atributo de "Solo lectura" y que al abrirlo con mi programa se quite ese atributo automáticamente. ¿Cómo lo hago?
3.- Tengo otro programa que usa el reproductor de Windows (MediaPlayer). Pero como no tengo espacio, pues tengo puesto sólo los botones clásicos (Play, stop), y no dejo que se vea la pantalla del mediaPlayer, esta, pero no se ve, solo lo he puesto para que se vea lo otro. Lo que quiero hacer es que cuando abra un determinado archivo dentro del programa (en concreto archivos *.avi), pues se ponga automáticamente en pantalla completa el control Media Player.
De momento eso. ¡Muchas gracias a todos!
Respuesta
1
Haber 1 solucionado
Sobre la 2 no lo se mirare por ahí
¿Sobre la 3 haber tu lo que quieres es que te amplíe el reproductor a pantalla completa y que los botones y demás no lo tapen?
Hoy estoy muy liado pero mándamelo por email: [email protected] y este fin de semana te lo miro y a ver si te lo puedo solucionar
¿Ok?
Cuando me mandes el proyecto dime con más detalle lo que quieres(si es algo más en concreto)
Vale
¡Hola!
Perdón por el retraso, y muchas gracias por responder.
Verás, lo primero ya lo tengo hecho, pero no lo he comprobado porque tenía un fallo mi programa, de todos modos creo que sí funcionará. Gracias.
Lo 2, he buscado pero no he encontrado nada.
Y lo 3:
Verás, tengo el reproductor, he puesto eso pero no queda bien, se pone en el fondo del programa, y lo tapan todos los controles. Tiene este código:
Dim idv3 As New cIDV3 'Se carga referencia a la clase
Public CurrentFile As String
Dim Accion As Boolean 'Estado de acción
Dim strTexto As String 'Variable para el texto moviéndose
Dim Snd As CDAudio 'Variable para el Cd
Private Sub cmdEdit_Click()
LoadEditor
End Sub
Private Sub cmdExit_Click()
Form_Unload.Show
End Sub
Private Sub Command2_Click()
frmMain.Show
End Sub
'Se busca los ficheros WAV
Private Sub Command3_Click()
Fichero.Filter = "Archivos de tipo WAV(*.wav)|*.wav"
Fichero.ShowOpen
Sonido = sndPlaySound(ByVal Fichero.Filename, 1)
End Sub
Private Sub Command4_Click()
Form1.Show
End Sub
Private Sub Command5_Click()
CommonDialog1.Filter = "Ficheros MP3 (*.mp3) |*.mp3|Ficheros AVI (*.avi) |*.avi| "
CommonDialog1.ShowOpen
WindowsMediaPlayer1.URL = CommonDialog1.Filename
WindowsMediaPlayer1.Width = Form1.Width
WindowsMediaPlayer1.Height = Form1.Height
End Sub
Private Sub Command6_Click()
Timer2.Interval = 900 'Fijo los intervalos del scroll para la pantalla Psico
HScroll1.Min = 100
HScroll1.Max = 900
Timer2.Interval = 2000 - HScroll1.value
End Sub
Private Sub Command7_Click()
Timer2.Interval = 0 'Le doy al timer2 intérvalo de inicio igual a 0
End Sub
Private Sub Command8_Click()
FRMMEMO.Show
End Sub
Private Sub Command9_Click()
Principale.Show
End Sub
Private Sub HScroll1_Change()
Timer2.Interval = 1000 - HScroll1.value 'Le resto a Timer2, los valores que optiene
'la barra scroll
End Sub
'RGB Las propiedades de color pueden usar varios métodos para definir
'el valor de color. La función RGB descrita en "Trabajo con colores" es
'una forma de definir los colores. En esta sección se describen dos maneras más
'de definir colores:
Private Sub Timer2_Timer()
If FormMain.BackColor = RGB(255, 0, 0) Then
FormMain.BackColor = RGB(VScroll1.value, VScroll2.value, VScroll3.value)
Else
FormMain.BackColor = RGB(255, 0, 0)
Text2.Text = VScroll1.value
Text3.Text = VScroll1.value
Text4.Text = VScroll1.value
End If
Text5.Text = HScroll1.value
End Sub
'Trabajo con el Dir1, para acceder a los MP3
Private Sub Dir1_Change()
File1.Path = Dir1.Path
CheckForFile
End Sub
Private Sub Drive1_Change()
On Error GoTo disp
Dir1.Path = Drive1.Drive
disp: MsgBox "El dispositivo aún no está preparado, elige el directorio que contenga ficheros tipo MP3" _
, vbCritical + vbOKOnly, "!!!Atencion!!,no hay disco en la unidad con ficheros tipo MP3"
Exit Sub
End Sub
Private Sub File1_DblClick()
LoadEditor
End Sub
'Condiciono la relación de la lista abierto o cerrado
Private Sub CheckForFile()
If File1.ListCount > 0 Then
cmdEdit.Enabled = True
Else
cmdEdit.Enabled = False
End If
End Sub
'Esta rutina forma parte del , llamemoslo fractal del picture
'Recorre en degradación la gama de colores
Private Sub Form_Load()
For a% = 0 To 256
div3_lookup1(a%) = (a% / 3.1)
div3_lookup2(a%) = (a% / 3.01) + 1
div3_lookup3(a%) = (a% / 3.1)
Next
Label4.Caption = "Este programa ha sido creado a partir de uno ya existente. Se han realizado modificaciones sustanciales"
CheckForFile
End Sub
'Right Devuelve un tipo Variant (String) que contiene un número
'especificado de caracteres del lado derecho de una cadena.
'Sintaxis
'Right(string, lenght)
Private Sub LoadEditor()
Dim strTemp As String
strTemp = Dir1.Path
If Right(strTemp, 1) <> "\" Then strTemp = strTemp & "\"
CurrentFile = strTemp & File1.List(File1.ListIndex)
Load frmID3Edit
frmID3Edit.Show vbModal
End Sub
Private Sub Timer1_Timer()
strTexto = Mid(strTexto, 2) & Left(strTexto, 1)
text1.Text = strTexto
End Sub
'.................*************
Sub DoFlame()
' Dirección de pixels utilizando matrices
Dim pict() As Byte
Dim sa As SAFEARRAY2D, bmp As BITMAP 'Declarado como Bipmap
Dim r As Integer, c As Integer, value As Byte
' Obtine información del bipmap
GetObjectAPI Pictbox.Picture, Len(bmp), bmp
' Se sale si no soporta el bipmap
If bmp.bmPlanes <> 1 Or bmp.bmBitsPixel <> 8 Then
MsgBox " 256-colores, Utiliza el paint de Windows para fabricarte uno Solo soporto bitmaps y", vbCritical
Exit Sub
End If
' Da valores e ala matriz
With sa
.cbElements = 1
.cDims = 2
.Bounds(0).lLbound = 0
.Bounds(0).cElements = bmp.bmHeight
.Bounds(1).lLbound = 0
.Bounds(1).cElements = bmp.bmWidthBytes
.pvData = bmp.bmBits
End With
CopyMemory ByVal VarPtrArray(pict), VarPtr(sa), 4
'Invierte los colores
'int Devuelve la parte entera de un número.
'Sintaxis
'Int(número)
'UBound Recupera múltiples filas de un rdoResultset
'y las introduce en una matriz.
'Sintaxis
'matriz = objeto.GetRows(filas)
For c = 0 To UBound(pict, 1)
pict(c, 0) = Int(Rnd(1) * 200) + 55
Next
For c = 1 To UBound(pict, 1) - 1
For r = 1 To UBound(pict, 2)
pict(c, r) = div3_lookup2(pict(c, r - 1)) + div3_lookup1(pict(c - 1, r - 1)) + div3_lookup3(pict(c + 1, r - 1))
Next
Next
' Limpia temporalmente el array descriptor
'CopyMemory copya bloques temporalmente de una parte de memoria a otra
CopyMemory ByVal VarPtrArray(pict), 0&, 4
Pictbox.Refresh
End Sub
'Condiciona con un mismo pulsdor dos opciones Play y stop
'Esto es clásico
Private Sub Command333_Click()
If Command333.Caption = "Play" Then
Command333.Caption = "Stop"
Do
DoFlame 'Llamo a la funcion de más arriba
Pictbox.Refresh 'Recambia el picture
u% = DoEvents
Loop Until Command333.Caption = "Play"
Else
Command333.Caption = "Play"
End If
End Sub
También he visto que hay un comando llamado FullScreen, pero me dice uso no válido de la propiedad si borro lo que me has dicho que añada y pongo windowsMediaPlayer1.FullScreen me dice
"Uso de la propiedad no válido"
De todos modos aún me faltan muchas cosas por acabar de este programa, y lo cogí de la web del programador.
¡Un saludo!
PD: si quieres verlo todo con todos los formularios te lo mando por Mail o me dices si tienes MSN.
Gracias!
A la pregunta numero 1: textbox
La solución es que cuando pulses el botón o cuando marcas check1, etc pongas esto
TxtUserName.Enabled = False
TxtPassword.Enabled = False
Sobre la segunda pregunta de poner solo lectura lo siento no lo se pero visita:
www.lawedelprogramador.com/codigos
http://guille.costasol.net
que por ahi debe haber algo
referente a la tercera pregunta sobre windows media:
MediaPlayer1.Width = Form1.Width
MediaPlayer1.Height = Form1.Height
Y si no en vez de form1. Width y form1. Height pones tu el tamaño que deseas que tome.
A ver, lo he estado mirando este fin de semana y solo he encontrado esta form ademas de la que te explique:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'res es una variable
res = ShellExecute(Me.hwnd, "Open", ruta del archivo, "", "", 1)
No recuerdo si el 1 era pa abrirlo maximizado es cuestión de probar pero casi seguro que es el 1.
Metelo en el código y cada vez que pulses una canción, etc se abrirá el "WMP"
Maximizado
También con esta instrucción lo que haces es abrir el windows media player y desde allí elegir el formato a escuchar:
res=shell(ruta del directorio,maximizado)
En lo de maximizado lo veras cuando pongas la coma después de la ruta, entonces eliges como quieres que se abra.
Bueno creo que con esto estas servido.
Suerte y Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas