ich habe bei einem Kunden ein Problem. Eine Applikation startet nicht. Es erscheint keine Maske gar nichts. Im Taksmanager taucht die exe 3x auf und kann auch nicht beendet werden.
Alle andere Module laufen ohne Probleme. Dieses Phänomen taucht nur bei diesem Kunden auf. Win7.
Hat jemand irgendeine Idee? Hier die proc main
Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"
#include "Inkey.ch"
#Define CRLF Chr(13)+Chr(10)
Proc Main()
LOCAL nEvent, mp1, mp2, aFelder:={}, aSpwatch, aDb:={}, cNr:=""
LOCAL oDlg, oXbp, drawingArea, aEditControls := {}, cArdek:="", oCombo
If File("sprinter32.exe")
// Abfrage auf Festplatte ob OK
lGo:=ZugriffSchutzLesen()
If lGo=.f.
Return
EndIf
Endif
// Sperrdatenbank prüfen
use Sperre New Exclusive
Set Index to "Sperre.cdx"
Sperre->(OrdSetFocus("db"))
If Sperre->(DbSeek(padr("spkonst",20)))
If Sperre->Ein_Aus="E"
Msgbox("SPKONST ist in Bearbeitung! - Gesperrt","Datenbankprüfung")
Close Sperre
Quit
Else
Sperre->Ein_Aus:="E"
EndIf
Else
Sperre->(DbAppend())
Sperre->Datenbank:="spkonst"
Sperre->Ein_Aus:="E"
EndIf
Close Sperre
AAdd(aDb,"spkonst")
// Aktualisierung Spwatch.Dbf
aSpwatch:={"Konstanten","Endnummervergabe","E","",0}
AnhangSpwatch(aSpwatch)
oDlg := XbpDialog():new( SetAppWindow(), , {150,200}, {440,200}, , .F.)
oDlg:taskList := .T.
oDlg:title := "Endnummernvergabe"
oDlg:setFontCompoundName( "9.Arial" )
oDlg:create()
CenterControl(oDlg)
drawingArea := oDlg:drawingArea
drawingArea:setFontCompoundName( "8.Arial" )
use Spkonst New
AAdd(aFelder,{"enrman",Spkonst->EnrMan})
AAdd(aFelder,{"enr3st",Spkonst->Enr3st})
Close Spkonst
oStatic := XbpStatic():new( drawingArea,, {20, 120}, {320, 20} )
oStatic:options := XBPSTATIC_TEXT_LEFT
oStatic:caption := "Endnummervergabe 'Automatisch (A) oder Manuell (M)'"
oStatic:Create()
// Combobox mit aufklappbarer Listbox
oCombo1 := XbpCombobox():new( drawingArea, , {360,80}, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oCombo1:type := XBPCOMBO_DROPDOWNLIST
oCombo1:tabStop := .T.
oCombo1:create()
// Datenlink von Eingabefeld zu LOCAL Variable
oCombo1:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[1][2], aFelder[1][2] := x ) }
oCombo1:XbpSLE:setData()
bAction := {|mp1, mp2, obj| obj:XbpSLE:getData() }
// Codeblock für Auswahl durch Up und Down Taste
oCombo1:ItemMarked := bAction
// Codeblock für Auswahl durch linken Mausklick in der Listbox
oCombo1:ItemSelected := bAction
// Daten aus Array in Combobox übertragen, Array verwerfen
oCombo1:addItem( "A" )
oCombo1:addItem( "M" )
oCombo1:setdata(aFelder[1][2])
oStatic := XbpStatic():new( drawingArea,, {20, 090}, {320, 20} )
oStatic:options := XBPSTATIC_TEXT_LEFT
oStatic:caption := "Die letzten Stellen der Artikelnummer ?stellig '2/3'"
oStatic:Create()
// Combobox mit aufklappbarer Listbox
oCombo := XbpCombobox():new( drawingArea, , {360,50}, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oCombo:type := XBPCOMBO_DROPDOWNLIST
oCombo:tabStop := .T.
oCombo:create()
// Datenlink von Eingabefeld zu LOCAL Variable
oCombo:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[2][2], aFelder[2][2] := x ) }
oCombo:XbpSLE:setData()
bAction := {|mp1, mp2, obj| obj:XbpSLE:getData() }
// Codeblock für Auswahl durch Up und Down Taste
oCombo:ItemMarked := bAction
// Codeblock für Auswahl durch linken Mausklick in der Listbox
oCombo:ItemSelected := bAction
// Daten aus Array in Combobox übertragen, Array verwerfen
oCombo:addItem( "2" )
oCombo:addItem( "3" )
oCombo:setdata(aFelder[2][2])
oXbp := XbpPushButton():new( drawingArea, , {180,40}, {90,20}, { { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE }, { XBP_PP_FGCLR, -58 } } )
oXbp:caption := "Abbruch"
oXbp:tabStop := .T.
oXbp:default:=.t.
oXbp:create()
oXbp:activate := {|| PostAppEvent( xbeP_Close ) }
oXbp := XbpPushButton():new( drawingArea, , {280,40}, {90,20}, { { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE }, { XBP_PP_FGCLR, -58 } } )
oXbp:caption := "Speichern"
oXbp:tabStop := .T.
oXbp:default:=.t.
oXbp:create()
oXbp:activate := {|| Speichern(aFelder,"",aSpwatch),PostAppEvent( xbeP_Close ) }
oDlg:show()
SetAppFocus(oCombo1)
nEvent := xbe_None
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
Freigabe(aDb)
oDlg:destroy()