마지막 TPngComponents "PngComponents for Delphi 2009 - Delphi 10.2 Tokyo"을 사용합니다. 내 문제를 표시하기 위해 간단하게 project을 작성하십시오.두 번째 TPngImageCollectionItem 개체를 할당 한 후 TreeView 여전히 첫 번째 할당 된 이미지를 그립니다. (Delphi XE 7)
두 번째 후에 TPngImageCollectionItem 개체를 할당하는 이유 TreeView가 여전히 첫 번째 할당 된 이미지를 페인트하고 일부 새로 고침 기능을 호출해야 할 수 있습니까?
type
TForm1 = class(TForm)
pilTree: TPngImageList;
pilNoImage: TPngImageList;
pilAllCor: TPngImageList;
tvCor: TTreeView;
pilAllNotCor: TPngImageList;
tvNoCor: TTreeView;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure AddNodes(ATV: TTreeView);
var
nFirst, nChild: TTreeNode;
begin
nFirst := ATV.Items.AddChild(nil, '1');
nChild := ATV.Items.AddChild(nFirst,'2');
nChild.ImageIndex := 1;
nChild.SelectedIndex := 1;
nFirst.Expanded := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
iI: Integer;
ItemAdd: TPngImageCollectionItem;
ANode: TTreeNode;
begin
// Steps working correct
for iI := 0 to 1 do begin
ItemAdd := pilAllCor.PngImages.Add;
ItemAdd.Assign(pilTree.PngImages[iI]);
end;
// Steps working NOT correct
for iI := 0 to 1 do begin
ItemAdd := pilAllNotCor.PngImages.Add;
ItemAdd.Assign(pilNoImage.PngImages[0]);
ItemAdd.Assign(pilTree.PngImages[iI]);
end;
//Setup treeview
tvCor.Images := pilAllCor;
tvNoCor.Images := pilAllNotCor;
AddNodes(tvCor);
AddNodes(tvNoCor);
end;
예 :
이 최소한의 코드를 기입하십시오 : 기존 항목을 변경하려면
당신이 컬렉션 항목의 PngImage 속성을 지정해야합니다 :
올바른 코드가 같아야합니다 귀하의 질문에 문제를 재현하는 것이 아니라 외부 리소스에 대한 링크 (무효화 될 수 있으므로 귀하의 질문을 향후 독자에게 쓸모 없게 만듭니다.) –
t 코드 및 설명 및 모든 파일을 저장할 수있는 텍스트 숨기기 같은 기능을 찾을 수 없습니다. – Ride
예제가 너무 큰 경우에는 충분하지 않을 수도 있습니다. –