2015-11-08 5 views
5

मैं डेल्फी XE4 के साथ एक TImage में एक PNG छवि लोड करने की कोशिश कर रहा हूँ में एक PNG छवि को लोड करने। पीएनजी एक धारा में शुरू होता है: उदा।कैसे एक TImage

Stream := TMemoryStream.Create; 
    try 
    Stream.LoadFromFile('c:\file.png'); 
    Stream.Position := 0; 
    Image1.Picture.Graphic.LoadFromStream(Stream); 
    finally 
    Stream.Free; 
    end; 

जब मैं यह कोड चलाता हूं तो मुझे एवी मिलता है। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?

धन्यवाद।

+1

आप कुछ डिबगिंग क्यों नहीं करते? हम एवी है जहां हम knoiw नहीं है। आप इसे पुन: पेश कर सकते हैं? आप इस विशिष्ट समस्या –

उत्तर

14

TImage.Picture.Graphic संपत्ति शून्य जब तक आप Picture में एक ग्राफिक लोड है।

क्या आप के लिए के रूप में प्राप्त किया जा सकता पूछ रहे हैं इस प्रकार है:

uses pngimage; 

    Stream := TMemoryStream.Create; 
    try 
    // obtain png image, load from file or other.. 
    .... 
    Image := TPngImage.Create; 
    try 
     Stream.Position := 0; 
     Image.LoadFromStream(Stream); 
     Image1.Picture.Graphic := Image; 
    finally 
     Image.Free; 
    end; 
    finally 
    Stream.Free; 
    end; 
+0

मैं डेल्फी 5 जहां कोई PNGImage फ़ाइल/DCU उपलब्ध नहीं है का उपयोग कर रहा से आधारभूत डिबगिंग कौशल सीखने के साथ अधिक चिंतित होना चाहिए। क्या आप कृपया मुझे बता सकते हैं कि मैं मेमोरी स्ट्रीम के साथ ऐसा कैसे कर सकता हूं। –

+0

आप D5 के लिए इस [PngComponents] (https://code.google.com/archive/p/cubicexplorer/downloads) स्थापित कर सकते हैं, तो देखें। अगर मुझे याद है सही ढंग से वहाँ पैकेज नहीं TPNGImage में एक TPNGObject है। – RaelB

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