Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
geroda zei:verduidelijk eens je vraag ksnap er de ****** van
geroda zei:m.a.w
je wil een MP3/WAV speler maken met rechts de liedjes die je wil afspelen en als je er bv een liedje insleept dat hij tussen die lijst komt te staan en zo in de afspeellijst afspeelt?
WalterWzK zei:Dit is vrij eenvoudig.. je kan de property "DragDrop" activeren in je listbox waardoor hij items zal accepteren die gesleept worden.. vervolgens kan je door het Drop-object aan te roepen kunnen uitlezen wat er nou eigenlijk in je listbox is gesleept ( bv het volle pad naar de mp3 toe ). Het is dan aan jouw de taak om dit item met AddItem aan je lijst toe te voegen.. als je handig bent sla je het volle pad op als item-key en enkel de naam van het nummer ( uitlezen uit ID3-Tag ) als item-tekst.. als men dan dubbelklikt op een nummer om af te spelen dan kan je gewoon je media-component voorzien van het volle pad naar de MP3 door de key van het selected item uit te lezen. Succes!
WalterWzK zei:Ik heb zo snel geen VB2005 tot mijn beschikking dus ik kan niet exact vertellen waar alles zit. Maar dit is het idee in stappen:
( Je ziet dat ik de Drag&Drop property oversla ( dit moest in VB6 )
1. Je plaatst een listbox op een form
2. Je maakt het event DragEnter aan om te checken of het gedropte item iets is!
Code:Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter If e.Data.GetDataPresent(GetType(System.String)) = True Then e.Effect = DragDropEffects.Copy End If End Sub
3. Je maakt het event DragDrop aan voor het geval dat het gedropte item inderdaad bruikbaar blijkt.
Code:Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop Msgbox CStr(e.Data.GetData(GetType(System.String))) End Sub
4. Je draait je applicatie en sleept een MP3 uit een map in je Listbox
Je zal zien dat je het volledige pad naar de MP3 in een messagebox te zien krijgt,
wat we nu dus hebben is een listbox die bekijkt of het item dat je erin wilt droppen geldig is, en als dat zo is, dan zal hij het volledige pad naar het item weergeven.
Nu gaan we nog een stapje verder![]()
We willen het item niet in een messagebox, dat mag duidelijk zijn.
We moeten dus het item gaan toevoegen aan de listbox, en wel op een slimme manier zodat we in de toekomst gemakkelijk met deze items kunnen omspringen.
Als je een item aan een listbox toevoegd kan je een aantal eigenschappen invullen, de meest belangrijke is de naam natuurlijk. Maar een in dit geval handige eigenschap is de Key, dit is een string die voor elk item uniek moet zijn en verder geen nut heeft dan identificatie!
Als we nou bij het aanmaken van het item in de listbox het volledigepad ( nu in msgbox ) plaatsen in de key dan kunnen we later makkelijk ophalen waar het bestand ook alweer stond. Zou je namelijk het hele pad als naam gebruiken dan moet je listbox zo breed zijn!
Wat je als naam gebruikt mag je zelf weten, je zou met een functie de naam van het bestand uit het volle pad kunnen halen en die gebruiken.
Stel nou iemand klikt dubbel op een listbox item, dan kan je met SelectedItem(0).Key bijvoorbeeld een WindowsMediaPlayer een volledig pad geven om het bestand af te spelen.
Hoop dat je hier meer aan hebt, succes!
Oké... de bug is nu verholpen maar d'r gebeurt nix als ik de applicatie start!WalterWzK zei:Handels moet direct na de () achter de procedure komen hé?
In VB.Net specificeer je met Handle door welk control de functie aangeroepen wordt..
wellicht dat dit inmiddels in nieuwere\oudere versies veranderd is. Even mee stoeien dus! succes
Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop
MsgBox(CStr(e.Data.GetData(GetType(System.String))))
End Sub
Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)Handles ListBox1.DragEnter
If e.Data.GetDataPresent(GetType(System.String)) = True Then
e.Effect = DragDropEffects.Copy
End If
End Sub
WalterWzK zei:Tjah zoals ik al zei heb ik even geen VB2005 tot mn beschikking, dus kan even niet debuggen voor je.. maar het zal hem wel weer in de kleine dingen zitten.
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.