Entwickler-Ecke
Windows API - "Desktop anzeigen"/Arbeisplatz Symbol
fuggaz - Sa 13.12.08 23:04
Titel: "Desktop anzeigen"/Arbeisplatz Symbol
Hey,
Ich kenne folgende Methode um Icons in eine Toolbar zu laden:
Delphi-Quelltext
1: 2: 3: 4:
| tbBmp.hInst := HINST_COMMCTRL; tbBmp.nID := IDB_STD_LARGE_COLOR; SendMessage(tb.Handle,TB_ADDBITMAP,0,LPARAM(@tbBmp)); tb.ImageIndex:=STD_FILESAVE; |
Aber wie bekomme ich "Desktop anzeigen" und "Arbeitsplatz".
Beim Öffnen-Dialog hat man in der linken Leiste diese Symbole in Groß.
Genau die will ich haben.
Wie komme ich daran?
Ich glaube sie sind in shell32.dll (auch in groß?) aber wie binde ich das ein?
Edit:
So habe noch ein Bild angehängt, mit den Symbolen, die ich meine.
Schön wäre es auch noch, wenn ich so eine Toolbar bekommen könnte ;-).
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
jaenicke - Sa 13.12.08 23:18
Schau dir mal die Icons in der Explorer.exe an, beide sind darin enthalten, bekommen tust du die so:
http://www.delphi-library.de/viewtopic.php?p=125375#125375
Und woher man das herausbekommt:
Der Arbeitsplatz hat wie man
SCHNELL IM INTERNET FINDET die CLSID {20D04FE0-3AEA-1069-A2D8-08002B30309D}, also schaue ich in der Registry nach unter:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon
Wert: %SystemRoot%\Explorer.exe,0
Es ist also das Icon mit Index 0 der explorer.exe.
Und wenn du beispielsweise in die Eigenschaften eines beliebigen Ordners schaust, dann kannst du unter Anpassen ganz unten ein Symbol für diesen Ordner festlegen. Dort kannst du dir die Icons in Dateien anschauen ohne weitere Tools. Wähle dort einfach mal die explorer.exe aus ;-).
fuggaz - So 14.12.08 17:16
Hm..klappt soweit:
Ich bekomme das Bild als Canvas auf die Form gezeichnet.
Wenn ich aber versuche meine Toolbar hinzuzufügen wird da nichts draus...Zugriffsverletzung.
Delphi-Quelltext
1:
| tb_eingabe.Images.InsertIcon(1,AIcon); |
Außerdem sind die Icons klein. Kann ich die strecken? (einfach-klein wäre auch möglich bloß nicht so schön)
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
turboPASCAL - So 14.12.08 17:17
Guck mal in die OH* zu DrawIconEx.
* OH = online Hilfe -> F1
fuggaz - So 14.12.08 18:00
Hm Online-Hilfe?
Bist du in Delphi?(habe Delphi 7 und da gibts nur die normale Hilfe und die win32.hlp)
Mit DrawIcon bzw DrawIconEx bekomme ich es gar nicht hin:
Ich habe es mit der Form ausprobiert und mit DrawIcon:
Delphi-Quelltext
1: 2: 3: 4: 5:
| var icon:hicon; begin icon:=ExtractIcon(application.handle,'c:\windows\explorer.exe',0); DrawIcon(Form1.Handle,0,0,icon); end; |
Keine Fehlermeldung-tut sich aber auch nichts.
Ich habe es vorher mit DrawIconEx ausprobiert, da bekomme ich aber eine Fehlermeldung:
"Inkompatible Typen HBRUSH und Pointer"
Delphi-Quelltext
1:
| DrawIconEx(form1.Handle,0,0,Icon,30,30,0,nil,DI_NORMAL); |
Außerdem wüsste ich auch nicht wie ich es auch die Toolbar gemalt bekommt, weil nur die komplette Toolbar ein Handle hat...
Edit:
Vllt habe ich hier was gefunden:
http://www.delphipraxis.net/topic145133.html
Ich gucke mir das späte rmal an-muss jetzt mal weg.
Aber Kommentar nehme ich trotzdem gerne entgegen.;-)
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
fuggaz - So 14.12.08 20:42
Endlich hab ichs :-)
Das war nur eine optische Täuschung, dass der Button im Öffnen-Dialog größer war als Standardgröße.
Wenn man es transparent und mit passendem Hintergrund einstellt und noch die Schrift mit reintuen würde, dann sähe es auch viel größer aus.
So hier jetzt was ich habe und das klappt auch:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var Icon: TIcon; ImageList:TImageList; begin Icon:=TIcon.Create; ImageList:=TImageList.Create(nil); ImageList.Width:=32; ImageList.Height:=32; ImageList.DrawingStyle:=dsTransparent; ImageList.BkColor:=clBtnFace; GetIconFromFileA('c:\windows\system32\shell32.dll',34,Icon); ImageList.InsertIcon(0,Icon); tb.Images:=ImageList; tb_test.ImageIndex:=0; |
Danke für eure Hilfe!
mfg fuggaz
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!