Hej Starta nytt projekt. Lägg in en command1 på formuläret. Hej okej.. mitt förra svar visar hur du "hejdar" ditt program och inväntar en knapptryckning från användaren.Vänta på händelse av användaren
Funderar på hur man skriver en kod där mitt i en sub väntar på att användaren gör ett val. Dvs i mitt fall trycker en av två knappar. Gör man detta med någon mouse_down eller hur gör man?
ex:
sub
kod ..
svar = vänta på användaren som trycker på någon av knapparna
if svar = 1 then
sfsdf
if svar = 2 then
bla bla bla
end subSv: Vänta på händelse av användaren
Klistra in koden nedan och kör.. Klicka OK i första msgboxen, sedan klickar du command1
<code>
Option Explicit
Private vButtonPressed As Boolean
Private Sub Command1_Click()
vButtonPressed = True
End Sub
Private Sub Form_Activate()
MsgBox "Detta händer först."
While not vButtonPressed
DoEvents 'Måste vara med annars "hänger" sig programmet i denna while-slinga.
Wend
vButtonPressed = False
MsgBox "Detta händer sedan."
End Sub
</code>
[Peter.H]Sv:Vänta på händelse av användaren
Detta var en variant. Men inte riktigt det jag frågade efter. Vad jag förstår av ditt program så väntar det endast på en knapptryckning. Men det kan vara en godtycklig knapp. Jag vill avgöra vilken knapp av flera möjliga som tryckts ned. (och trycker man på någon annan knapp skall detta inte räknas.) Det senare borde man ju lösa med någon case-sats på svaret.
Dvs måste jag få ett svar = knapptryckning
\jonasSv: Vänta på händelse av användaren
Detta exempel inväntar en av två tryckningar. Du kan enkelt modifiera det att använda massa knappar om du vill.
<code>
Option Explicit
Private vButtonPressed As Integer
Private Const NO_BUTTON = 0
Private Const BUTTON_1 = 1
Private Const BUTTON_2 = 2
Private Sub waitButtonPressed()
'Antag att ingen knapp tryckts ner
vButtonPressed = NO_BUTTON
'Vänta på att en knapp trycks ner
While vButtonPressed = NO_BUTTON
DoEvents 'Måste vara med annars "hänger" sig programmet i denna while-slinga.
Wend
End Sub
Private Sub Command1_Click(Index As Integer)
'Förutsätter att det finns en "control array" med
'command buttons på formuläret
vButtonPressed = Index + 1
End Sub
Private Sub Form_Activate()
Call waitButtonPressed
'Tala om med en msg box vilken knapp som trycktes ner
MsgBox Choose(vButtonPressed, "BUTTON 1", "BUTTON 2")
End Sub
</code>