hab das mal mit Semikolon ausgeschlossen. Dann wird kurz das Fenster angezeigt und wieder ausgeblendet wo dann im Debugfenster nichst steht und im Editor (PB4) Invalid Memory Access gezeigt wird und der rote Balken über End steht.
Das hatte ich auch anders versucht, indem ich das ControlGadget ausblenden wollte. Ging auch nicht so.
AD_USB2XX.OCX. Hier noch einmal der Sourc, den wir unter ICQ zusammen-
gebaut haben. Ich habe mit den Farben das noch etwas anders
eingefügt und das unsichtbare ContainerGadget ans Ende gestellt.
Code: Alles auswählen
;-TOP -- Grundgerüst von MK-Soft!
; Kommentar : Kleines Beispiel zur Anzeige 8 analoge Eingänge (endlos)
; Datei : Achtfach_Anzeige_analog.pb
; Version : 1.0
; Erstellt : 29.07.2006
; Geändert : Falko Lünsmann mit Hilfe von MK-Soft zu ActiveX-Controls
;- Includefiles
XIncludeFile "Global.pb"
XIncludeFile "AtlHelper.pb"
XIncludeFile "AdWrapper.pb"
;
Global LastError.l
Global LastMessage.s
;
If OpenWindow(0, 100, 100, 245, 225, "AD_USB 4 Version2XX",#PB_Window_SystemMenu )
SetWindowColor(0, RGB(250,0,0))
If CreateGadgetList(WindowID(0))
TextGadget(1, 30, 10, 70, 20, "AnalogIn 0"):TextGadget(2, 140, 10, 80, 20, "0.0",#PB_Text_Border )
TextGadget(3, 30, 35, 70, 20, "AnalogIn 1"):TextGadget(4, 140, 35, 80, 20, "0.0",#PB_Text_Border )
TextGadget(5, 30, 60, 70, 20, "AnalogIn 2"):TextGadget(6, 140, 60, 80, 20, "0.0",#PB_Text_Border )
TextGadget(7, 30, 85, 70, 20, "AnalogIn 3"):TextGadget(8, 140, 85, 80, 20, "0.0",#PB_Text_Border )
TextGadget(9, 30, 110, 70, 20, "AnalogIn 4"):TextGadget(10, 140, 110, 80, 20, "0.0",#PB_Text_Border )
TextGadget(11, 30, 135, 70, 20, "AnalogIn 5"):TextGadget(12, 140, 135, 80, 20, "0.0",#PB_Text_Border )
TextGadget(13, 30, 160, 70, 20, "AnalogIn 6"):TextGadget(14, 140, 160, 80, 20, "0.0",#PB_Text_Border )
TextGadget(15, 30, 185, 70, 20, "AnalogIn 7"):TextGadget(16, 140, 185, 80, 20, "0.0",#PB_Text_Border )
For i= 1 To 15 Step 2
SetGadgetColor(i,#PB_Gadget_BackColor,RGB(0,128,254))
Next i
ContainerGadget(0, 0,0, 0, 0, #PB_Container_Raised ) ; This will be our container window, where the ActiveX will be rendered
CloseGadgetList()
Else
MessageRequester("Warnung","CreateGadgetList fehlgeschlagen!")
EndIf
;
COMLIB_Init()
If InitAtl() = 0
Debug LastMessage
End
EndIf
*Container = CreateControl("ADUSB2XX.ADUSB2XXCtrl.1", GadgetID(0))
If *Container = 0
Debug LastMessage
End
EndIf
*Control = GetControl(GadgetID(0))
If *Control = 0
Debug LastMessage
ReleaseControl(*Container)
End
EndIf
*ADUSB = QueryInterface(*Control, ?IID__DAD_USB2XX)
If *ADUSB = 0
Debug LastMessage
ReleaseControl(*Container)
End
EndIf
*ADUSB = QueryInterface(*Control, ?IID__DAD_USB2XX)
If *ADUSB = 0
Debug LastMessage
ReleaseControl(*Container)
End
EndIf
For i = 0 To 126
If Scan(*ADUSB, i)
Break 1
EndIf
Next i
If i < 127
IO=GetAnalogIO(*ADUSB, i, 1)
;Debug GetAnalogVoltage(*ADUSB, i, IO)
Else
MessageRequester("Fehler", "AD_USB2 nicht gefunden.")
EndIf
Repeat
Event = WindowEvent()
Delay(0); gib der CPU etwas Luft :D
SetGadgetText(2,StrD(GetAnalogVoltage(*ADUSB, 0, IO)))
SetGadgetText(4,StrD(GetAnalogVoltage(*ADUSB, 1, IO)))
SetGadgetText(6,StrD(GetAnalogVoltage(*ADUSB, 2, IO)))
SetGadgetText(8,StrD(GetAnalogVoltage(*ADUSB, 3, IO)))
SetGadgetText(10,StrD(GetAnalogVoltage(*ADUSB, 4, IO)))
SetGadgetText(12,StrD(GetAnalogVoltage(*ADUSB, 5, IO)))
SetGadgetText(14,StrD(GetAnalogVoltage(*ADUSB, 6, IO)))
SetGadgetText(16,StrD(GetAnalogVoltage(*ADUSB, 7, IO)))
;Debug GetAnalogVoltage(*ADUSB, i, IO) ; i entspricht der Kanalnummer
Until Event = #PB_Event_CloseWindow
Close(*ADUSB)
;ReleaseInterface(*ADUSB)
;ReleaseControl(*Container)
CloseWindow(0) ; Don't forget this one, else the program will crash
EndIf
End
;- DataSections AD_USB2XX
DataSection
IID__DAD_USB2XX: ; BFD9E61F-75C4-4B33-8949-73A64F014514
Data.l $BFD9E61F
Data.w $75C4,$4B33
Data.b $89,$49,$73,$A6,$4F,$01,$45,$14
IID__DAD_USB2XXEvents: ; 9A894BB7-0F68-429D-A30A-FCE4F6379D78
Data.l $BFD9E61F
Data.w $75C4,$4B33
Data.b $89,$49,$73,$A6,$4F,$01,$45,$14
EndDataSection