2012-03-05 7 views
19

में एनिमेटेड Gif का उपयोग कैसे करें मैं थेरेस लगता है कोई देशी समर्थन एनिमेटेड छवियों GIF करने के लिए।एक डेल्फी रूप

कैसे सबसे अच्छा तरीका है? कोई भी मुफ्त घटक जो अनुमति देता है? मैं एक टीआईमेज और एक छविसूची + टाइमर का उपयोग करने में सोच रहा था, लेकिन मुझे अलग-अलग बीएमपी फ़ाइल में gif के प्रत्येक फ्रेम को निर्यात करने की आवश्यकता है।

उत्तर

42

का हिस्सा यह आधुनिक डेल्फी में बहुत सरल है के साथ आया। यह सब निर्मित है। फॉर्म पर TImage ड्रॉप करें और एनिमेटेड जीआईएफ को चित्र संपत्ति में लोड करें। फिर, Animate संपत्ति के माध्यम से एनीमेशन शुरू:

(Image1.Picture.Graphic as TGIFImage).Animate := True; 

आप AnimateLoop और AnimateSpeed साथ एनीमेशन नियंत्रित कर सकते हैं। अनुमान लगाना बहुत आसान होना चाहिए कि एनीमेशन को फिर से कैसे बंद करें!

अब, जब से तुम डेल्फी 7 का उपयोग कर रहे हैं, आप TGIFImage घटक में निर्मित नहीं है। हालांकि, आप Finn Tolderlund's वेबसाइट से कोड डाउनलोड कर सकते हैं (आप TGIFImage का नवीनतम संस्करण चाहते हैं)। घटक के इस संस्करण के साथ, ऊपर दिए गए कोड को ठीक काम करना चाहिए, हालांकि मैंने व्यक्तिगत रूप से इसका उपयोग नहीं किया है क्योंकि मैंने कुछ साल पहले डी 6 से डी 2010 तक पोर्ट किया था।

ये सभी विभिन्न TGIFImage कोड वास्तव में उसी घटक के संस्करण हैं, मूल रूप से Anders Melander द्वारा लिखे गए और 2007 में, डेल्फी में शामिल करने के लिए एम्बरकेडेरो को दान दिया गया।

+0

में मेरा छोटा सा shit- खबरदार जेडी वीसीएल कहलाता है जो एनिमेटेड जीआईएफ को टीआईमेज में लोड करने से रोक देगा यदि यह पंजीकृत है। –

6

इस बस एक एनिमेटेड GIF लोड कर रहा है और नहीं बना एक

procedure TForm1.FormCreate(Sender: TObject); 

begin 

    (Image1.Picture.Graphic as TGIFImage).Animate := True;// gets it goin' 

    (Image1.Picture.Graphic as TGIFImage).AnimationSpeed:= 500;// adjust your speed 

    Form1.DoubleBuffered := True;// stops flickering 

end; 

stackoverflow मुझे मदद मिली है और इसलिए वापसी :)

+1

डबलबफर्ड: = ट्रू आमतौर पर एक खराब चाल है –