AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VirtualTreeView und icons

Ein Thema von Wishmaster · begonnen am 9. Aug 2014 · letzter Beitrag vom 28. Aug 2014
Antwort Antwort
Dejan Vu
(Gast)

n/a Beiträge
 
#1

AW: VirtualTreeView und icons

  Alt 15. Aug 2014, 06:45


Ich glaube auch nicht, das hier die Grenze jemals erreicht wird, aber wenn man es -rein theoretisch- optimieren will (weil es regnet, einem langweilig oder nur um mal zu sehen, ob es geht), dann würde man einen Cache einbauen, der die Icon-ID mit dem ImageListIndex mappt. Und wenn nun die ImageList mehr als z.B. 1000 Einträge hätte, würde man den ältesten Eintrag aus dem Cache, und das Icon aus der ImageList rausschmeißen und im Cache alle Indexe aktualisieren.
  Mit Zitat antworten Zitat
Wishmaster

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

AW: VirtualTreeView und icons

  Alt 27. Aug 2014, 07:30
Hi.

entschuldigung das ich mich nicht früher gemeldet hatte, war mit arbeit beschäftigt!
und danke an alle für eure hilfe.

@Perlsau
ich hatte an so etwas ähnliches selbst gedacht wie dein code schnipsel!
das problem war, ich muss nicht nur den index zum Icon managen
sondern auch den Index zur (TStartBild = Class).
so wenn ich auf die Daten im (TStartBild) zugreifen will mus ich ja den index zu der (TStartBild = Class) Wissen.
Delphi-Quellcode:
procedure TMain_form.RecordTreeBeforeCellPaint(Sender: TBaseVirtualTree;...)
begin
 TargetCanvas.Draw(R.Left, 0, BList .Items[index].Image); //index?

end;
// Delete

 BList.Delete(index); um ein bild freizugeben

thx.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: VirtualTreeView und icons

  Alt 27. Aug 2014, 11:40
Da es wohl kaum soweit kommt, daß der Anwender eine Million Icons gleichzeitig darstellen will, würde ich wie oben bereits beschrieben dennoch eine TImageList verwenden, die einfach immer nur die Icons enthält, die angezeigt werden bzw. in der aktuellen Sitzung bereits angezeigt wurden. Dafür reicht die Kapazität der TImageList auf jeden Fall aus, was ich mit Hilfe des oben vorgeführten Testprogramms herausfinden konnte.
  Mit Zitat antworten Zitat
Wishmaster

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

AW: VirtualTreeView und icons

  Alt 28. Aug 2014, 08:34
Hi

an diesem punkt spielt es keine rolle ob ich eine ImageList oder dein Code benutze,
solange ich die icons klein halte 16x16 (und da muss ich ich mir noch etwas ausdenken)
ich meine, ich hatte zum test eine 4 MB image/Icon in die DB gespeichert und anschließend in die VTV geladen.
nur um die auslastung zu sehen.
und da ich den benutzer die möglichkeit geben will Icons von der festplatte zu laden.
muss ich das verhindern dass er absichtlich oder aus versehen riesige bilder als icons für die VTV speichert

normalerweise hat die listen ~ 20 einträge
E-Email einstellungen
logins für skype, Steam, Online Bank ...
das programm hat aber auch die möglichkeit Bookmarks von firefox zu parsen und in die DB speichern.
und in meine fall sind das eine ganze menge.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: VirtualTreeView und icons

  Alt 28. Aug 2014, 11:22
Du kannst den Anwender im Programm doch darauf hinweisen, daß nur Icon-Bilder bis zu einer gewissen Größe erlaubt sind:

ShowMessage('Das Bild ist zu groß für ein Icon und wird automatisch auf die Größe 16x16 verkleinert'; Und dann erzeugst du aus dem zu großen Bild mit StretchDraw einfach ein kleineres.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00: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