Hi,
ich probiere gerade ein Menuitem in einem Menubar hinzuzufügen. Das klappt auch, aber wenn ich dann das Menue herunterklappen will, dann kommt eine Fehlermeldung, die auf eine fehlerhafte Arrayindizierung hinweist. Das ist auch verständlich, weil ich ja im Betrieb einen Eintrag hinzufüge. Es gibt sicherlich irgendeine Funktion unter express++ mit der man das korrigieren kann, nach einem :insItem(). Ich kann aber nichts finden.
kann mir jemand auf die Sprünge helfen?
Menueitem dynamisch hinzufügen/wegnehmen
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21197
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Menueitem dynamisch hinzufügen/wegnehmen
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Menueitem dynamisch hinzufügen/wegnehmen
Hallo, Manfred.
Ich arbeite mit DelItem() und AddItem(), um bestimmte Menüs, die mit eXpress++ erzeugt wurden, benutzerbezogen zu aktualisieren. Das funktioniert einwandfrei.
Ich arbeite mit DelItem() und AddItem(), um bestimmte Menüs, die mit eXpress++ erzeugt wurden, benutzerbezogen zu aktualisieren. Das funktioniert einwandfrei.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21197
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Menueitem dynamisch hinzufügen/wegnehmen
Hi Tom,
mit additem habe ich es ja anfänglich probiert, aber dann wird es ja immer hinten angefügt. Dort steht aber schon ein Eintrag "Beenden". Außerdem wollte ich die neuen Einträge zwischen Seperatoren setzen, die auch schon vorhanden sind. Aber eigentlich hast Du Recht. Dann packe ich die offenen Programme einfach hinter Beenden. Ist ja egal....
mit additem habe ich es ja anfänglich probiert, aber dann wird es ja immer hinten angefügt. Dort steht aber schon ein Eintrag "Beenden". Außerdem wollte ich die neuen Einträge zwischen Seperatoren setzen, die auch schon vorhanden sind. Aber eigentlich hast Du Recht. Dann packe ich die offenen Programme einfach hinter Beenden. Ist ja egal....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Menueitem dynamisch hinzufügen/wegnehmen
Hallo, Manfred.
Ich wollte eigentlich darauf hinaus, dass es auch mit InsItem() funktionieren müsste. Zeig mal ein bisschen Code.
Ich wollte eigentlich darauf hinaus, dass es auch mit InsItem() funktionieren müsste. Zeig mal ein bisschen Code.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21197
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Menueitem dynamisch hinzufügen/wegnehmen
Hm,
biddeschöön
Sobald ich auf Datei klicke, knallt es mit besagter Meldung.
biddeschöön
Code: Alles auswählen
#include "appevent.ch"
#include "dcdialog.ch"
#include "dcgra.ch"
#include "main.ch"
#include "nls.ch"
#include "xbp.ch"
#include "q:\include\inkey.ch"
#pragma Library( "XBTBASE1.LIB") // wird dadurch in keinem
#pragma Library( "XBTBASE2.LIB") // Projektfile mehr benötigt als Angabe
#pragma Library( "XppUI2.lib" ) // für den XbpPrintDialog()
#pragma Library( "dclipx.lib" )
#pragma Library ("q:\zusaetze_gui\allgemein\mk_zusaetze.lib")
********************************************************************************
PROCEDURE appsys()
RETURN
********************************************************************************
PROCEDURE main()
LOCAL getlist := {}
LOCAL GetOptions
LOCAL oDateiMenu := NIL
LOCAL oHilfeMenu := NIL
LOCAL oMenu1 := NIL
LOCAL oMenuBar := NIL
LOCAL oSeparator := NIL
MEMVAR oHauptDialog
MEMVAR oMessage
MEMVAR oPruefen
MEMVAR oSysPara
oMessage := nachricht():new()
oPruefen := pruefen():new()
oSysPara := systemParameter():new()
SetLocale( NLS_ICURRENCYEURO, "1" )
SetLocale( NLS_SCURRENCY, Chr(213) )
DCMENUBAR oMenuBar;
ID 999;
OWNERDRAW;
TITLE "Menuebar"
//------------------------------------------------------------------------------
DCSUBMENU oDateiMenu;
PARENT oMenuBar;
PROMPT "~Datei";
TITLE "Datei"
DCMENUITEM oSeparator;
PARENT oDateiMenu;
SEPARATOR
DCMENUITEM oSeparator;
PARENT oDateiMenu;
SEPARATOR
DCMENUITEM "~Beenden";
ACTION {|| IF(AppQuit("",.T.,"Programmende"),DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList),NIL)};
PARENT oDateiMenu;
TITLE "Beenden"
//------------------------------------------------------------------------------
DCSUBMENU oMenu1;
PARENT oMenuBar;
PROMPT "~Menue1";
TITLE "Menue1"
DCMENUITEM "~Unterprogramm";
ACTION {|| pruefeFenster(oDateiMenu,"neu"),unterprogramm(),pruefeFenster(oDateiMenu,"loeschen") };
PARENT oMenu1;
TITLE "Unterprogramm"
//------------------------------------------------------------------------------
DCSUBMENU oHilfeMenu;
PARENT oMenuBar;
PROMPT "~Hilfe";
TITLE "Hilfe"
DCMENUITEM oSeparator;
PARENT oHilfeMenu;
SEPARATOR
DCMENUITEM "~Info";
ACTION {|| info() };
PARENT oHilfeMenu;
TITLE "Info"
//------------------------------------------------------------------------------
DCGETOPTIONS;
ABORTQUERY MSG {|| AppQuit("",.T.,"Programmende mit ESC") };
AUTORESIZE;
BORDER XBPDLG_SIZEBORDER;
CLOSEQUERY MSG {|| AppQuit("",.T.,"Programmende über X-Button") };
ICON ICON_APPLICATION;
PIXEL;
TITLE TokenUpper(SubStr(oSysPara:cProgrammName,1,Rat(".",oSysPara:cProgrammName)-1)) + " Benutzer:"
DCREAD GUI;
EVAL {||oHauptdialog:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED)};
OPTIONS GetOptions;
PARENT @oHauptDialog
RETURN
********************************************************************************
PROCEDURE info()
RETURN
********************************************************************************
PROCEDURE pruefeFenster(oDateiMenu,lModus)
IF Upper(lModus) == "NEU"
oDateiMenu:insItem(2,{"~Menue1",NIL,0,XBPMENUBAR_MIA_OWNERDRAW})
altd()
ELSE
altd()
ENDIF
RETURN
********************************************************************************
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!