2015-04-13 1 views
0

Je crée une application de démonstration ayant une zone de liste et une image. Lorsque je cours cette application sur le téléphone me donne (en utilisant image1.loadfromfile ('Path of Image')) exception de segmentation 11. Je ne suis pas en mesure d'afficher l'image que j'ajoute lors de l'exécution sur mon téléphone. J'utilise le code ci-dessous pour l'image de chargement dynamique.L'image du fichier Dynamic Loadfrom donne accès à la vailation sur Firemonkey Mobile

procedure TForm1.Button1Click(Sender: TObject); 
var 
item : TListBoxItem; 
img : Timage; 
begin 
    item := TListBoxItem.Create(ListBox1); 
    img := TImage.Create(item); 
    with item do 
    begin 
    Text := 'Vikas'; 
    Height := 49; 
    Selectable := False; 
    StyleLookup := 'listboxitemnodetail'; 
    img.Align := TAlignLayout.Left; 
    end; 
    img.MultiResBitmap.Items[0].Bitmap.LoadFromFile('path image in .png format'); 
    item.AddObject(img); 
    listbox1.addobject(item); 
end; 

Comment charger dynamiquement l'image?

Répondre

1

Vous devez appeler la méthode img.MultiResBitmap.Add() avant de pouvoir accéder img.MultiResBitmap.Items[0]:

Crée un nouvel élément bitmap TCustomBitmapItem et il ajoute au tableau Items.

Par exemple:

img.MultiResBitmap.Add; 
// now you can use img.MultiResBitmap.Items[0] as needed... 

Autre possibilité:

var 
    bmp: TFixedBitmapItem; 
begin 
    ... 
    bmp := img.MultiResBitmap.Add; 
    // use bmp as needed... 
    ... 
end; 

Si vous ne place pas vraiment besoin d'images multi-résolution, utilisez la propriété img.Bitmap:

img.Bitmap.LoadFromFile(...);