2012-04-11 13 views
18

iOSのFMXフォームにTImageを配置し、URLからこのTImageに画像(jpg)をロードしてiOSアプリケーションに表示できますか?FireMonkey iOS RAD Studio XE2 - URLからロードされたフォームに画像を表示

私は成功しなかった。正しい方向のヒントやポイントは高く評価されます。

+0

この簡単な作業で何がうまくいかなかったかは、あなたが書いたコードを見ても失われているとは言い難いです。 – Kromster

+0

申し訳ありませんが、私は間違っているかもしれませんが、現時点では、Firemonkeyの通信オブジェクトはありません。私は多くのxcodeの例がありますが、FMXの例はありません。 – ckglobalroaming

+0

ヒントがありがたいです、ちょうど正しい方向に私を指してください – ckglobalroaming

答えて

2

ドロップTButtonは、TImageControlとTIdHttp FireMonkeyのフォームにこのコードは、ウェブから画像をプルダウンします:

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の場合、それは "no connection"または "Bad Program"です。 これはコードです。

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; 
関連する問題