Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TreeView: Wie komme ich an die Standardgrafiken "PlusMinus"? (https://www.delphipraxis.net/76427-treeview-wie-komme-ich-die-standardgrafiken-plusminus.html)

Pseudemys Nelsoni 4. Sep 2006 13:21


TreeView: Wie komme ich an die Standardgrafiken "PlusMi
 
Moin,

ich muss meine TreeView Nodes selber zeichnen, und deswegen brauch ich auch die StateImages vor den Einträgen, d.h das "+" bzw "-", wie komm ich an diese ran? irgendwo muss das OS die ja haben.

mkinzler 4. Sep 2006 13:34

Re: TreeView: Wie komme ich an die Standardgrafiken "Pl
 
Unter lw:\Programme\Gemeinsame Dateien\Borland Shared\

Meflin 4. Sep 2006 13:45

Re: TreeView: Wie komme ich an die Standardgrafiken "Pl
 
Zitat:

Zitat von mkinzler
Unter lw:\Programme\Gemeinsame Dateien\Borland Shared\

Ach echt? und welches von denen sollte da dieses Plus sein :gruebel: es gibt zwar eins, aber das hat nichtmal entfernte Ähnlichkeit mit dem eines TreeViews...


BerndS 4. Sep 2006 14:09

Re: TreeView: Wie komme ich an die Standardgrafiken "Pl
 
Hallo ,
unter Demos gibs da ein Beispiel dafür in CustomDrawTreeView.pas (D7,BDS2006)
wenn XP-Style dann ergänzen:
Delphi-Quellcode:
uses ...,Themes,....

  var TTV:TThemedTreeview;
  ...
  if ThemeServices.ThemesEnabled then // XP-Themen
  begin
    if Node.Expanded then TTV:=ttGlyphOpened else TTV:=ttGlyphClosed;
    ThemeServices.DrawElement(Handle,ThemeServices.GetElementDetails(TTV),R);
  end
  else
     begin
       .....
Gruß Bernd

Pseudemys Nelsoni 4. Sep 2006 14:29

Re: TreeView: Wie komme ich an die Standardgrafiken "Pl
 
Moin,

danke für die Antworten. Ich habe mir überlegt es selbst zu zeichnen und habs nun so gemacht:

Code:
        enum StateImage { MINUS, PLUS };

        private Bitmap GetStateImage(StateImage si)
        {
            Bitmap stateImage = new Bitmap(9, 9);

            for (int i = 0; i <= 8; i++)
            {
                for (int i2 = 0; i2 <= 8; i2++)
                {
                    if ((i == 0) || (i == 8) || (i2 == 0) || (i2 == 8))
                    {
                        stateImage.SetPixel(i, i2, Color.Gray);
                    }
                    else
                    {
                        stateImage.SetPixel(i, i2, Color.White);
                    }
                }
            }

            stateImage.SetPixel(2, 4, Color.Black);
            stateImage.SetPixel(3, 4, Color.Black);
            stateImage.SetPixel(4, 4, Color.Black);
            stateImage.SetPixel(5, 4, Color.Black);
            stateImage.SetPixel(6, 4, Color.Black);

            if (si == StateImage.PLUS)
            {
                stateImage.SetPixel(4, 2, Color.Black);
                stateImage.SetPixel(4, 3, Color.Black);
                stateImage.SetPixel(4, 5, Color.Black);
                stateImage.SetPixel(4, 6, Color.Black);
            }

            return stateImage;
        }

mirage228 4. Sep 2006 15:08

Re: TreeView: Wie komme ich an die Standardgrafiken "Pl
 
Hi,

Ab Delphi 8 sind ab den Professional Versionen die GlyFX Bilder dabei (auch unter Borland Shared \ Images). Vielleicht ist da ja was für dich dabei :)

mfG
mirage228

Muetze1 4. Sep 2006 21:10

Re: TreeView: Wie komme ich an die Standardgrafiken "Pl
 
Ansonsten mit LoadBitmap() und makeintresource() für den Dateinamen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:10 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