Ich verstehe das nicht :((

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Ich verstehe das nicht :((

Beitrag 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ü
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag 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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag 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ß).
Herzlich,
Tom
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Beitrag 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
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Beitrag von Muecke »

Hallo Tom,

ich schliesse immer so ab.

Code: Alles auswählen

oTxMenu:addItem( { oTxControl, NIL } ) 
Gruss Thomas
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag 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ü
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag 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!
Herzlich,
Tom
Antworten