AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView und icons

Ein Thema von Wishmaster · begonnen am 9. Aug 2014 · letzter Beitrag vom 28. Aug 2014
 
Wishmaster

Registriert seit: 14. Sep 2002
Ort: Steinbach, MB, Canada
301 Beiträge
 
Delphi XE2 Architect
 
#7

AW: VirtualTreeView und icons

  Alt 10. Aug 2014, 01:19
OK! ich habe es geschaft (Nach dem Red Bull ) so ich hatte recht mit der idee die icon direkt in den NodeRecord zu schreiben!
so jetzt ist der limit nur der arbeitsschpeicher.

so this is my solution! Have fun with it.

Delphi-Quellcode:
type
  PRNodeData = ^TRNodeData;
  TRNodeData = record
   ID : Int64; // pointer
   Title : Widestring;
   Value : Widestring;
   Hiden : Boolean;
   Image : TBitmap; // icon
  end;

procedure TMain_form.RecordTreeBeforeCellPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
var
 Data : PNodeData;
 R : TRect;
begin
  if Assigned(Node)then
   begin
     Data:= FolderTree.GetNodeData(Node);
    if Data^.Colored then
     begin
      case Column of
       0 :
        begin
         TargetCanvas.Brush.Color := $00FFFAF4;
         TargetCanvas.FillRect(CellRect);

        // Draw Icon Test

         R.Left:= ContentRect.Left-16;
         R.Top:= ContentRect.Top -1;
         R.Right:= ContentRect.Bottom + R.Left;
         R.Bottom:= ContentRect.Bottom -1;

         //TargetCanvas.Brush.Color:= clred;
         TargetCanvas.FillRect(R);

         TargetCanvas.Draw(R.Left, 0, Data^.Image); // Icon

        end;
       1 :
        begin
         (* Draw Gradient *)
         GradientFillHorizontal(TargetCanvas, CellRect, $00FFFAF4, clWhite, 100)
        end;
       2 :
        begin
         // comment todo
        end;
      end;


     end;
   end;
end;
ganz vergessen zu sagen, ich benutze eine leere TImageList um den text nach rechts zu bewegen




in meinem test lade ich die icons direkt von der festplatte
später wird das direkt von der DB/Stream geladen!

Delphi-Quellcode:
 Data:= RecordTree.GetNodeData(Parent);
 ...
 Data^.Image:= TBitmap.Create;
 Data^.Image.LoadFromFile('c:\...\...\folder_open.bmp');
 Data^.Image.Transparent := True;
 Data^.Image.TransparentMode := tmAuto;
nochmal danke an alle.

Geändert von Wishmaster (10. Aug 2014 um 01:37 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz