Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VirtualStringTree: Problem mit ImageIndex (https://www.delphipraxis.net/29873-virtualstringtree-problem-mit-imageindex.html)

phXql 15. Sep 2004 22:06


VirtualStringTree: Problem mit ImageIndex
 
Moin Leute,

ich habe ein seltsames Problem mit meinem VirtualStringTree. Ich habe eine ImageList mit 9 verschiedenen Icons, und diese ImageList ist dem VirtualStringTree bei der Eigenschaft Images zugewiesen. Wenn ich jetzt in der Funktion
Code:
procedure TFormMain.VST1GetImageIndex(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
  var Ghosted: Boolean; var ImageIndex: Integer);
begin
  ImageIndex := 8;
end;
den ImageIndex auf 8 setze, müsste jeder Node das Bild vom 9ten Icon in der ImageList bekommen. Tut es aber nicht. Icons mit dem Index 0 - 4 werden richtig dargestellt, alles was über Index 4 is, wird als Icon #0 dargestellt. Falls nich nachvollziehbar, stell ich das gesamte Projekt hier mal auf Anfrage als Download bereit.
Vielen Dank für eure (hoffentlich) kommenden Antworten :)

mfg

phXql

djmasi 15. Sep 2004 22:28

Re: VirtualStringTree: Problem mit ImageIndex
 
Sowas hatte ich auch schonmal. Das 5. Image wurde vom 0. überlagert.

Habe dann die Images nicht als "normale" sondern als "StateImages" zugewiesen. Seitdem gehts. :gruebel:

phXql 15. Sep 2004 22:43

Re: VirtualStringTree: Problem mit ImageIndex
 
Zitat:

Zitat von djmasi
Sowas hatte ich auch schonmal. Das 5. Image wurde vom 0. überlagert.

Habe dann die Images nicht als "normale" sondern als "StateImages" zugewiesen. Seitdem gehts. :gruebel:

hmm, weise ich dem die ImageList als StateImages zu, gehen alle Images mit Index < 6. bin ich zu blöd für den VirtualStringTree oder is da wirklich ein Bug drin?

djmasi 15. Sep 2004 22:45

Re: VirtualStringTree: Problem mit ImageIndex
 
Zitat:

Zitat von phXql
hmm, weise ich dem die ImageList als StateImages zu, gehen alle Images mit Index < 6. bin ich zu blöd für den VirtualStringTree oder is da wirklich ein Bug drin?

Ich hab bis jetzt nur 5 Images :gruebel: In den Foren/News hab ich noch nichts drüber gelesen.

phXql 16. Sep 2004 07:50

Re: VirtualStringTree: Problem mit ImageIndex
 
okay, ich hab die Lösung des Problems gefunden. die ersten 4 icons kann man als overlay-icons benutzen. um das zu verhindern bei der GetImageIndex auf den Parameter Kind prüfen, wenn dieser NICHT ikNormal oder ikSelected ist, dann einfach den ImageIndex auf -1 setzen. sonst den "normalen" image-index zurückgeben. Dann gehts auch.

Mir aber nicht verständlich, warum das in KEINEM tutorial auftaucht...

djmasi 16. Sep 2004 07:54

Re: VirtualStringTree: Problem mit ImageIndex
 
Also bei mir geht es...

Sag mal, hast du ne "normale" TImageList genommen?
Ich hab nämlich TJvImageList von JEDI.

Zweitens, hast du ne TreeView- oder Grid-Darstellung?
Ich hatte das Prob bei der TreeView-Darstellung

Kannst ja mal das Projekt posten.

Hier mal mein Code:
Delphi-Quellcode:
procedure TFMain.VSTLibraryGetImageIndex(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
  var Ghosted: Boolean; var ImageIndex: Integer);
var
  QueryRec: PQueryRec;
begin
  if Column = 12 then
  begin
    QueryRec := Sender.GetNodeData(Node);
    ImageIndex := -1;
    case QueryRec.ABitRate of
      0..47:   ImageIndex := 0; // >48
      48..52:  ImageIndex := 1; //  48
      53..60:  ImageIndex := 2; //  56
      61..70:  ImageIndex := 3; //  64
      71..100: ImageIndex := 4; //  96
      101..116: ImageIndex := 5; //  112
      117..140: ImageIndex := 6; //  128
      141..180: ImageIndex := 7; //  160
      181..216: ImageIndex := 8; //  192
      217..240: ImageIndex := 9; //  224
      241..280: ImageIndex := 10; //  256
      281..320: ImageIndex := 11; //  320
    else
      ImageIndex := 12;
    end;
  end;
end;
[edit]
Verdammt zu spät :wall:
[/edit]

djmasi 16. Sep 2004 08:03

Re: VirtualStringTree: Problem mit ImageIndex
 
Zitat:

Zitat von phXql
Mir aber nicht verständlich, warum das in KEINEM tutorial auftaucht...

:oops: Doch, in der Hilfe zum VirtualTreeView -> Step by Step
Delphi-Quellcode:
procedure TBookmarkForm.BookmarkTreeGetImageIndex(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Kind: TVTImageKind; Column: Integer; var Index: Integer);

var
  NodeData: ^rTreeData;

begin
  NodeData := Sender.GetNodeData(Node);
  case Kind of
    ikState: // for the case the state icon has been requested
      Index := -1;
    ikNormal, ikSelected: // normal or the selected icon is required
      Index := NodeData.ImageIndex;
  end;
end;

phXql 16. Sep 2004 09:11

Re: VirtualStringTree: Problem mit ImageIndex
 
Zitat:

Zitat von djmasi
Zitat:

Zitat von phXql
Mir aber nicht verständlich, warum das in KEINEM tutorial auftaucht...

:oops: Doch, in der Hilfe zum VirtualTreeView -> Step by Step

verdammt. da steht aber auch nix von dem ikOverlay...

kaaeton 9. Sep 2009 12:40

Re: VirtualStringTree: Problem mit ImageIndex
 
Zitat:

Zitat von phXql
Mir aber nicht verständlich, warum das in KEINEM tutorial auftaucht...

Ganz einfach, weil es die, die es verstanden haben nicht der Mühe wert fanden, es zu beschreiben und die anderen haben die Hintergründe nicht wirklich verstanden und nur so lange probiert, bis es irgendwie funktioniert hat.

Ich habe jetzt ein neues Tutorial geschrieben.
Teil 1 ist fertig und Teil 2 in Arbeit.
Zu finden auf meiner HP: http://home.tele2.at/karahoan/technav.html

Im Teil 2 beschreibe ich diesen Sachverhalt genau.

mfg Wolfgang

generic 9. Sep 2009 14:32

Re: VirtualStringTree: Problem mit ImageIndex
 
Der Beitrag ist von 2004.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.
Seite 1 von 2  1 2      

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