Einzelnen Beitrag anzeigen

Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: TListview / VirtualMode / Checkbox und Bitmaps

  Alt 13. Jan 2006, 08:13
Hallo,

ich hoffe, das Problem ist noch aktuell:

a) Die Images kannst Du anzeigen, wenn Du im OnData-Ereignis dem Item den ImageIndex zuweist:
Delphi-Quellcode:
procedure TForm1.ListView1Data(Sender:TObject; Item:TListItem);
var myData;
begin
  if (Item=nil) then Exit;
  // Deine Daten aus der virtuellen Liste
  // myData:=
  with Item do
  begin
    Caption:=[Irgendetwas];

    ImageIndex:=0;
  end; // with
end;

b) Die Anzeige der CheckBoxen ist schon etwas aufwendiger:

Dazu musst Du das OnAdvancedCustomDrawItem benutzen.
Delphi-Quellcode:
uses
  ComCtrl;

procedure TForm1.ListView1AdvancedCustomDrawItem(Sender:Tobject; ....);
const
  CtrlState:array[Boolean] of Integer=(DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
var r, dr:TRect;
    myData;
begin
  if (Item=nil) then Exit;
  // Deine Daten aus der virtuellen Liste, in der der Status des Eintrages stehen muss
  // myData:=
  with Sender.Canvas do
  begin
    dr:=Item.DisplayRect(drBounds);
    r:=Bounds(dr.Left+1, dr.Top+1, 13, 13);
    DrawFrameControl(Handle, r, DFC_BUTTON, CtrlState[myData.CheckStatus]);
  end; // with
end;
[edit]Fehler, auf den jim_raynor im Post weiter unter hingewiesen hat, beseitigt.[/edit]
  Mit Zitat antworten Zitat