منظمة قانون التطور - Evolution Law Organization
موضوع بعنوان :مشكلة في syser
الكاتب :LEO


0121 03:04:18102 :: Traceback (most recent call last):

0121 03:04:18102 ::   File "networkModule.py", line 239, in SetGamePhase

0121 03:04:18102 ::   File "game.py", line 98, in __init__

0121 03:04:18102 ::   File "interfaceModule.py", line 286, in MakeInterface

0121 03:04:18102 ::   File "interfaceModule.py", line 170, in __MakeWindows

0121 03:04:18102 ::   File "uiInventory.py", line 272, in __init__

0121 03:04:18102 ::   File "uiInventory.py", line 393, in __LoadWindow

0121 03:04:18102 ::   File "uiPickMoney.py", line 42, in LoadDialog

0121 03:04:18102 :: AttributeError
0121 03:04:18102 :: : 
0121 03:04:18102 :: 'PickMoneyDialog' object has no attribute 'OnAccept'
0121 03:04:18102 :: 

وين المشكلة يا شباب حاولت فكل محل وما لقيت رحت على ملف PickMoneyDialog وبحثت عن OnAccept ما لقيتها فما اتوقع الخلل من هذا الملف
وهاد ملف uiPickMoney.py 
import wndMgr
import ui
import ime
import localeInfo
import app

class PickMoneyDialog(ui.ScriptWindow):
    def __init__(self):
        ui.ScriptWindow.__init__(self)

        self.unitValue = 1
        self.maxValue = 0
        self.eventAccept = 0
        if app.ENABLE_CHEQUE_SYSTEM:
            self.chequeMaxValue = 0
    def __del__(self):
        ui.ScriptWindow.__del__(self)

    def LoadDialog(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "UIScript/PickMoneyDialog.py")
        except:
            import exception
            exception.Abort("MoneyDialog.LoadDialog.LoadScript")

        try:
            self.board = self.GetChild("board")
            self.maxValueTextLine = self.GetChild("max_value")
            self.pickValueEditLine = self.GetChild("money_value")
            self.acceptButton = self.GetChild("accept_button")
            self.cancelButton = self.GetChild("cancel_button")
            if app.ENABLE_CHEQUE_SYSTEM:
                self.maxChequeValueTextLine = self.GetChild("cheque_max_value")
                self.pickChequeValueEditLine = self.GetChild("cheque_value")
                self.pickChequeValueEditLine.OnMouseLeftButtonDown = ui.__mem_func__(self.__ClickChequeEditLine)
                self.pickValueEditLine.OnMouseLeftButtonDown = ui.__mem_func__(self.__ClickValueEditLine)            
        except:
            import exception
            exception.Abort("MoneyDialog.LoadDialog.BindObject")

        self.pickValueEditLine.SetReturnEvent(ui.__mem_func__(self.OnAccept))
        self.pickValueEditLine.SetEscapeEvent(ui.__mem_func__(self.Close))
        self.acceptButton.SetEvent(ui.__mem_func__(self.OnAccept))
        self.cancelButton.SetEvent(ui.__mem_func__(self.Close))
        self.board.SetCloseEvent(ui.__mem_func__(self.Close))

    def Destroy(self):
        self.ClearDictionary()
        self.eventAccept = 0
        self.maxValue = 0
        self.pickValueEditLine = 0
        self.acceptButton = 0
        self.cancelButton = 0
        self.board = None
        if app.ENABLE_CHEQUE_SYSTEM:
            self.chequeMaxValue = 0
    def SetTitleName(self, text):
        self.board.SetTitleName(text)

    def SetAcceptEvent(self, event):
        self.eventAccept = event

    def SetMax(self, max):
        self.pickValueEditLine.SetMax(max)

    if app.ENABLE_CHEQUE_SYSTEM:
        def SetMaxCheque(self, max):
            self.pickChequeValueEditLine.SetMax(max)

        def SetFocus(self, focus_idx) :
            if focus_idx == 1:
                self.pickChequeValueEditLine.SetText("")
                self.pickChequeValueEditLine.SetFocus()
                self.pickValueEditLine.SetText(str(0))
            else :
                return
        
        def __ClickChequeEditLine(self) :
            self.pickChequeValueEditLine.SetFocus()
            if len(self.pickValueEditLine.GetText()) <= 0:
                self.pickValueEditLine.SetText(str(0))

        def __ClickValueEditLine(self) :
            self.pickValueEditLine.SetFocus()
            if len(self.pickChequeValueEditLine.GetText()) <= 0:
                self.pickChequeValueEditLine.SetText(str(0))

        def Open(self, maxValue, chequeMaxValue = 0):

            width = self.GetWidth()
            (mouseX, mouseY) = wndMgr.GetMousePosition()

            if mouseX + width/2 > wndMgr.GetScreenWidth():
                xPos = wndMgr.GetScreenWidth() - width
            elif mouseX - width/2 < 0:
                xPos = 0
            else:
                xPos = mouseX - width/2

            self.SetPosition(xPos, mouseY - self.GetHeight() - 20)

            if localeInfo.IsARABIC():
                self.maxValueTextLine.SetText("/" + str(maxValue))
                self.maxChequeValueTextLine.SetText("/" + str(chequeMaxValue))
            else:
                self.maxValueTextLine.SetText(" / " + str(maxValue))
                self.maxChequeValueTextLine.SetText(" / " + str(chequeMaxValue))
            
            self.pickChequeValueEditLine.SetText(str(0))
            
            self.pickValueEditLine.SetText("")
            self.pickValueEditLine.SetFocus()

            ime.SetCursorPosition(1)

            self.chequeMaxValue = chequeMaxValue
            self.maxValue = maxValue
            self.Show()
            self.SetTop()

    def Close(self):
        self.pickValueEditLine.KillFocus()
        if app.ENABLE_CHEQUE_SYSTEM:
            self.pickChequeValueEditLine.KillFocus()        
        self.Hide()

    if app.ENABLE_CHEQUE_SYSTEM :
        def OnAccept(self):
            cheque_text    = self.pickChequeValueEditLine.GetText()
            money_text    = self.pickValueEditLine.GetText()

            if len(cheque_text) > 0 and cheque_text.isdigit() \
                 and len(money_text) > 0 and money_text.isdigit():
                cheque = int(cheque_text)
                cheque = min(cheque, self.chequeMaxValue)
                money = int(money_text)
                money = min(money, self.maxValue)

                if cheque > 0 or money > 0 :
                    if self.eventAccept:
                        self.eventAccept(money, cheque)
            self.Close()