Firemonkey-ListBox-Element mit Bild
machte ich einen benutzerdefinierten Firemonkey-ListBox-Elements, entworfen mit einer stylebook.
Wenn ich versuche, insert ListBox-Elemente, alles funktioniert einwandfrei (einfügen von text, etc.) außer das Bild zu verändern, die in das ListBox-Element.
Folgte ich diesem tutorial: http://www.experts-exchange.com.
Hier ist mein code:
procedure TForm2.Button1Click(Sender: TObject);
var
i : Integer;
LBItem : TListBoxItem;
ItemImage : Timage;
begin
ListBox1.BeginUpdate;
ListBox1.Items.Clear;
try
for i := 0 to 9 do begin
LBItem := TListBoxItem.Create(nil);
LBItem.Parent := ListBox1;
LBItem.StyleLookup := 'rowLayout';
LBItem.StylesData['textName'] := 'Some text...';
LBItem.StylesData['textFormat'] := 'Some more text...';
ItemImage := LBItem.FindStyleResource('picture') as TImage;
if Assigned(ItemImage) then
LBItem.ItemData.Bitmap.LoadFromFile('D:\MyTestPicture.jpg');
end;
finally
ListBox1.EndUpdate;
end;
end;
"rowLayout" ist mein layout im stylebook, die ich für das ListBox-Element.
"textName" und "textFormat" - TText, die ich legte in das ListBox-Element.
"Bild" ist die TImage in meiner ListBox-Element.
Was schief geht mit meinem code?
Ich arbeite mit Delphi XE4.
Dank für Eure Hilfe und beste Grüße,
Holger
InformationsquelleAutor HolgerH | 2013-07-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein Bild nicht ändern, weil Sie in Ihrem code, Sie sind nur das laden eines einzigen Bildes.
Sie auch einen großen Fehler gemacht, ständig laden des Bildes in einer Schleife sollten Sie nur laden Sie das Bild einmal auf, wenn die form erstellt wird und dann verweisen Sie einfach auf die richtige Bitmap.
Die Ironie ist, dass die meisten Menschen vergessen, dass Sie den Ordner "Samples", die meisten in der Regel an
C:\Users\Public\Documents\RAD Studio\XX.0\Samples\FireMonkey
.Was Sie tun sollten, ist nehmen Sie einen Blick auf die
CustomListBox
Probe.Es ist nichts falsch mit folgenden anderen tutorials, aber angesichts der Tatsache, wie schnell Firemonkey-änderungen für jede version und das tutorial, das du verlinkt ziemlich alt, ich würde vorschlagen, Sie wieder fallen zu den bereits enthaltenen Delphi-Beispiel, es ist up-to-date, leicht zu verstehen und im Grunde genau das tut, was Sie suchen.
was genau bedeutet "Stil-Namen" dar? Ist es der StyleName propertie aus der ListBox? Oder ist es
LBItem.FindStyleResource('icon')
die Lösung?InformationsquelleAutor Peter