2011-05-12 3 views
6

मैंने डेल्फी एक्सई के साथ प्रयास किया और मुझे संकलन करते समय जवाब नहीं मिला। क्या यह आपके कंप्यूटर में काम करता है या क्या समारोह में कुछ गड़बड़ है?इस फ़ंक्शन को संकलित करते समय प्रतिसाद नहीं दे रहा है?

function Test(const FileName: string; 
    const Force: boolean = false): boolean; 
var 
    IsAllowed: boolean; 
begin 
    result := false; 
    if FileExists(FileName) then 
    begin 
    try 
     if (Force) then 
     begin 
     result := false; 
     exit; 
     end; 
    finally 
     if IsAllowed then 
     DeleteFile(FileName); 
    end; 

    try 
     result := true; 
    except 
     result := false; 
    end; 
    end; 
end; 
+0

कि समारोह मेरी डेल्फी में ठीक संकलित 2010 –

उत्तर

11

यह मेरे कंप्यूटर पर संकलित करता है। हालांकि मुझे चेतावनी मिलती है W1036 वैरिएबल 'IsAllowed' शुरू नहीं किया जा सकता है।

अद्यतन: जब मैं उपयोग खंड में विंडोज शामिल करता हूं तो मैं लटक सकता हूं। गुणवत्ता केंद्र में सबमिट किया गया: QC93806

program hang_test; 

{$APPTYPE CONSOLE} 

uses 
    // Windows, // uncomment to include Windows -> hang on compile 
    SysUtils; 

function Test(const FileName: string; const Force: boolean = false): boolean; 
    // your function here 

begin 
    try 

    except 
    on E: Exception do 
     Writeln(E.ClassName, ': ', E.Message); 
    end; 
end. 

यह एक बग जैसा दिखता है; आपको Quality Central में इसकी रिपोर्ट करनी चाहिए।

अद्यतन 2: मिनिमल मामले में जो reproducibly संकलक लटकी हुई है:

function HangCompiler: Boolean; 
begin 
    try 
    Exit; // 1. exit from a try..finally 
    finally 
    DeleteFile(''); // 2. inlined function call in finally (include Windows to inline) 
    end; 
    // 3. try..except 
    try 
    Result := True; 
    except 
    Result := False; 
    end; 
end; 
+0

हाँ, मुझे लगता है कि इस बात की संभावना है कि यह * हो सकता है * भी प्रारंभ कर दिया है नहीं है! –

+0

अगर मैं 'DeleteFile (फ़ाइल नाम);' या 'परिणाम: = सत्य;' पर टिप्पणी करता हूं तो मैं इसे संकलित कर सकता हूं। आपके डेल्फी एक्सई का संस्करण क्या है? – user

+0

हां, उपयोग खंड में विंडोज समस्या निर्माता है। मैं बस 'विंडोज' पर टिप्पणी करने की कोशिश करता हूं और मैं फ़ंक्शन संकलित कर सकता हूं। – user

संबंधित मुद्दे