DIAdem-Version: 11.2 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2010
Beiträge: 4
Registriert seit: Feb 2012
Kanalweitergabe von ComboBox zu Editbox
Hallo zusammen,
ich habe folgendes Problem und hoffe, dass ihr mir diesbezüglich weiterhelfen könnt.
Meine Daten aus dem Datenportal befinden sich in einer ComboBox.
Ich will jetzt einen der ca. 250 Kanäle auswählen und per Button in eine EditBox befördern.
Bin noch nicht so Diademerfahren und hoffe, dass ihr mir da weiterhelfen könnt.
Viele Grüße
01.02.2012, 15:35 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2012 15:37 von ReneG.)
DIAdem-Version: 2011 SP1 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2002
Beiträge: 15
Registriert seit: Jan 2012
RE: Kanalweitergabe von ComboBox zu Editbox
Hallo!
Versuche mal folgendes:
Sub ComboBox1_EventChange(ByRef This) 'Erzeugter Event-Handler
VariableEditbox = ComboBox1.Text
EditBox1.Refresh
End Sub
Beim Klick auf ein Element der ComboBox wird ja ein Event.Change ausgelöst. Das kann ausgenutzt werden um den Namen des selektierten Elements in die Variable deiner EditBox zu schreiben. Anschließend wird die Anzeige der EditBox neu aufgebaut.
Die Namen deiner Objekte musst Du natürlich entsprechend anpassen.
DIAdem-Version: 11.2 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2010
Beiträge: 4
Registriert seit: Feb 2012
RE: Kanalweitergabe von ComboBox zu Editbox
Erstmal Danke für die schnelle Antwort.
Hab deinen Vorschlag grad mal ausprobiert, funktioniert aber leider nicht...kann aber auch sein, dass ich irgendwas übersehe.
Vorallem wäre es super, wenn ich den Kanal anwählen könnte und dann mit Hilfe eines Button in die EditBox klicken (oder in eine andere Box, wäre auch denkbar)
DIAdem-Version: 11.2 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2010
Beiträge: 4
Registriert seit: Feb 2012
RE: Kanalweitergabe von ComboBox zu Editbox
Danke René, hab ich heut morgen noch hinbekommen :-), im Moment versuch ich mit einem weiteren Klick auf denselben Button eine weitere Editbox zu füllen...geht das irgendwie mit einer Schleife? oder haste da eine Idee? Ich habe quasi mehrere Editboxen, die ich nach und nach mit den Kanalnamen aus der Combobox füllen will und zwar immer durch mehrmaliges Klicken des Buttons.
Sorry, glaub meine Probs sind jetzt nicht so schwer, aber programmiere zum ersten Mal ein SKript von Grund auf.
Gruß
03.02.2012, 14:27 (Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2012 14:31 von ReneG.)
Du definierst eine Variable die du als Zähler nutzt, weist dann dem Dialog-Element mit dem Namen ("EditBox" & i) den ausgewählten Inhalt der ComboBox zu. Anschließend wird der Zähler um eins erhöht.
Das ist jetzt sehr rudimentär. So wird zum Beispiel ein Fehler auftreten wenn der Button öfter betätigt wird als das Editboxen existieren. Aber das ist ja hier nicht das Thema.
DIAdem-Version: 11.2 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2010
Beiträge: 4
Registriert seit: Feb 2012
RE: Kanalweitergabe von ComboBox zu Editbox
Hallo,
hört sich auf jeden Fall sehr gut an, werd ich Morgen gleich mal testen.
Vielen Dank.
Hab das inzwischen einfach mit je einem Button für jede EditBox gemacht (sind erstmal nur 3).
Das nächste Problem ist grad, dass ich nen Kanal habe, welcher entweder den Wert 0 oder 1 annimmt und ich quasi jedesmal von der Inhalt von 0 auf 1 springt den Wert eines anderen Kanals zu diesem Zeitpunkt festhalten will, zum Beispiel in einem neu angelegten Kanal.
Das bekomm ich momentan noch gar nicht hin, aber vielleicht kennst du da nen einfachen Weg?
DIAdem-Version: 2011 SP1 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2002
Beiträge: 15
Registriert seit: Jan 2012
RE: Kanalweitergabe von ComboBox zu Editbox
OK, quick and dirty:
Dim i, j
i = 2
j = 1
Do Until i > ChnLength("Ereignis")
If ChV(i,"Ereignis") > ChV(i-1,"Ereignis") Then
ChV(j,"Ergebnis") = ChV(i,"Messdaten")
j = j + 1
End If
i = i +1
Loop
ChnLength("Ergebnis") = j -1
Ich gehen mal davon aus das die Kanäle bereits existieren (Ereignis, Messdaten, und Ergebnis).
Schleifenzähler i für das zeilenweise Auslesen von Ereignis und Messdaten und j für den Ergebnis-Kanal.
Da du ja nur die zwei Zustände 0 und 1 überwachen und beim Wechsel von 0 auf 1 den Wert übertragen möchtest fange ich in der zweiten Zeile (i) an und schaue nach was in der Zeile 1 (i-1) steht.
Ist der Wert in Zeile 2 größer als in Zeile 1 (= Sprung von 0 auf 1) werden die Messdaten aus Zeile 2 (i) in den Ergebniskanal geschrieben (Zeile j) und der Zähler j erhöht.
Wenn kein Wechsel zwischen 0 und 1 stattgefunden hat wird nur der Schleifenzähler i erhöht und das ganze beginnt von vorn bis die Kanallänge des Ereignis-Kanals erreicht wird.
Ich habe in dem Beispiel als äußere Schleife mal die Do ..Loop Variante eingesetzt so das Du mal beide Varianten anschauen kannst.