Autor Beitrag
fuggaz
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 106



BeitragVerfasst: Sa 13.12.08 23:04 
Hey,
Ich kenne folgende Methode um Icons in eine Toolbar zu laden:
ausblenden 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 user profile iconNarses: Code- durch Delphi-Tags ersetzt
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
www.delphi-library.d....php?p=125375#125375

Und woher man das herausbekommt:
Der Arbeitsplatz hat wie man Suche bei Google 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 106



BeitragVerfasst: 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.

ausblenden 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 user profile iconNarses: Code- durch Delphi-Tags ersetzt
turboPASCAL
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP / Vischda
D6 PE / D2005 PE
BeitragVerfasst: So 14.12.08 17:17 
Guck mal in die OH* zu DrawIconEx.

* OH = online Hilfe -> F1

_________________
Nein, ich bin nicht der turboPASCAL aus der DP, ich seh nur so aus... :P


Zuletzt bearbeitet von turboPASCAL am So 14.12.08 17:19, insgesamt 1-mal bearbeitet
fuggaz Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 106



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

ausblenden 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"
ausblenden 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:
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 user profile iconNarses: Code- durch Delphi-Tags ersetzt
fuggaz Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 106



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

ausblenden 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 user profile iconNarses: Code- durch Delphi-Tags ersetzt