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


Göra halt i en klassmodul

Postades av 2003-04-13 21:12:44 - Urban Olars, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 485 personer

Jag har en klassmodul som vi kallar för A, som under vissa omständigheter behöver skapa en instance av en klassmodul som vi kallar för B.
Kan jag på något vis få kodkörningen att göra halt i klassmodul A och vänta på att den får en klarsignal från klassmodul B innan den fortsätter?
Har hållit på ett antal timmar med detta utan att få till det, och är mycket tacksam för lite hjälp på traven!


Svara

Sv: Göra halt i en klassmodul

Postades av 2003-04-13 21:41:08 - Fredrik Salomonsson

Hej.

Har du en instans av B i A kan du använda events.
Annars är en billigare lösning en global statevariabel. (typ. BIsReady As Boolean)

//fredda


Svara

Sv: Göra halt i en klassmodul

Postades av 2003-04-13 23:30:26 - Andreas Hillqvist

Vad är det du har problem med?

Om du naropar en metod på Klass B. Kommer denna först att fortsätta efter att anropet till B är slutfört.


Svara

Sv: Göra halt i en klassmodul

Postades av 2003-04-14 08:14:35 - Urban Olars

Det jag håller på med är ett add-on verktyg till ett CAD program. Mitt verktyg startar med Klassmodul A. Klassmodul B visar bland annat upp en slags dialogruta (finns inbyggd i CAD-programmet) för att man skall kunna klicka på detaljer i CAD programmet och sedan trycka på OK när man valt färdigt. Det konstiga är dock att när jag skapat en instance av B och anropat den subrutin som bl.a. drar igång dialogrutan, så fortsätter program exekveringen i klassmodul A trots att jag ännu inte har hunnit klicka på någonting i CAD programmet och tryckt OK i dialogrutan. Min tanke var om man kunde göra en paus i programexekveringen i klassmodul A och fortsätta först när den får klartecken på något sätt.


Här är några rader med kod från klassmodul B:
<code>
Public Sub OnCommand(pIronCAD As Object)
…
…
…
…
pSelectionDialog.Show
‘This code now exits and waits for a callback…

End Sub

Public Function ICSelectionInterface_OnFinish(objSelectedObjects As Object, objCallbackData As Object) As Long
…
…
…
…
‘Return OK
ICSelectionInterface_OnFinish = ICCallbackResults.ICCallback_OK
End Function
</code>

Den kod som finns i klassmodul B är hämtad från CAD programmets exempelkod. I deras exempel är dock denna placerad i klassmodul A, och när man klickat OK i dialogrutan så körs den kod som finns inne i rutinen ”Public Function ICSelectionInterface_OnFinish”. Sedan avslutas hela deras add-on verktyg. Jag vill emellertid inte att mitt add-on verktyg skall avslutas, så det är vad jag försöker få till.

Hoppas att jag inte har rört till det för mycket utan att det är någon som förstår vad jag menar!
Tack på förhand!


Svara

Sv: Göra halt i en klassmodul

Postades av 2003-04-14 10:34:08 - Andreas Hillqvist

Jag vet inte om WaitForSingleObject() låser dialogen. Men du kan ju prova.

Class: A
<code>
Private Const INFINITE As Long = -1&

Private Const WAIT_OBJECT_0 As Long = &H0&
Private Const WAIT_ABANDONED As Long = &H80&
Private Const WAIT_TIMEOUT As Long = &H102&

Private Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long
'Private Declare Function SetEvent Lib "kernel32" (ByVal hEvent As Long) As Long
'Private Declare Function ResetEvent Lib "kernel32" (ByVal hEvent As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

Function DoStuff()
Dim hEvent As Long
Dim lReturn As Long
hEvent = CreateEvent(ByVal 0&, True, False, "Dialog")

B.hEvent = hEvent
B.DoStuff

lReturn = WaitForSingleObject(hEvent, INFINITE)
' Select Case lReturn
' Case WAIT_OBJECT_0
' 'Ok
' Case WAIT_TIMEOUT
' Case WAIT_ABANDONED
' End Select
CloseHandle hEvent

End Function
</code>

Class: B
<code>
Public hEvent As Long

Private Declare Function SetEvent Lib "kernel32" (ByVal hEvent As Long) As Long

Public Function ICSelectionInterface_OnFinish(objSelectedObjects As Object, objCallbackData As Object) As Long
'…
'…
'…
'…
'Return OK
SetEvent hEvent
ICSelectionInterface_OnFinish = ICCallbackResults.ICCallback_OK
End Function
</code>


Svara

Nyligen

  • 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
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 166
27 952
271 704
745
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