Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: MSScriptControl ja eventit?

Quirzo [07.01.2007 17:03:34]

#

Suunnilleen sama kysmys kun täällä:
http://www.xtremevbtalk.com/showthread.php?t­=211192

Miten pystyn script controllilla nappaamaan esim onclick eventin napista, jonka olen luonut?

neau33 [11.01.2007 19:18:31]

#

Moikka Quirzo!

Et mitenkään, mutta...

script.txt:

Sub Main()
Dim cmdStop
Set cmdStop = Form1.Controls.Add("VB.CommandButton","cmdStop",Form1)
With cmdStop
.Height = 100
.Top = (Form1.Height / 2) - (cmdStop.Height)
.Width = 300
.Left = (Form1.Width / 2) - (cmdStop.Width / 2)
.Caption = "Stop"
.Visible = True
End With
End Sub
Private Sub cmdStop_Click()
MsgBox " Toimii!!!"
End Sub

'moduuliin
Global strCode, sc As New MSScriptControl.ScriptControl

'formiin 1 valmis nappi eli Command1 ja...

Dim WithEvent cmdStop As VB.CommandButton

Private Sub Form_Load()
Open "Polku\script.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strLineInput
 strCode = strCode & strLineInput & vbCrLf
Loop
Close #1
  With sc
   .Language = "VBScript"
   .AddObject "Form1", Me
   .AllowUI = True
   .AddCode strCode
   .Run "Main"
  End With
End sub

Private Sub Form_Unload()
sc.Reset
Set sc = Nothing
End Sub

Private Sub cmdStop_Click()
 sc.AddCode "cmdStop_Click"
End Sub

Private Sub Command1_Click()
 sc.AddCode "cmdStop_Click"
End Sub

Kun klikkaat Stop nappia niin huomaat, että ¤#"!¤#@£$!!!
klikkaa Command1 nappia ja huomaa ero...

neau33 [12.01.2007 16:21:45]

#

Moikka taas Quirzo!

Korjausta edelliseen...että kyllä se sittenkin tavallaan on mahdollista

HUOM! VBA-versio:

script.txt:

Sub Main()
Set cmdStop = UserForm1.Controls.Add("Forms.CommandButton.1", "cmdStop",True)
With cmdStop
.Height = 20
.Top = (UserForm1.Height / 2) - .Height
.Width = 50
.Left = (UserForm1.Width / 2) - (.Width / 2)
.Visible = True
.Caption = "Nappi"
End With
End Sub
Private Sub cmdStop_OnClick()
MsgBox " Toimii!!!"
End Sub

Public sc As New MSScriptControl.ScriptControl
Public WithEvents cmdStop As CommandButton

Private Sub UserForm_Activate()
Open "C:\script.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strLineInput
 strCode = strCode & strLineInput & vbCrLf
Loop
Close #1
  With sc
   .Language = "VBScript"
   .AddObject "UserForm1", Me, True
   .AllowUI = True
   .AddCode strCode
   .Run "Main"
  End With
End Sub

Private Sub UserForm_Initialize()
 SendKeys "{TAB}"
End Sub

Private Sub UserForm_Terminate()
sc.Reset
Set sc = Nothing
End Sub

Private Sub cmdStop_Click()
 sc.AddCode "cmdStop_OnClick"
End Sub

Quirzo [12.01.2007 16:50:07]

#

Kiitos paljon tuon tyyppistä kokeilinkin.
Yksi kysymys, miten voin Controls.Add -koodilla lisätä command buttonin, jonka nimessä on index. Tarkoitan siis että command1(2), command1(3) jne.
Tällä tavalla sen saisi onnistumaan.

neau33 [12.01.2007 17:17:08]

#

Moikka taas Quirzo!

Tsekkaa ekaks tää nomic'in vinkki ja tsekkaa sit sen linkin takaa se BadSource'n juttu!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta