Toon posts:

[ACtivex] Variabele van browser naar control

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
<OBJECT ID="UserControl1"
CLASSID="CLSID:EC59E01F-62A7-4016-AFC1-9108EB2A9310"
CODEBASE="Project1.CAB#version=1,0,0,0">
  <param name="test" value="ja">
</OBJECT>


Bovenstaande code gebruik ik om een activex control in mijn browser te openen. Hoe kan ik nu in VB 6.0 de waarde van parameter test achterhalen?????

Verwijderd

Je moet gebruik maken van de Property Bag van je ActiveX control. Zie ook http://www.experts-exchange.com/Visual_Basic/Q_20265678.html

Enjoy :)

Verwijderd

Topicstarter
Heb ik geprobeerd krijg echter de melding:
Object variable or with block veriable not set
Dit is mijn code
code:
1
2
3
4
5
6
Private Sub Command1_Click()
Text1.Text = propbag.ReadProperty("test", "none")
End Sub
Private Sub UserControl_ReadProperties(propbag As PropertyBag)
Text1.Text = propbag.ReadProperty("test", "none")
End Sub

Verwijderd

Je kan de property bag uitlezen in het ReadProperties event, waarbij het PropBag opject als parameter wordt meegegeven. Buiten dat event bestaat dit object namelijk niet. Zet dus in dit event globale variabelen (of beter: properties binnen jouw classe) met de waarden uit de property bag.

Zie http://msdn.microsoft.com...nsistentwithcontainer.asp
Controls on World Wide Web Pages
A control on an HTML page is specified using the HTML <OBJECT> and </OBJECT> tags. When the HTML is processed, the control is created and positioned. If the <OBJECT> tag includes any <PARAM NAME> attributes, the property values supplied with those attributes are passed to the control's ReadProperties event using the standard PropertyBag object, as discussed earlier in this topic.

Once the HTML page is active, the control's property values may also be set by scripts attached to events that occur on the page.

Note If there are no <PARAM NAME> attributes other than those that set extender properties, the control may receive an InitProperties event rather than a ReadProperties event. This behavior is dependent on browser implementation, and should not be relied on.
Succes :)

Verwijderd

Topicstarter
Hij laat initproperties en niet read properties. Met deze code moet het toch goed zijn
code:
1
test = propbag.ReadProperty("test", "none")

Verwijderd

Als test een globale variabele is, zou dit bij mijn weten echt moeten werken:
Visual Basic:
1
2
3
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    test = PropBag.ReadProperty("test", "none")
End Sub

Verwijderd

Topicstarter
Dat lijkt me ook. Maar hij komt echter niet bij de readProperties, maar bij InitProperties.
De code in HTML is:
code:
1
2
3
4
5
<OBJECT ID="UserControl1"
CLASSID="CLSID:F231DEA3-6C55-4E44-B7F2-4571901320E6"
CODEBASE="Project1.CAB#version=1,0,0,0">
<PARAM NAME="test" VALUE="My Cool Label Control">
</OBJECT>

Verwijderd

Wat bedoel je met "hij komt niet bij readProperties"? Hoe test je dat?

Verwijderd

Topicstarter
Met een msgbox

Verwijderd

Ik vraag me af of je een msgbox mag openen vanuit een ActiveX control. Probeer eens een label te vullen op het control zelf met een testwaarde ...

Verwijderd

Topicstarter
Het kan met een msgbox. Ik weet nu waar het aan ligt. Het ligt aan de security settings van IE. Initialise and script activex objecten not marked as safe. Deze staat nu op enabled en hij geeft een messagebox met read prop aan. Alleen nu heb ik een ander probleem. Voorheen liet hij een form met een button zien. Dat doet hij nu niet meer? Hoe kan dat dan!

Verwijderd

Dan weet ik het ook niet meer, helaas ... ik heb nog wel een heel verhaal hierover gevonden op het net incl voorbeeld, maar niets daarin wijst op wat er fout gaat. Misschien zie je nog iets dat ik over het hoofd zie. http://sunsite.iisc.ernet.in/virlib/activex/devvb/ch21.htm

Succes :)

Verwijderd

Verwijderd schreef op 24 december 2002 @ 15:00:
Het kan met een msgbox. Ik weet nu waar het aan ligt. Het ligt aan de security settings van IE. Initialise and script activex objecten not marked as safe. Deze staat nu op enabled en hij geeft een messagebox met read prop aan. Alleen nu heb ik een ander probleem. Voorheen liet hij een form met een button zien. Dat doet hij nu niet meer? Hoe kan dat dan!
Het gekke is dat als je met params werkt je opeens verplicht de maat van je activeX object moet meegeven in de tag:

code:
1
<OBJECT CLASSID="blaat" WIDTH="320" HEIGHT="81" ...
Pagina: 1