doppelter Codeblock wie bei oMenu:addItem()

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

doppelter Codeblock wie bei oMenu:addItem()

Beitragvon AUGE_OHR » So, 02. Sep 2012 11:05

hi,

ich möchte ein Menu dynamisch aufbauen und die Auswahl weiter verwenden.
Code: Alles auswählen
LOCAL xValue := 0

FOR i := 1 TO nLen
   cKey     := oClickBtn:ButtonMenuItem:aMenuItems[i][2]
   cCaption := oClickBtn:ButtonMenuItem:aMenuItems[i][3]   

   bBlock := { '"+cCaption+"',{ || xValue := Tumal('"+cKey+"'), lExit := .T. } }"
   ::oMenu:AddItem(&bBlock)
NEXT

::oMenu:PopUp ( oClickBtn, {400,400}, 2 , XBPMENU_PU_DEFAULT )

nEvent := xbe_None
DO WHILE !lExit
   nEvent := AppEvent ( @mp1, @mp2, @oXbp )
   do case
      case nEvent == xbeP_Quit
         QUIT   // AppQuit()
   OTHERWISE
      oXbp:HandleEvent ( nEvent, mp1, mp2 )
   ENDCASE
ENDDO
TONE(1234)   // bin raus
? xValue
RETURN

FUNCTION Tumal(cKey)
Msgbox(cKey)
RETURN cKey
er baut damit ein Menu auf. Die Caption ist "richtig" und der Key wird in der Msgbox() ebenfalls "richtig" angezeigt.
nun gebe ich ja cKey zurück ... aber es kommt nicht an ... kein TONE() ... :(

ich hänge also noch in der WHILE !lExit Schleife ... hm ... ok also mal als PRIVATE
jetzt komm ein TONE() aber er sagt immer noch 0 obwohl die MsgBox() es vorher richtig anzeigte ... hm ... auch die dann als PRIVATE

ok jetzt "stimmt" das Ergebniss aber die beiden PRIVATE gefallen mir nun überhaupt nicht :banghead:

geht das nicht irgendwie eleganter ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10260
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Zurück zu OOP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast