ich schlage mich seit Beginn mit einem Problem herum, das ich - vermutlich mangels Erfahrung mit PARENT, SETAPPWINDOW usw - habe.
Mein Programm läuft mit einem XBPMenu() - Menü, das ich aus der CRT-Version übernommen habe (ein Umstieg auf DCMENU wäre möglich, aber Kunden lieben Bekanntes). In der Menubar öffne ich ein Modul mit einem DCSTATIC Window. Nach dem DCREAD läuft eine Prozedur ohne Fenster ab. In dieser Zeit soll das DCSTATIC-Fenster sichtbar bleiben. Das funktionniert aber nur, wenn die nachfolgende Prozedur in ein GET eingebettet wird (im Beispiel LISTE1()), anderfalls ist wieder das Menü sichtbar und der Kunde wundert sich, dass der das Menü nicht bedienen kann (Menü disabled).
Code: Alles auswählen
proc main
....
erzeugeMenuSystem(SetAppWindow():MenuBar()) // erzeugeMenuSystem ist selbstgeschriebene Prozedur: s.u.
do while nEvent <> xbeP_Close
nEvent := AppEvent(@mp1, @mp2, @oXbp)
oXbp:handleEvent(nEvent, mp1, mp2)
enddo
...
//Aufbau des Gesamt - Menüsystems
procedure erzeugeMenuSystem(oMenubar)
public mnStamm, mnBearbeiten, mnAusdrucke, mnDienstprog, mnUebernahme, mnProg, mnEnde
datopen()
***** Haupt - Menü STAMMDATEN **************
// Menü mnStamm erzeugen
mnStamm := XbpMenu():new(oMenuBar)
mnStamm:title := "~Stammdaten"
mnStamm:create()
....
proc xyz
@ 0,0 DCSTATIC TYPE XBPSTATIC_TYPE_TEXT SIZE wcol*wx+wx1,wrow*wy+wy1 parent ostatic1 OBJECT oStatic1 COLOR color1,color2
HEADLINES 2,w_rahmtext1,w_rahmtext2,w_rahmtext3,textfont1
@ 10,5 DCSAY "Es sind " +alltrim(str(ganzzahl))+" S„tze zu bearbeiten " SAYFONT textfont
@ 11.5,5 DCSAY "Soll die šbersicht erstellt werden J/N" get antwort pict "!" valid {||antwort$ "JN",[b]liste1()}[/b] SAYFONT textfont
@ 14,5 DCSAY "Datei wird durchsucht - Bitte etwas Geduld "
fa=fa1-1
@ wrow-1-vv,0 DCPUSHBUTTON CAPTION 'OK' SIZE button1,1 FONT textfont1 ACTION {||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}
@ wrow-1-vv,(button1+3)*1 DCPUSHBUTTON CAPTION 'Abbruch' SIZE button1,1 FONT textfont1 ACTION {||DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList)}
lStatus := ReadGui(GetList,titelzeile)