DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

ChnListBox - Variablenübernahme vom SUD in das Hauptscript

Hallo zusammen,

ich nutze WinVista 32 Bit und DIAdem 10.2.
Ich habe mir einen wunderschönen Auswahldialog erstellt, ich dem ich den Anwender des Scripts Kanäle auswählen lassen möchte, die später gefiltert werden sollen.
Mein Problem ist nun, daß die Variablen zu den selektierten Kanälen im SUD funktionieren, ich aber nicht im Script darauf zugreifen kann!

Ich hab's auch schon über neue Variablen versucht, bin aber nicht der VBS-Experte, so daß ich nicht ausschließe, da etwas falsch gemacht zu haben.

Also. Im SUD habe ich mir aus der Hilfe einen Abfrage-Button eingebaut:

[code]Sub Button1_EventClick()
Dim This : Set This = Button1
Dim i
For i = 1 To ChnListBoxFilter.MultiSelection.Count
MsgBox "Selected channel: " & ChnListBoxFilter.MultiSelection(i).Text
Next

End Sub[/code]

- der funktioniert auch im Dialog hervorragend.
Sobald ich aber zurück ins Script gehe, sind die Variablen "ChnListBoxFilter" (Name meiner ChnListBox), als auch "ChnListFilter" (die ich in der ChnListBox definierte) nicht mehr bekannt. Genauso ist es andersherum: definiere ich eine Variable (wie z.B. "ChnListFilter") im Script, mag er die im Dialog nicht mehr. Auch nicht als GlobalDim("ChnListFilter").

Über GV(i) (mit for-Schleife über ChnListBoxFilter.MultiSelection.Count) als "Exportvariable" kann ich die ausgewählten Kanäle ebenfalls nicht ins Script übernehmen.
Was mache ich falsch?

Viele Grüße
Yeti



PS: ich habe das schon mal mit ChnGet(0, 1, T4) umgesetzt - funktioniert hervorragend, aber ich hätte gern ein größeres Auswahlfenster als das dort angebotene, also wollte ich das eben selber bauen. Und nun verzweifle ich an so einer "Kleinigkeit"...
0 Kudos
Message 1 of 3
(3,886 Views)
Hallo Yeti,

der Datenaustausch zwischen SUD-Dialogen und dem aufrufenden Script erfolgt über global definierte Variablen oder durch einen Übergabeparameter beim aufrufen des Dialoges. In der Toolbar "Dialogvorlagen" im Modul SCRIPT ist der 2. Eintrag ein Beispiel für den Austausch per globaler Variable (hier die globalen Hilfsvariablen T1 und T2). Ich habe noch ein Beispiel angehängt, dass die 2. Variante zeigt; dabei werden zwar andere Infos ausgetauscht, aber das Prinzip ist erkennbar. Hier noch ein Hinweis dazu:

- Im VBScript definiert man ein Classe mit den notwendigen Variablen, die ausgetauscht werden sollen
- Im SUD holt man sich die Infos im Dialog_EventInitialize() mit Dialog.GetArgument  
- Beim Beenden weißt man die Daten zu un übergibt sie mit Dialog.SetArgument
- Damit sind sie dann im VBScript verfügbar

Gruß
Walter





0 Kudos
Message 2 of 3
(3,875 Views)
Hallo Walter,

danke für Deine Antwort!!

Mit den DIAdem-TV(i)-Variablen hab ich's jetzt hingekriegt:

Im Hauptscript:
"Call GlobalDim("ChnListAnz") '--- Variable für Auswahlbox ChnListBoxFilter anmelden

[...]

Call SudDlgShow("ChnChooseFilter", "D:\DIAdem\Aut\Auswertung")
If (DlgState="IDOk") Then
'---### Kanäle filtern
'Call MsgBoxDisp(ChnListAnz) '-- Kontrolle
For i = 1 To ChnListAnz
'Call MsgBoxDisp(TV(i)) '-- Kontrolle
Call CHNFILTCALC("[1]/time",TV(i),"/IIR","IIR","Butterworth","Low pass",8,5,0,0,1.2,25,"Hamming",0,0) '--- Filtern
T2=mid(TV(i),5) '---ohne "[1]/"
'Call MsgBoxDisp(T2) '-- Kontrolle
Call ChnPropValSet("[1]/IIR","name","IIR " & T2) '--- umbenennen in IIR Kanal
Next
Else
Call MsgBoxDisp("Abgebrochen, zurück zur Auswahl")
Call DataDelAll(1)
Start
End If"

Im SUD hinter dem "Laden"-Button:
"Sub Laden_EventClick()
Dim This : Set This = Laden
Dim i
ChnListAnz = ChnListBoxFilter.MultiSelection.Count
For i = 1 To ChnListAnz
TV(i)=ChnListBoxFilter.MultiSelection(i).Text
Next
Dialog.OK '-- Dialog schließen
End Sub"

Läuft! 🙂


Zu "Dialog_EventInitialize()", "Dialog.GetArgument" und "Dialog.SetArgument" - wie gesagt, so gaanz warm bin ich mit dem objektorientierten Programmieren unter VBS noch nicht geworden, die AUT-Programmierung lag mir besser. Ich hab da ja nicht ständig mit zu tun, nur alle Jubeljahre mal....

Grüße
Yeti


PS: Gibt's hier irgendwie im Board die Möglichtkeit, die Posts gescheit zu formatieren? Bin irgendwie phpBB-verwöhnt.

Message Edited by Yeti des Chaos on 02-18-2008 05:48 AM
0 Kudos
Message 3 of 3
(3,847 Views)