Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Prosze o pomoc. Wyswietlanie AVI w PictureBox
anonim




Typ: Nie zarejestrowany
Prosze o pomoc. Wyswietlanie AVI w PictureBox

Mam nastepujacy klopot: Uzylem jednej kontrolki PictureBox do odtwarzania Avi po kliknieciu na rozne przyciski roznych plikow AVi. Ale AVi naklada sie na poprzednie i zanim sie skonczy animacja jednego to kolejny sie na niego naklada. Co z tym zrobic? Proszeo o szybka pomoc. Najlepiej na maila:
Ponizej umieszczam kod programu, moze cos pomoze w znalezieniu bledu.


Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim mciCommand As String
Dim AVIFileName As String
Dim AliasName As String

Private Sub Form_Load()
F4.Picture = LoadPicture("Grafika\tlo2.bmp"
End Sub

Private Sub Image1_Click()
Load Form2
Form2.Show
Unload F4
End Sub


Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.Picture = LoadPicture("Grafika\Przyciski\StrzalkaB.bmp"
End Sub

Private Sub Label2_Click()
' Wczytywanie tekstu '
Dim Text
Text = " Kula jest bryłą obrotową; przestrzenna figura geometryczna złożona z wszystkich tych punktów, których odległość od danego punktu jest nie większa od danej liczby. Środek i promień kuli są wyznaczone jednoznacznie. Środek kuli jest jej środkiem symetrii, a każda prosta przechodząca przez środek kuli jest jej osią symetrii."
Label1.Caption = Text

' Wyswietlanie animacji '
Pic.Cls
AVIFileName = "anim\kula.avi"
                  'sciezke i nazwe pliku avi.
AliasName = "kula"
mciCommand = "open " & AVIFileName & " alias " & AliasName
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "window " & AliasName & " handle " & CStr(Pic.hWnd)
    'Jesli PictureBox nazwalismy inaczej, zamiast Pic wpisujemy
    'jego nazwe
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "put " & AliasName & " destination at 0 0 " & CStr(Pic.Width \ Screen.TwipsPerPixelX) & " " & CStr(Pic.Height \ Screen.TwipsPerPixelY)
    'Jesli PictureBox nazwalismy inaczej, zamiast Pic wpisujemy
    'jego nazwe
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "seek " & AliasName & " to start"
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "play " & AliasName & " notify"
Call mciSendString(mciCommand, 0&, 0, Me.hWnd)
End Sub

Private Sub Label2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label2.BackStyle = 0
End Sub
Private Sub Label2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label2.BackStyle = 1
End Sub

Private Sub Label3_Click()
' Wczytywanie tekstu '
Dim Text
Text = " Stożek to bryła wypukła powstała przez obrót trójkąta prostokątnego wokół jednej z przyprostokątnych. Przyprostokątna ta tworzy wysokość stożka, druga przyprostokątna staje się promieniem podstawy  zaś przeciwprostokątna &#8212; tworzącą stożka. "
Label1.Caption = Text

' Wyswietlanie animacji '
Pic.Cls
AVIFileName = "anim\stozek.avi"
                  'sciezke i nazwe pliku avi.
AliasName = "stozek"
mciCommand = "open " & AVIFileName & " alias " & AliasName
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "window " & AliasName & " handle " & CStr(Pic.hWnd)
    'Jesli PictureBox nazwalismy inaczej, zamiast Pic wpisujemy
    'jego nazwe
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "put " & AliasName & " destination at 0 0 " & CStr(Pic.Width \ Screen.TwipsPerPixelX) & " " & CStr(Pic.Height \ Screen.TwipsPerPixelY)
    'Jesli PictureBox nazwalismy inaczej, zamiast Pic wpisujemy
    'jego nazwe
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "seek " & AliasName & " to start"
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "play " & AliasName & " notify"
Call mciSendString(mciCommand, 0&, 0, Me.hWnd)
End Sub
Private Sub Label3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label3.BackStyle = 0
End Sub
Private Sub Label3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label3.BackStyle = 1
End Sub

Private Sub Label4_Click()
Dim Text
Text = " Walec jest bryłą geometryczną powstałą w wyniku obrotu prostokąta wokół jednego z jego boków. "
Label1.Caption = Text

' Wyswietlanie animacji '
Pic.Cls
AVIFileName = "anim\walec.avi"
                  'sciezke i nazwe pliku avi.
AliasName = "walec"
mciCommand = "open " & AVIFileName & " alias " & AliasName
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "window " & AliasName & " handle " & CStr(Pic.hWnd)
    'Jesli PictureBox nazwalismy inaczej, zamiast Pic wpisujemy
    'jego nazwe
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "put " & AliasName & " destination at 0 0 " & CStr(Pic.Width \ Screen.TwipsPerPixelX) & " " & CStr(Pic.Height \ Screen.TwipsPerPixelY)
    'Jesli PictureBox nazwalismy inaczej, zamiast Pic wpisujemy
    'jego nazwe
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "seek " & AliasName & " to start"
Call mciSendString(mciCommand, 0&, 0, 0)
mciCommand = "play " & AliasName & " notify"
Call mciSendString(mciCommand, 0&, 0, Me.hWnd)
End Sub

Private Sub Label4_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label4.BackStyle = 0
End Sub
Private Sub Label4_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label4.BackStyle = 1
End Sub

25-08-2004 12:05
  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Może wystarczy dać przed ewdraniem następnego avi "picture1.Clear"? Ja zawsze używam jednak mediaplayer do odtwarzania avi!


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

25-08-2004 12:44
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
anonim




Typ: Nie zarejestrowany

Najlepiej jakas procedura czyszczaca poprzedniego Avi?

25-08-2004 13:00
  
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003

dla przyspieszenia używaj co jakiś czas procedury
DoEvents
Uwaga: używaj tej funkcji z umiarem !

25-08-2004 17:07
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
anonim




Typ: Nie zarejestrowany

To znaczy jak jej uzyc?? Czy moglbys mnie jakos naprowadzic??? Bo jezeli chodzi o Visual Basica to potrafie tylko najprostrze rzeczy;(
Dzieki za pomoc.

26-08-2004 16:10
  
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1