AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls VirtualImageList Image in VirtualTreeview Background zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualImageList Image in VirtualTreeview Background zeichnen

Ein Thema von TurboMagic · begonnen am 19. Nov 2024 · letzter Beitrag vom 20. Nov 2024
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.961 Beiträge
 
Delphi 12 Athens
 
#1

VirtualImageList Image in VirtualTreeview Background zeichnen

  Alt 19. Nov 2024, 21:07
Hallo,

wie bekomme ich ein Bild aus einer TVirtualImageList in z. B. die rechte untere Ecke
des Backgrounds eines TVirtualTreeView?

Hier mein bisheriger Versuch im Event das beim Anklicken eines Knotens aufgerufen wird:
vst_Menu ist dabei das TVirtualTreeView

Delphi-Quellcode:
procedure Tf_Settings.vst_MenuFocusChanged(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex);
var
  bmp: TBitmap;
  ImageIndex : Integer;
  Dest:TRect;
begin
  ImageIndex := 0;

  bmp := TBitmap.Create;
  try
    VirtualImageListLeft.GetBitmap(ImageIndex, bmp);

    Dest := TRect.Create(0, 0, vst_Menu.Height-bmp.Height,
                         bmp.Width, bmp.Height);

    vst_Menu.Background.Bitmap.Canvas.CopyRect(
      Dest,
      bmp.Canvas,
      TRect.Create(0, 0, bmp.Width, bmp.Height));
  finally
    bmp.Free;
  end;
end;
Auf dem Bilschirm ist von diesem Hintergrund jedoch nix zu sehen...
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: VirtualImageList Image in VirtualTreeview Background zeichnen

  Alt 19. Nov 2024, 21:48
Warum verwendest du nicht einfach eines der Draw-Overloads der Imagelist?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.961 Beiträge
 
Delphi 12 Athens
 
#3

AW: VirtualImageList Image in VirtualTreeview Background zeichnen

  Alt 20. Nov 2024, 18:32
Hallo,

hab' ich probiert aber ohne Erfolg.

z. B. so:

FBGImageIndex ist der Index des zu zeichnenden Bildes.
OnPaintBackground wird aufgerufen und enthält folgende Codezeile, wobei es egal ist,
ob 25, 500 oder 0,0 als Koordinaten übergeben werden.

Delphi-Quellcode:
procedure Tf_Settings.vst_MenuPaintBackground(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; R: TRect; var Handled: Boolean);
begin
  VirtualImageListLeft.Draw(TargetCanvas, 25, 500, FBGImageIndex, true);
end;
Irgendwer eine Idee?
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: VirtualImageList Image in VirtualTreeview Background zeichnen

  Alt 20. Nov 2024, 18:59
Vielleicht solltest du noch Handled := True setzen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: VirtualImageList Image in VirtualTreeview Background zeichnen

  Alt 20. Nov 2024, 19:00
[deleted]
$2B or not $2B
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.961 Beiträge
 
Delphi 12 Athens
 
#6

AW: VirtualImageList Image in VirtualTreeview Background zeichnen

  Alt 20. Nov 2024, 19:22
Hallo,

auch wenn immer noch nicht alles so funktioniert wie erhofft, führt Handled = true
immerhin mal dazu, dass was angezeigt wird.

Danke!
Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.961 Beiträge
 
Delphi 12 Athens
 
#7

AW: VirtualImageList Image in VirtualTreeview Background zeichnen

  Alt 20. Nov 2024, 19:39
Hallo,

so, jetzt stimmen Größe und Position.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz