Thema: Delphi ListView verfärbt Icons

Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: ListView verfärbt Icons

  Alt 9. Apr 2006, 21:38
Also ich habe den Source auf folgendes reduziert, und bei mir keine verfärbungen mehr beobachten können. (Mit TIcon wurde es auch bei mir dunkler ...)
Delphi-Quellcode:
procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  TargetItem: TListItem;
  Ti_1, Ti_2: TBitmap;
begin
  if not (Sender = Source) then
    Exit;

  TargetItem := ListView1.GetItemAt(X, Y);
  if (TargetItem <> nil) then
  begin
    Ti_1 := TBitmap.Create;
    Ti_2 := TBitmap.Create;

    ListView1.Items.BeginUpdate;

    jvimagelist1.GetBitmap(ListView1.Selected.Index, ti_1);
    jvimagelist1.GetBitmap(TargetItem.Index, ti_2);

    jvimagelist1.Replace(ListView1.Selected.Index, ti_2, nil);
    jvimagelist1.Replace(TargetItem.Index, ti_1, nil);

    Ti_1.Free;
    Ti_2.Free;

    ListView1.Items.EndUpdate;
  end;
end;


procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Sender = ListView1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to 50 do
  begin
    Button2Click(Sender);
    Sleep (10);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ListView1.Selected := ListView1.Items[1];
  ListView1DragDrop(ListView1, ListView1, 30, 30);
  ListView1.Repaint;
end;
  Mit Zitat antworten Zitat