Seite 1 von 1

Ich verstehe das nicht :((

Verfasst: Do, 13. Sep 2007 23:49
von Tom
Mmh.

Wir nutzen TX Text Control als Ersatz für Fließtextfelder. Damit steht eine komfortable Textverarbeitung zur Verfügung. Das Ergebnis wird als RTF im Memo gespeichert. So weit, so gut. Nun hatten wir vorher in MLEs Kontextmenüs (rechte Maustaste), über die man diverse Clipboard-Funktionen und noch ein paar andere Sachen erreichen konnte. Das hätten wir gerne im TX (Active X) auch. Ich erzeuge also zunächst mein TX Text Control auf der DialogArea eines Parents. Klappt alles:

Code: Alles auswählen

oTxControl := XbpActiveXControl():new( oDlgArea )
oTxControl:CLSID := 'TIS.TX.TextControl.13'
oTxControl:license := 'haha,dieverrateichhiernatürlichnicht'
oTxControl:create(oDlgArea,,{0,hstatus},{w,htext} )
usw.
Dann baue ich das Kontextmenü dran:

Code: Alles auswählen

oTxMenu := XbpMenu():new( oTxControl):create()
oTxMenu:AddItem( {"Formatieren (Schrift)",{ || oTxControl:FontDialog(),SetAppFocus(oTxControl) } } )
oTxMenu:AddItem( {NIL, NIL, XBPMENUBAR_MIS_SEPARATOR, 0  } )
oTxMenu:AddItem( {"Löschen",{ || oTxControl:Clip(4) } } )
oTxMenu:AddItem( {"Ausschneiden",{ || oTxControl:Clip(1) } } )
oTxMenu:AddItem( {"Kopieren",{ || oTxControl:Clip(2) } } )
oTxMenu:AddItem( {"Einfü

Verfasst: Fr, 14. Sep 2007 0:13
von AUGE_OHR
hi,

Frage : ist das pop-up menu ownerdraw ?

wenn ja welche hotfixe hast du installiert ?

wenn keine hotfixe, dann probier doch mal activeX+XbpListbox+pop-up.
sollte es da das selbe Problem geben brauchst du einen hotfix (ich glaube
No #3)

gruss by OHR
Jimmy

Verfasst: Fr, 14. Sep 2007 14:45
von Tom
Hallo, Jimmy.

Wenn es Ownerdraw wäre, gäbe es einen fünften Parameter bei :AddItem (XBPMENUBAR_MIA_OWNERDRAW). Ist es also nicht. Und ich habe, glaube ich, alle 11 Hotfixe eingespielt (und auch in der richtigen Reihenfolge, soweit ich weiß).

Verfasst: Fr, 14. Sep 2007 18:46
von Günter Beyes
Hallo Tom,

an welcher Stelle hast du das manuelle Enablen versucht? Gegebenenfalls wäre der ::beginMenu-Eventhandler einen Versuch wert.

Viele Grüße,
Günter

Verfasst: Fr, 14. Sep 2007 19:13
von Muecke
Hallo Tom,

ich schliesse immer so ab.

Code: Alles auswählen

oTxMenu:addItem( { oTxControl, NIL } ) 
Gruss Thomas

Verfasst: Fr, 14. Sep 2007 22:04
von AUGE_OHR
hi,
Tom hat geschrieben: Wenn es Ownerdraw wäre, gäbe es einen fünften Parameter bei :AddItem (XBPMENUBAR_MIA_OWNERDRAW). Ist es also nicht. Und ich habe, glaube ich, alle 11 Hotfixe eingespielt (und auch in der richtigen Reihenfolge, soweit ich weiß).
auf deinen Source hatte ich gar nicht richtig geachtet sondern nur an das
Problem "leere" pop-up Box.


btw ist der pop-up aufruf so richtig ?

Code: Alles auswählen

oTxMenu:AddItem( {"Einfü

Verfasst: Mi, 19. Sep 2007 16:06
von Tom
Gefunden. Das Menü darf nicht das Control als Parent haben, sondern dessen Parent (in diesem Fall die DrawingArea des Statics, auf dem das Control sich befindet). Außerdem - wichtiger - muß im Popup-Codeblock ebenfalls dieser Parent angegeben werden:

Code: Alles auswählen

oTxMenu := XbpMenu():new( [color=red]oDlgArea [/color]):create()
...
oTxControl:RbDown  := { |mp1, mp2, obj|oTxMenu:PopUp ( [color=red]oDlgArea[/color], mp1 , 1 ) }
Warum das so ist, ist mir nicht ganz transparent, aber jedenfalls funzt es so. Danke für die Unterstützung!