Har en VB6 app där jag har lagt in egna OCX-komponenter som i sin tur tar emot data via MSComm-kontrollen. Nackdelen är att dessa OCX´er är beroende av applikationens processortid. Dvs om applikationen får mycket att göra ex. en seg exekvering av en SQL-sats via ADO så får jag fel i respektive com-port (buffert overflow) då dom inte får någon processortid att bearbeta den inkommande datan. Du måste flytta det till en egen tråd, och det är allt annat än enkelt i vb.. Sök lite på nätet om vb 6 och trådning så kanske du hittar något. (Threads på engelska) Du kan lösa det genom att köra koden i en ActiveX-exe. Finns ett exempelprojekt (samt beskrivet i hjälpen). Testa att sök på Coffee(-någonting) i hjälpen, exemplet heter något åt det hållet. Okej det verkar ju som om ActiveX-Exe verkar vara lösningen då den körs "out-of-process". Du borde kunna lägga OCX:en på ett dolt formulär i ActiveX-exe:n. När du taget emot data så skickar du händelser till "huvudprogrammet".Egen processortid för OCX
Min fråga är således, finns det något sätt att få dessa kontroller att leva sitt eget liv i värdprogrammet?Sv: Egen processortid för OCX
Sv: Egen processortid för OCX
/JohanSv:Egen processortid för OCX
Men hur skall man göra när man använder en OCX som ex. MSComm. Det verkar inte som att det går att köra ActiveX-Exe med ett formulär. Dvs jag kan inte på vanligt sätt släpa ut MSComm-kontrollen på ett formulär/kontroll. Prövade att deklarera kontrollen med WithEvents i min klass för ActiveX-Exe -projektet, men det vill sig inte.
Private WithEvents MSC As MSComm
Private Sub Class_Initialize()
'Detta fungerar inte
Set MSC = MSComm
'eller
Set MSC = New MSComm
End Sub
Så frågan är alltså hur jag kan använda MSComm i en ActiveX-Exe?
Har även testat med Timer-kontrollern utan att lyckas
Sv: Egen processortid för OCX
/Johan