Ga naar inhoud

VB 6.0 - Bladeren in database met plaatjes.


anoniem

Aanbevolen berichten

Beste allemaal Ik heb aan een datacontrol een database hangen. Bij elk record zit een plaatje. Ik heb een cmdButton voor vooruit en terug bladeren. Als ik blader dan krijg ik het juiste plaatje erbij. :D Maar op het moment dat ik het programma start heb ik het eerste record op mijn scherm, maar dan nog geen plaatje, want daarvoor moet je eerst met de cmdButton hebben gebladerd. Maar dat is natuurlijk niet netjes. Op het moment van opstarten moet bij de eerste record dus ook direct het plaatje in de picturebox verschijnen die er bij hoort. Hebben jullie daar een oplossing voor ? [b:129b7f58a6]Code vooruitbladeren:[/b:129b7f58a6] [code:1:129b7f58a6] Private Sub Command3_Click() Data1.Recordset.MoveNext If Data1.Recordset.EOF Then MsgBox "Already at end of recordset!" Data1.Refresh Data1.Recordset.MoveLast End If Picture2.picture = LoadPicture(Text4(7).Text) ' pad en naam plaatje. End Sub[/code:1:129b7f58a6] grt, FX
Link naar reactie
Hoi [code:1:15f6b86fac] Private Sub Form_Load() Picture2.picture = LoadPicture(Text4(7).Text) etc [/code:1:15f6b86fac] Bovenstaande code werkt niet. In de database zit een textveld met het pad en naam van het plaatje. Dus bij het bladeren wordt de text van text4(7) gebruikt voor het inlezen van de locatie. Ik denk dat Form_load() zich afspeelt voor data1 control is ingelezen, of zoiets ? grt, FX
Link naar reactie
Ik denk dat je de form_activate event moet gebruiken. Echter als je binnen dezelfde vb applicatie meerdere forms gebruikt en van form naar form springt wordt deze steeds opnieuw aangeroepen. Je kan dan boven in de form een declaratie maken van bv Private start as boolean private sub form_initialize() 'initialiseer start bij maken van form me.start = False End sub en dan private sub form_activate() 'Alleen bij aanroepen eerste maal If Not me.start then Picture2.picture = LoadPicture(Text4(7).Text) start = True Endif Succes Jan Willem
Link naar reactie
Hoi Jan Willem Ik ga het uittesten, ik kom er nog op terug. Inmiddels ook de volgende tip gekregen: [b:0e599e6b3a]Een truukje is van het Paint event te gebruiken in plaats van het Load event. Je mag deze code dan wel enkel de eerste keer laten uitvoeren en niet iedere keer als de form gepaint wordt.[/b:0e599e6b3a] [code:1:0e599e6b3a] Private Sub Form_Paint() Static bHasAlreadyRun As Boolean If Not bHasAlreadyRun Then Data1.Recordset.MoveFirst Picture2.Picture = LoadPicture(Text4(7).Text) bHasAlreadyRun = True End If End Sub [/code:1:0e599e6b3a] Ik ga kijken wat voor mij de beste optie is. grt, FX
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...