2012-04-11 12 views
18

से लोड किए गए फॉर्म पर डिस्प्ले छवि क्या आईओएस ऐप में प्रदर्शित होने के लिए आईओएस के लिए एफएमएक्स फॉर्म पर एक टीएममेज और यूआरएल से लोड छवि (जेपीजी) रखना संभव है?फ़ायरमॉन्की आईओएस आरएडी स्टूडियो एक्सई 2 - यूआरएल

मैंने कोई सफलता नहीं की है। सही दिशा में किसी भी संकेत या बिंदु की सराहना की जाती है।

+0

यह कौन-सा कोड लिखा था कि विफल देखे बिना इस तुच्छ कार्य के साथ गलत हो गया था कहने के लिए मुश्किल है। – Kromster

+0

क्षमा करें क्रॉम मैं गलत हो सकता हूं लेकिन इस समय फायरमोनकी में कोई कॉम ऑब्जेक्ट नहीं है। मैंने खोज की है कि कई एक्सकोड उदाहरण हैं लेकिन एफएमएक्स के लिए कोई भी नहीं है। – ckglobalroaming

+0

किसी भी संकेत की सराहना की, बस मुझे सही दिशा में इंगित करें – ckglobalroaming

उत्तर

2

एक Firemonkey प्रपत्र पर एक TButton, TImageControl और TIdHttp ड्रॉप और इस कोड को वेब से कोई चित्र नीचे खींच लेंगे:

procedure TForm1.btnReadWebImgClick(Sender: TObject); 
begin 
    ReadWebImage('http://www.gravatar.com/avatar/5af5f8c5f88c6c237745e9472a31410f?s=32&d=identicon&r=PG'); 
end; 
procedure TForm1.ReadWebImage(imgAddress: string); 
var 
    memStream: TMemoryStream; 
begin 
    memStream := TMemoryStream.Create; 
    try 
    idhttp1.Get (imgAddress,memStream); 
    except 
    ShowMessage('Image not found at:'+imgAddress); 
    memStream.Free; 
    exit; 
    end; 
    try 
    memStream.Position := 0; 
    ImageControl1.Bitmap.LoadFromStream(memStream); 
    finally 
    memStream.Free; 
    end; 
end; 
0

जवाब एक छोटे से ठंड के साथ काम करता है। मैं एक लूप में 4 छवियों को लोड करता हूं। जब मैं बटन दबाता हूं, तो प्रोग्राम छवियों को डाउनलोड करने के लिए फ्रीज करता है, प्रगति पट्टी काम नहीं कर रही है और अगर डाउनलोड की जाती है तो पूरी तरह से जारी रहें। 4 छवियों के लिए 1 सेकंड के लिए फ्रीज। 50 के लिए यह एक "कनेक्शन नहीं" या "खराब कार्यक्रम" है। यह कोड है।

procedure TForm1.SpeedButton1Click(Sender: TObject); 
var 
    i: Integer; 
    Stream: TMemoryStream; 
    imgAddress: string; 
begin 
    ProgressBar1.Min := 0; 
    ProgressBar1.Max := Table1.RecordCount; 

    for i := 1 to Table1.RecordCount do 
    begin 
    ProgressBar1.Value := i; 

    imgAddress := VirtualTable1.FieldByName('flyer').AsString; 
    Stream := TMemoryStream.Create; 
    idhttp1.Get (imgAddress,Stream); 

    try 
     Stream.Position := 0; 
     Table1.Edit; 
     TBlobField(Table1.FieldByName('image')).LoadFromStream(Stream); 
     Table1.Post; 
    finally 
     Stream.Free; 
    end; 
    Table1.Next; 
    end; 
    Table1.First; 
end; 
संबंधित मुद्दे