Hej! jag behöver ganska mycket hjälp med att påverka ett valt värde i en combobox. så här är det. jag har en combobox som hämtar värden från en ini-fil. jämte comboboxen har jag två knappar "upp" och "ner". jag vill kunna välja ett värde från ini-filen och sedan påverka den genom att trycka de två olika knapparna "upp" och "ner" Hur får jag knapparna att veta vilket värde jag valt från ini-filen? Tjena. nej det här fungerar inte för mig. Hoppar bara ett värde bakåt i comboboxen sen stängs mitt program ner. inga mer idéer? jag får nog förtydliga vad jag menar lite. Det är lite svårt att veta vad du vill ha hjälp med och vilken kunskap du redan besitter inom vb.net språket. Det är ibland svårare att göra sig förstådd på forumet än problemet man vill få löst i tråden:-) ja det är inte så lätt att beskriva vad jag menar men jag hoppas någon förstår. Du vill alltså kunna läsa ut en Int från ComboBoxen vilken representar numret för motorn och skicka till din PLC? Får inte ditt exempel att fungera. det stänger bara ner mitt program utan något felmeddelande. Men gör det verkligen det jag vill? Det beror på vad du har för värde i din Combobox. Om du vill läsa ut siffran 1 ur värdet "Motor 1" då får du Splitta strängen på ett "mellanslag": Det borde fungera. men "1=Motor 1=1" kan jag istället för den sista ettan skriva variablen jag har i plc:n som ser ut såhär: ".HMI_MotorNer"? vad skriver jag såfall där du skriver splitt(1)? eller fattar jag fel nu? eller..jag kom på nu att ajg har ju två variablar som ska gå till "motor 1" då blev det genast svårare. Hur kan jag skriva min inifil då? Så här ser min ini-fil ut nu: Detta är riktiga baskunskaper... men jag kan försöka förklara den senaste frågan: Men det är ju Split med ett t. Jag kan inte deklarera Arrayen med ett t, den får heta Splitt med två t för annars blir det konflikt med Arrayens Split;-) Ah, såg inte det. Men då skulle jag föreslå ett annat namn än ett felstavat funktionsnamn ;) Nu tror jag att vi är nära en lösning. Jag förstår ditt script helt nu. Jag är ganska ny på det här så du får ursäkta alla frågor. Hoppas det är ok. :) Jag skulle göra en klass att kapsla in värdena i, du vill antagligen inte att HMI_KAPMotor1Upp skall synas i comboboxen utan bara motor 1. Jag år det inte riktigt att fungera. Men ajg förstår precis vad du menar. Det är främst mina kunskaper om hur jag skriver det här som sätter stopp. Har lite frågor: Här: det måste ju ha något med ini-filen att göra. hur den skrivs. Eller vad tror du? Jag har gjort ett lite exempel där jag använt mig av bl a en Motorklass med info om motorn samt en Motorkontroll kalss som sköter styrningen. Det saknas en hel del felhantering och en del andra förreglingar och kontroller som behövs i ett skarpt projekt. Men här hämtar du ju inte från en ini-fil vilket är hela grejen för min del då användaren lätt ska kunna gå in i ini-filen och lägga till en ny motor att köra. Efter att ha testat lite märker jag att när jag ändrar ettan vid pilen på höger sida i koden nedan till en högre siffra så stängs inte programmet ner. men jag kan inte välja något i comboboxen. Det betyder att man försöker använda sig av en position av en array som inte finns tex om arrayen har två platser och man försöker läsa den tredje. Joel: Ok, jag hämtar inte från en ini-fil men jag antog att det huvudsakliga problemet var hanteringen av värden i ComboBoxen. lägg in system.diagnositic.debug.write(sLine) på 'plats för debug Oj. jag glömde att kolla det innan. det fixade problemet. Lite pinsamt faktiskt hru dum ajg var nu. :D Jag hade skrivit min ini-fil så här: självklart,påverka valt värde i combobox?
mycket tacksam om någon vill hjälpa mig med det här!
/JoelSv: påverka valt värde i combobox?
Har inte testat om det fungerar men gör något i stil med:
Private sub Pilupp()
Try
Combobox.SelectedItem = Combobox.Items(Combobox.SelectedIndex - 1)
Catch ex as exception
End try
End sub
Pilned får du fundera ut själv.
//Danne
Sv:påverka valt värde i combobox?
Sv: påverka valt värde i combobox?
jag har en combobox som hämtar värden från en ini-fil. Det här är en lista på motorer. Jag väljer en motor i listan som jag sedan med en koppling till en plc kör motorn "variabeln" "värdet" upp eller ner med knapparna "upp" och "ner"Sv:påverka valt värde i combobox?
1. Om det är värdet i comboboxen du vil hämta så kan du göra det via Combobox.SelectedValue, Combobox.SelectedIndex, Combobox.SelectedItem eller Combobox.SelectedText.
2. Om det är hur du skickar värdet till din PLC så måste du gå via en port på PC:n, antagligen SerialPort komponenten.
/DanneSv: påverka valt värde i combobox?
OK nu gav du mig lite saker att testa.
skicka värdet till plc är inget problem. Däremot att hämta ett värde från en ini-fil som ser ut så här:
[Motorer]
1=Motor 1
2=Motor 2
3=Motor 3
4=Motor 4
i plc:n har de värdena två variablar. motor1 ett har "motor1Upp" och "motor1Ner" osv osv
när jag väljer motor 1 i min combobox så fattar knapparna upp och ner vilken variabel den ska peka på. och när jag tväljer motor två fattar knapaprna upp och ner att den ska peka på motor2Upp och motor2Ner.Det är precis så jag vill ha det.Sv:påverka valt värde i combobox?
Dim splitt as Array = Split(Combobox.SelectedText,"=") 'Hämtar ut motornumret som står i texten "1=Motor 1
Dim Motornummer as Integer = splitt(0)
Private Enum UppNer
Upp
Ner
End Enum
Private sub Knapp(Vart as UppNer)
'Skicka "motor" & Motornummer & Vart.tostring till PLC
End sub
Sv: påverka valt värde i combobox?
så här:
väljer "motor 1"
knapp "upp" fattar att det är motor1Upp som ska användas
knapp "ner" fattar att det är motor1Ner som ska användas
väljer "motor 2"
knapp "upp" fattar att det är motor2Upp som ska användas
knapp "ner" fattar att det är motor2Ner som ska användasSv:påverka valt värde i combobox?
Dim splitt As Array = Split(Combobox.SelectedText," ") 'Hämtar ut motornumret som står i texten "Motor 1"
Dim Motornummer As Integer = splitt(1) 'Hämtar det andra värdet ur Array eftersom 0=Motor 1=1
Om värdet är "1=Motor 1" då får du splitta på "=":
Dim splitt As Array = Split(Combobox.SelectedText,"=") 'Hämtar ut motornumret som står i texten "1=Motor 1"
Dim Motornummer As Integer = splitt(0) 'Hämtar ut första värdet ur Array eftersom 0=1 1=Motor 1
Vilken version av Visual Studio använder du? Du borde kunna fånga ett felmmeddelande i ett:
Try
'Här kör du dina funktioner som kan bli fel och fångas upp av Exception
Catch Ex as Exception
Msgbox(Ex.message)
End Try
Mer kan jag nog inte hjälpa dig med.
/Daniel
Sv: påverka valt värde i combobox?
Sv: påverka valt värde i combobox?
Sv: påverka valt värde i combobox?
[Motorer_Kap]
0=Ingen motor vald
1=motor 1=.HMI_KapMotor1Upp
2=motor 2=.HMI_KapMotor2Upp
kan ajg hämta det sista värdet ".HMI_KapMotor1Upp" och ".HMI_KapMotor1Ner" från samma på något sätt?Sv:påverka valt värde i combobox?
Du vill hämta ".HMI.KapMotor1Upp" ur strängen "1=motor 1=.HMI_KapMotor1Upp" så är lämpligast att dela upp strängen med en Split på "=" tecknet. Då kommer du få en Array som innehåller 3 värden:
Dim splitt as Array = Split("1=motor 1=.HMI_KapMotor1Upp","=")
Msgbox(Splitt(0)) 'Meddelandebox med "1" som värde
Msgbox(Splitt(1)) 'Meddelandebox med "motor 1" som värde
Msgbox(Splitt(2)) 'Meddelandebox med ".HMI_KapMotor1Upp" som värde
Kör denna kod och testa dig fram för detta borde vara riktigt enkelt.
/Daniel
Sv:påverka valt värde i combobox?
//DanneSv: påverka valt värde i combobox?
Sv: påverka valt värde i combobox?
Har en liten sak kvar nu bara. Jag tror felet hänger på hur jag hämtar ini.DU kan väl se om du ser några fel på hur jag hämtar? Jag vet att det finns fel jsut nu. På knappen finns det ingen kod som hämtar ini. Jag behöver hjälp med det här.
Här har du min kod:
INI-Fil:
[Motorer_Kap]
0=Ingen motor vald
1=motor 1=.HMI_KapMotor1Upp=.HMI_KapMotor1Ner
2=motor 2=HMI_KapMotor2Upp=.HMI_KapMotor2Ner
3=motor 3=HMI_KapMotor3Upp=.HMI_KapMotor3Ner
TcClientSync = CreateObject("TcScript.TcScriptSync")
Call TcClientSync.ConnectTo("", 801)
Dim objFSO As Scripting.FileSystemObject
Dim objTxt As Scripting.TextStream
Dim sLine As String
objFSO = New Scripting.FileSystemObject
objTxt = objFSO.OpenTextFile("C:\handkorning.ini")
If GoToSection(objTxt, "[Motorer_Kap]") Then
sLine = objTxt.ReadLine
ComboMotorerKap.Items.Clear()
Do While Not objTxt.AtEndOfStream And Not (VB.Left(sLine, 1) = "[")
If sLine3 <> "" Then
ComboMotorerKap.Items.Add(VB.Right(sLine, Len(sLine) - InStr(1, sLine, "=", CompareMethod.Text)))
End If
sLine = objTxt.ReadLine
Loop
End If
End Sub
Private Function GoToSection(ByRef filename As Scripting.TextStream, ByVal ParamArray SecName() As Object) As Boolean
Dim i As Short
Dim Data As String
On Error GoTo errorHandler
GoToSection = False
Do While Not filename.AtEndOfStream
Data = filename.ReadLine
For i = 0 To UBound(SecName)
If InStr(1, Data, UCase(SecName(i)), CompareMethod.Text) = 1 Then
GoToSection = True
Exit Do
End If
Next i
Loop
Exit Function
errorHandler:
GoToSection = False
End Function
'Form
Dim splitt As Array = Split(ComboMotorerKap.SelectedText, " ")
Dim HMIMotorUpp As String = splitt(3)
Dim HMIMotorNer As String = splitt(4)
Private Sub cmdMotorUpp_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles cmdMotorUpp.MouseDown
bMotorUpp = CBool(True)
Call TcClientSync.WriteVar(HMIMotorUpp, bMotorUpp)
End Sub
Private Sub cmdMotorUpp_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles cmdMotorUpp.MouseUp
bMotorUpp = CBool(False)
Call TcClientSync.WriteVar(HMIMotorUpp, bMotorUpp)
End Sub
Sv:påverka valt värde i combobox?
Public Class Motor
Public Upp As String
Public Ner As String
Private Namn as String
Public Sub New(motor as String, u as String, n as String)
Namn = motor
Upp = u
Ner = n
End Sub
Public Overrides Function ToString() As String
Return Namn
End Function
End Class
När du hämtar datat från ini filen skapar du en instans av klassen och lägger istället in objektet i comboboxen.
Dim s As Array = Split(sLine,"=")
ComboMotorerKap.Items.Add(new Motor(s(1), s(2), s(3) ))
ToString funktionen ser till att det visas nåt trevligt i comboBoxen. När du sen hämtar valt värde men hjälp av ComboMotorerKap.SelectedItem får du tillbaka klassen och kan kolla vad Ner resp. Upp värdet är.
Dim m as motor
m = ComboMotorerKap.SelectedItem
bMotorUpp = CBool(True)
Call TcClientSync.WriteVar(m.Upp, bMotorUpp)
Du behöver alltså inte köra split efter att användaren har valt motor. Hoppas detta hjälper.Sv: påverka valt värde i combobox?
Vart ska jag skriva det här?
Dim s As Array = Split(sLine, "=")
ComboMotorerKap.Items.Add(New Motor(s(1), s(2), s(3)))
får bara felmeddelande vart jag än lägger in det och programmet stängs ner.
---------------------------------
Kan jag lägga den här koden nedan i en module?
Public Class Motor
Public Upp As String
Public Ner As String
Private Namn as String
Public Sub New(motor as String, u as String, n as String)
Namn = motor
Upp = u
Ner = n
End Sub
Public Overrides Function ToString() As String
Return Namn
End Function
End Class
----------------------------------------------
kan jag fortfarande hämta inivärdet så här:
Private Sub fHandkorningKap_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TcClientSync = CreateObject("TcScript.TcScriptSync")
Call TcClientSync.ConnectTo("", 801)
Dim objFSO As Scripting.FileSystemObject
Dim objTxt As Scripting.TextStream
Dim sLine As String
objFSO = New Scripting.FileSystemObject
objTxt = objFSO.OpenTextFile("C:\handkorning.ini")
If GoToSection(objTxt, "[Motorer_kap]") Then
sLine = objTxt.ReadLine
ComboMotorerKap.Items.Clear()
Do While Not objTxt.AtEndOfStream And Not (VB.Left(sLine, 1) = "[")
If sLine <> "" Then
ComboMotorerKap.Items.Add(VB.Right(sLine, Len(sLine) - InStr(1, sLine, "=", CompareMethod.Text)))
End If
sLine = objTxt.ReadLine
Loop
End If
End Sub
Private Function GoToSection(ByRef filename As Scripting.TextStream, ByVal ParamArray SecName() As Object) As Boolean
Dim i As Short
Dim Data As String
On Error GoTo errorHandler
GoToSection = False
Do While Not filename.AtEndOfStream
Data = filename.ReadLine
For i = 0 To UBound(SecName)
If InStr(1, Data, UCase(SecName(i)), CompareMethod.Text) = 1 Then
GoToSection = True
Exit Do
End If
Next i
Loop
Exit Function
errorHandler:
GoToSection = False
End Function
Sv:påverka valt värde i combobox?
If GoToSection(objTxt, "[Motorer_Kap]") Then
sLine = objTxt.ReadLine
ComboMotorerKap.Items.Clear()
Do While Not objTxt.AtEndOfStream And Not (VB.Left(sLine, 1) = "[")
If sLine3 <> "" Then
-> 'plats för debug
-> Dim s As Array = Split(sLine, "=")
-> ComboMotorerKap.Items.Add(New Motor(s(1), s(2), s(3)))
End If
sLine = objTxt.ReadLine
Loop
End If
Motorklassen kan du lägga i en separat fil eller i samma fil. om du lägger den i samma se till att den inte ligger i den andra klassen (dvs läggen den efter End Class). Dock ej module som är samma sak som en statisk klass vilket vi inte gör här.
Du kan fortsätta hämta inivärdet som du gjorde förut förutsatt att det blev rätt värden som lästes in, vilket det verkade som det vara.
Du kan lägga in följande rad för att kunna kontrollera detta:
system.diagnositic.debug.write(sLine) på 'plats för debug
Du kommer då kunna se varje inläst rad från ini-filen i Output fönstret när du kör i VS. När du sedan kompilerar en Release så försvinner detta från kompilerade koden.
Sv: påverka valt värde i combobox?
Det borde fungera. men jag får ett error när jag kör din kod innom "try" som heter "Index was outside the bounds of the aray" Vad betyder det och hur fixar jag det?
If GoToSection(objTxt, "[Motorer_Kap]") Then
sLine = objTxt.ReadLine
ComboMotorerKap.Items.Clear()
Do While Not objTxt.AtEndOfStream And Not (VB.Left(sLine, 1) = "[")
If sLine <> "" Then
Try
'plats för debug
Dim s As Array = Split(sLine, "=")
ComboMotorerKap.Items.Add(New Motor(s(1), s(2), s(3)))
Catch Ex As Exception
MsgBox(Ex.Message)
End Try
End If
sLine = objTxt.ReadLine
Loop
End If
Sv: påverka valt värde i combobox?
Sv: påverka valt värde i combobox?
Klasser och filer,
Form1.vb
Motor.vb
MotorController.vb
MotorStatus.vb
Mitt formulär, som består av en ComboBox, Upp-, Ner-, Stopp- och Statusknapp.
Fil: Form1.vb
<code>
Public Class Form1
Private mMotorController As MotorController
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
InitMotorComboBox()
EnableButtons()
End Sub
'Används för att simulera en inläsning från en inifil
'Skapar ett antal instanser av klassen Motor där varje
'instans innehåller information för en specifik motor
Private Sub InitMotorComboBox()
Dim motor As Motor
motor = New Motor(1, "Motor 1")
MotorComboBox.Items.Add(motor)
motor = New Motor(2, "Motor 2")
MotorComboBox.Items.Add(motor)
motor = New Motor(3, "Motor 3")
MotorComboBox.Items.Add(motor)
motor = New Motor(4, "Motor 4")
MotorComboBox.Items.Add(motor)
MotorComboBox.SelectedIndex = 0
End Sub
'Körs när valet i ComboBoxen förändras
Private Sub MotorComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MotorComboBox.SelectedIndexChanged
Dim motor As Motor
motor = CType(sender, ComboBox).SelectedItem
SetMotorcontrol(motor)
EnableButtons()
End Sub
'Kopplar en motor till en motorkontroller som har hand om
'själva styrningen, tex signaler till PLC
Private Sub SetMotorcontrol(ByVal motor As Motor)
mMotorController = New MotorController(motor)
End Sub
Private Sub EnableButtons()
Dim enabled As Boolean
enabled = MotorComboBox.SelectedIndex >= 0
NerButton.Enabled = enabled
UppButton.Enabled = enabled
StatusRequestButton.Enabled = enabled
End Sub
'Upp-knapp
Private Sub UppButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UppButton.Click
If Not (mMotorController Is Nothing) Then
mMotorController.Upp()
End If
End Sub
'Ner-knapp
Private Sub NerButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NerButton.Click
If Not (mMotorController Is Nothing) Then
mMotorController.Ner()
End If
End Sub
'Stopp-knapp
Private Sub StopButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StopButton.Click
If Not (mMotorController Is Nothing) Then
mMotorController.Stopp()
End If
End Sub
'Visa status
Private Sub StatusRequestButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusRequestButton.Click
Dim msg As String
Dim motor As Motor
motor = mMotorController.Motor
msg = String.Format("Motor {0} (id={1}) status = {2}", motor.Beskrivning, motor.MotorId, motor.Status.ToString())
MsgBox(msg)
End Sub
End Class
</code>
Motorklassen
Fil: Motor.vb
<code>
Public Class Motor
'Representerar en motor
Private mBeskrivning As String
Private mStatus As MotorStatus
Private mMotorId As Integer
'Konstruktor, kör när ny instans skapas
Sub New(ByVal motorId As Integer, ByVal beskrivning As String)
mMotorId = motorId
mBeskrivning = beskrivning
End Sub
Public ReadOnly Property MotorId() As Integer
Get
MotorId = mMotorId
End Get
End Property
Public Property Beskrivning() As String
Get
Beskrivning = mBeskrivning
End Get
Set(ByVal value As String)
mBeskrivning = value
End Set
End Property
Public Property Status() As MotorStatus
Get
Status = mStatus
End Get
Set(ByVal value As MotorStatus)
mStatus = value
End Set
End Property
Public Sub Upp()
'Kör motor med mMotorId upp
End Sub
Public Sub Down()
'Kör motor med mMotorId ner
End Sub
'Detta är texten som bl.a. visas i ComboBoxen när en
'instans av klassen motor läggs till i boxen.
Public Overrides Function ToString() As String
ToString = Beskrivning
End Function
End Class
</code>
Motorkontroll klassen
Fil: MotorController.vb
<code>
Public Class MotorController
'Detta är kontrollen som handhar styrningen av motorn
Private mMotor As Motor
Sub New(ByVal motor As Motor)
mMotor = motor
'Här kan t ex en uppkoppling mot PLC ske.
'Uppkopplingen lever så länge MotorControllern lever
Debug.Print("Motor {0} (id={1}) är uppkoplad mot PLC", mMotor.Beskrivning, mMotor.MotorId)
End Sub
'Du kanske vill avläsa motorstatus.
'Om du kör OPC kan du ju läsa av ett event när motorns status ändras
'Skulle kunna se ut ungefär så här
Private Sub MotorStatus_Changed(ByVal status As Integer)
Select Case status
Case 0
mMotor.Status = MotorStatus.Off
Case 1
mMotor.Status = MotorStatus.Running
Case 3
mMotor.Status = MotorStatus.Tripped
End Select
Debug.Print("Motor {0} (id={1}) status ändrad till {2}", mMotor.Beskrivning, mMotor.MotorId, mMotor.Status.ToString())
End Sub
Public ReadOnly Property Motor() As Motor
Get
Motor = mMotor
End Get
End Property
Public Sub Upp()
'Kör motor mMotor upp
'Skicka kommando till PLC för att köra mMotor.MotorId UPP
Debug.Print("Motor {0} (id={1}) körs upp", mMotor.Beskrivning, mMotor.MotorId)
'Simulera status
mMotor.Status = MotorStatus.Running
End Sub
Public Sub Ner()
'Kör motor mMotor ner
'Skicka kommando till PLC för att köra mMotor.MotorId NED
Debug.Print("Motor {0} (id={1}) körs ner", mMotor.Beskrivning, mMotor.MotorId)
'Simulera status
mMotor.Status = MotorStatus.Running
End Sub
Public Sub Stopp()
'Stoppa motor mMotor
'Skicka kommando till PLC för att Stoppa mMotor.MotorId
Debug.Print("Motor {0} (id={1}) Stoppad", mMotor.Beskrivning, mMotor.MotorId)
'Simulera status
mMotor.Status = MotorStatus.Off
End Sub
End Class
</code>
Och en Enum för motorstatus
Fil: MotorStatus.vb
<code>
Public Enum MotorStatus
Off
Running
Tripped
End Enum
</code>Sv:påverka valt värde i combobox?
Sv: påverka valt värde i combobox?
Private Function GoToSection(ByRef filename As Scripting.TextStream, ByVal ParamArray SecName() As Object) As Boolean
Dim i As Short
Dim Data As String
On Error GoTo errorHandler
GoToSection = False
Do While Not filename.AtEndOfStream
Data = filename.ReadLine
For i = 0 To UBound(SecName)
If InStr(1, Data, UCase(SecName(i)), CompareMethod.Text) = 3 Then <----------------------
GoToSection = True
Exit Do
End If
Next i
Loop
Exit Function
errorHandler:
GoToSection = False
End Function
Sv:påverka valt värde i combobox?
Om din ini-fil ser ut såhär:
0=Ingen motor vald
1=motor 1=.HMI_KapMotor1Upp=.HMI_KapMotor1Ner
2=motor 2=.HMI_KapMotor2Upp=.HMI_KapMotor2Ner
så kommer första raden du kör split på se ut såhär:
s(0) = [0]
s(1) = [Ingen motor vald]
och andra:
s(0) = [1]
s(1) = [motor 1]
s(2) = [.HMI_KapMotor1Upp]
s(3) = [.HMI_KapMotor1Ner]
andra raden kommer att gå bra då vi läser de tre sista värderna (första är s(0) o ignorerar vi)
men första raden har ingen s(2) efter som den slutar efter s(1).
Testa att bara ta bort den raden från ini filen så kommer det nog att rullaSv: påverka valt värde i combobox?
Jag skapade metoden, Private Sub InitMotorComboBox(), där jag skapar instanser av klassen och fuller dem med hårdkodad info, där kan du byta ut hårdkodningen mot inlästa värden från din ini-fil.
Sv:påverka valt värde i combobox?
och se vad det står i Output fönstretSv: påverka valt värde i combobox?
1=motor 1=.HMI_KapMotor1Upp=.HMI_KapMotor1Ner
2=motor 2=.HMI_KapMotor2Upp=.HMI_KapMotor2Ner
3=motor 3=.HMI_KapMotor3Upp=.HMI_KapMotor3Ner
4=motor 4=.HMI_KapMotor4Upp=.HMI_KapMotor4Ner
5=motor 5
6=motor 6
7=motor 7
så fort jag bara tog bort 5,6 och 7 så fungerade det ju. dumt av mig. :D haha! Men tack så jattemycket för hjälpen. Änligen fungerar det!
Finns det något sätt jag ändå kan göra så att värdet "ingen motor vald" finns att välja? bara så ingen motor körs när man valt det.Sv:påverka valt värde i combobox?
efter
ComboMotorerKap.Items.Clear()
lägg in
ComboMotorerKap.Items.add("Ingen motor vald")
sen när du skall läsa av värdet (vid Upp/Ner knapparna)
Lägg först en koll att inte första värdet är valt
If Not ComboMotorerKap.SelectedIndex = 0 then
Dim m as motor
m = ComboMotorerKap.SelectedItem
bMotorUpp = CBool(True)
Call TcClientSync.WriteVar(m.Upp, bMotorUpp)
Else
'Ev felmeddelande
End if