스타일 북으로 디자인 된 Firemonkey 사용자 지정 ListBox Item을 만들었습니다. ListBox 항목을 삽입하려고하면 ListBox 항목의 그림을 변경하는 것 외에는 모든 것이 올바르게 작동합니다 (텍스트 삽입 등).Firemonkey ListBox 이미지가있는 항목
이 자습서는 http://www.experts-exchange.com에 따라 왔습니다.
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"는 stylebook 내 레이아웃, 나는이 목록 상자 항목을 위해 만든 :
여기 내 코드입니다. "textName"및 "textFormat"은 일부 TText이며 ListBox Item에 배치됩니다. "picture"는 ListBox Item의 TImage입니다.
내 코드에 어떤 문제가 있습니까? 저는 Delphi XE4에서 작업하고 있습니다. 당신의 도움 및 안부, 홀거에 대한
감사
안녕하세요. 피터, 답변 해 주셔서 감사합니다. 데모 폴더를 깊이 훑어 보았습니다.하지만 프로그램에서 구현하려고 시도했을 때 이미지와 함께 작동합니다. 하지만 이제는 "스타일 이름"으로 약간 연주했습니다. 그리고 나는 스타일 이름을 사용할 때 "아이콘"을 찾으면 다음 코드가 완벽하게 작동합니다. LBItem.ItemData.Bitmap.LoadFromFile (folder + '\'+ TJSONPair (item) .JsonValue.Value); 스타일 이름을 이미지에서 다른 것으로 변경하면 작업량이 늘어납니다. 감사합니다. 홀거 – HolgerH
@HolgerH "스타일 이름"이 정확히 무엇을 나타 냅니까? ListBox의 StyleName 속성입니까? 아니면 LBItem.FindStyleResource ('icon') '솔루션입니까? – Machado