Menu im Dialogfenser - how? [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Menu im Dialogfenser - how? [erledigt]

Beitrag von Wolfgang_B »

Mahlzeit,
muß mich wieder mal als relativer Anfänger outen ...

Ich möchte in einem Dialogfenster ein Menü integrieren. Mit dem Beispiel in der Hilfe komme ich leider nicht weiter. Ich habs mal mit folgendem Code versucht, leider ohne Erfolg. Das Menü erscheint im Dialogfenster nicht ...

Kann mir bitte mal jemand auf die Sprünge helfen?

Danke!

Code: Alles auswählen

FUNCTION OPTIONEN_xxx(  )
	
	oDlg := XbpDialog():new( SetAppWindow():drawingArea , , , {500,300} , , .T. )
	oDlg:taskList := .T.
	oDlg:close := {|| oDlg:destroy()  }
	oDlg:title := "xxx"
	oDlg:icon  := ICON_APPLICATION
	oDlg:create()

	drawingArea := oDlg:drawingArea
	drawingArea:setFontCompoundName( "10.Arial" )

	CenterControl( oDlg )
	SetAppFocus( oDlg )

	// Create XbpMenubar in the dialog
      oMenuBar     := oDlg:menuBar()

      // Create submenu and specify the menu bar as parent
      oMenu        := XbpMenu():New( oMenuBar ):create()
      oMenu:title  := "~SubMenu"
      oMenu:addItem( { "~löschen ", {|| DELETE_xxx() } } )
      oMenu:addItem( { "~drucken",  {|| PRINT_xxx()} } )

      // Attach submenu to menu bar
      oMenubar:addItem( { oMenu, NIL } )
   	
   DO WHILE nEvent != xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      oXbp:HandleEvent( nEvent, mp1, mp2 )
   ENDDO
   
RETURN(NIL)
// ENDFUNCTION OPTIONEN_xxx()
Zuletzt geändert von Wolfgang_B am Sa, 05. Jan 2019 18:18, insgesamt 1-mal geändert.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Menu im Dialogfenser - how?

Beitrag von mini990 »

Hallo,
probiere es mal so.....
Das Additem muss imho vor dem XbpMenu new kommen

Gruß Stefan

Code: Alles auswählen

oMenuBar := oDlg:menuBar()
oMenubar:addItem( {oMenu, NIL} )
oMenu := XbpMenu():new( oMenuBar )
oMenu:title := "~Arzneimittel"
oMenu:create()
oMenu:addItem( { "~Ifap Datenbank"  , {|| IFAP()  } } )
oMenu:addItem( { "~Eigene Medikamente"   , {|| eigenmed()  } } )
oMenu:addItem( { "~Sprechstundenbedarf"    , {|| sprechbedarf()   } } )
oMenu:addItem( { "~Update Ifap"    , {|| DUMMY()   } } )
oMenu:addItem( { "Freischaltung Ifap"    , {|| DUMMY()   } } )
oMenubar:addItem( {oMenu, NIL} )
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Menu im Dialogfenser - how?

Beitrag von Wolfgang_B »

Hallo Stefan,
tut sich leider nichts ... :(
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Menu im Dialogfenser - how?

Beitrag von Tom »

Bei mir erzeugt dieser Code (nach kleinen kosmetischen Korrekturen) ein Fenster mit Menü, aber modale Child-Fenster können meines Wissens keine Menüs enthalten, vielleicht liegt's daran.

Code: Alles auswählen

FUNCTION Main()
LOCAL oDlg, nEvent := 0, drawingArea

  oDlg := XbpDialog():new( AppDeskTop() , , , {500,300} , , .T. )
  oDlg:taskList := .T.
  oDlg:close := {|| oDlg:destroy()  }
  oDlg:title := "xxx"
  oDlg:create()

  drawingArea := oDlg:drawingArea
  drawingArea:setFontCompoundName( "10.Arial" )

  CenterControl( oDlg )
  SetAppFocus( oDlg )

  // Create XbpMenubar in the dialog
      oMenuBar     := oDlg:menuBar()

      // Create submenu and specify the menu bar as parent
      oMenu        := XbpMenu():New( oMenuBar ):create()
      oMenu:title  := "~SubMenu"
      oMenu:addItem( { "~löschen ", {|| MsgBox('1') } } )
      oMenu:addItem( { "~drucken",  {|| MsgBox('2')} } )

      // Attach submenu to menu bar
      oMenubar:addItem( { oMenu, NIL } )

   DO WHILE nEvent != xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      oXbp:HandleEvent( nEvent, mp1, mp2 )
   ENDDO

RETURN(NIL)
Herzlich,
Tom
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Menu im Dialogfenser - how?

Beitrag von Herbert »

Wieder mal Zeit auf den Design Guide hinzuweisen. Da stehen doch recht praktische Regeln drin. Wurde überarbeitet und erscheint ganz gut.
https://docs.microsoft.com/en-us/window ... guidelines

Menüs werden in Child-Fenstern nicht toleriert.
https://docs.microsoft.com/en-us/window ... bout-menus

Wenn schon, eine Toolbar, die mit Buttons funktioniert.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Menu im Dialogfenser - how?

Beitrag von Wolfgang_B »

Herzlichen Dank! - Funktioniert!

Das Problem war das "Child Fenster", welches, wenn ich es richtig verstanden habe, durch "oDlg := XbpDialog():new( SetAppWindow():drawingArea , , , {500,300} , , .T. )" created wurde. So ganz habe ich das mit den Fenstern " AppDeskTop()" und "SetAppWindow():drawingArea" offensichtlich noch nicht begriffen.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Menu im Dialogfenser - how?

Beitrag von Wolfgang_B »

Toolbar habe ich sonst immer verwendet. Wollte hier mal was Neues ausprobieren...
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Antworten