Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Procedur i bakgrunden

Postades av 2001-08-19 08:35:00 - Peter Nilsson, i forum visual basic - allmänt, Tråden har 6 Kommentarer och lästs av 513 personer

Hejsan. Kan man köra en procedur i bakgrunden i VB 6 , om det går hur gör man. Problemet är att
jag skall läsa in ~ 25000 poster till en Listwev, men det tar en sådan tid , så jag tänkte om jag lägger in de 100 första posterna när jag öppnar formuläret, och sedan lägger jag in resten när formuläret är laddat och visas på skärmen'
MVH Peter


Svara

Sv: Procedur i bakgrunden

Postades av 2001-08-19 09:28:00 - Sven Åke Persson

Hej
Det bör räcka med att du lägger ett DoEvents i loopen
som laddar in.Vidare bör du ha Loopen i Form_Activate.
Och sist men inte minst Omedelbart före Do....
skall du skriva din Listview.Visible = False
och efter Loop.Listview.Visible = True

mvh
Sven


Svara

Sv: Procedur i bakgrunden

Postades av 2001-08-19 20:10:00 - Patrik Löwendahl

Skippa det dravlet och använd istället API'et SetTimer. Nedanstående kod är klippt ur en active x controll jag skrev för ngt år sedan för att kolla förändringar i en mapp/katalog .. .


<code>
'// Callback Module
'// Created: 000705 - Patrik Löwendahl (Resco)
'// Last rev: 000908 - Patrik Löwendahl (Resco)
'// Bugs:
'// Notes:

Option Explicit

'// Callback timer api's
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long

Dim cbID As Long '// Callback ID (handle)
Public oNotification As CNotification '// Local copy of Cnotification


'// Startup
'// Path - ??
'// Waitfor - What to wait for.
'// Timeout - my god..
'// Caller - This refers to who's calling, to be used
'// for the class so it knows where to raise the event
'// WatchSubDirs - Hmmm wonder where that jolt did go?

Sub StartCallBack(ByVal Path As String, ByVal WaitFor As Long, Timeout As Long, ByRef Caller As DirMonitor, Optional WatchSubDIrs As Boolean = False)
'// Don't start the timer if already running.
If cbID = 0 Then
'// Initiate
Set oNotification = New CNotification
'// set caller reciving the event
Set oNotification.Caller = Caller
'// start watching, open the kernel object
oNotification.NotifyFileChange Path, WatchSubDIrs, WaitFor
'// start callback timer
cbID = SetTimer(0, 0, Timeout, AddressOf CheckEvent_CBK)
End If
End Sub

'// shutdown
Sub StopCallback()
'// Don't stop the timer if it isn't running.
If cbID Then
'// safe release of notification and timer object...
oNotification.Terminate
Set oNotification = Nothing
KillTimer 0, cbID
cbID = 0
End If
End Sub

'// Changed ??
Sub CheckEvent_CBK(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal SysTime As Long)
'// Look for the event, play it safe to not get any errors
If Not oNotification Is Nothing Then Call oNotification.WaitForEvent
End Sub

</code>


Svara

Sv: Procedur i bakgrunden

Postades av 2001-08-19 20:29:00 - Sven Åke Persson

Hej
Snacka om dravel .Och ??? sedan

Phuuu


Svara

Sv: Procedur i bakgrunden

Postades av 2001-08-20 00:44:00 - Patrik Löwendahl

OM man lägger sådana här saker i ett formulärs event vet man aldrig riktgt vad och när skaer och ting händer, skapar du en callback med ovanstående kod så har du full kontroll ..


Svara

Sv: Procedur i bakgrunden

Postades av 2001-08-20 19:10:00 - Peter Nilsson

Dravel eller inte Jag tackar och bugar för alla tipps. (Jag håller på att testa settimer men den är lite krånglig.)
MVH Peter


Svara

Sv: Procedur i bakgrunden

Postades av 2001-08-20 21:28:00 - Patrik Löwendahl

modCallback.bas
-
<code>
Option Explicit

'// Callback timer api's
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long

Dim cbID As Long '// Callback ID (handle)

'// Startup
'// Timeout - my god..

Sub StartCallBack(Timeout As Long)
'// Don't start the timer if already running.
If cbID = 0 Then
'// start callback timer
cbID = SetTimer(0, 0, Timeout, AddressOf MyBGSub)
End If
End Sub

'// shutdown
Sub StopCallback()
'// Don't stop the timer if it isn't running.
If cbID Then
'// safe release of notification and timer object...
KillTimer 0, cbID
cbID = 0
End If
End Sub

Sub MyBGSub(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal SysTime As Long)

Do While Not rs.Eof
'// Do whatever ...

DoEvents
Loop
StopCallBack
End Sub
</code>

frmMain.frm
-
<code>

Private sub command1_click()
StartCallBack(1)
end sub

</code>

Borde funka som du vill antar jag


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 621
27 953
271 709
537
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies