編輯 | 究查 | 歷程 | 原始
graph TD
    Start([Start initkscan]) --> DisableCB[ScanDuplexCB.Enabled := False]
    DisableCB --> CheckConfig{Scanner.IsConfigured?}
    
    CheckConfig -- Yes --> TryOpen[try]
    
    subgraph Try_Detect
        TryOpen --> OpenSrc[Scanner.OpenSource]
        OpenSrc --> CheckDuplex{Scanner.DuplexCap > 0?}
        CheckDuplex -- Yes --> EnableCB[ScanDuplexCB.Enabled := True]
        CheckDuplex -- No --> CatchErr
        EnableCB --> CatchErr{發生異常?}
        CatchErr -- Yes --> DataLoadErr[DataLoading False, True] --> ExitInit
    end
    
    Try_Detect --> CloseSrc[Scanner.CloseSource]
    CheckConfig -- No --> EndInit
    CloseSrc --> EndInit
    EndInit([End])