Delphi-PRAXiS
Seite 2 von 3     12 3      

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 ListView, Icon und SHGetFileInfo (https://www.delphipraxis.net/22059-listview-icon-und-shgetfileinfo.html)

HomerGER 12. Mai 2004 13:30

Re: ListView, Icon und SHGetFileInfo
 
meine icon habe ich hier eingetragen
HKEY_LOCAL_MACHINE
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer \DriveIcons\C\DefaultIcon

kannst du mal bitte den link von ms geben

MathiasSimmack 12. Mai 2004 13:48

Re: ListView, Icon und SHGetFileInfo
 
Der Schlüssel passt schon (s. [msdn]"customizing icons"[/msdn]). Evtl. mal kurz ab- und wieder anmelden, damit die Symbole neu geladen werden. Im PSDK steht, mal soll auch [msdn]"SHUpdateImage"[/msdn] aufrufen. Aber das ist nur interessant, wenn man das Icon über ein Programm ändert und nicht durch den eigenen Eingriff auf/in die Registry.

HomerGER 12. Mai 2004 15:19

Re: ListView, Icon und SHGetFileInfo
 
hmm
also die Icon hatte ich schon lange geändert
hat sie mir aber nicht im ListView angezeigt, nach dem Ich erst den Rechner neu geboot habe sind sie da


warum hat sie SHGetFileInfo nicht gleich angezeigt ?

mirage228 12. Mai 2004 15:40

Re: ListView, Icon und SHGetFileInfo
 
Zitat:

Zitat von HomerGER
hmm
also die Icon hatte ich schon lange geändert
hat sie mir aber nicht im ListView angezeigt, nach dem Ich erst den Rechner neu geboot habe sind sie da


warum hat sie SHGetFileInfo nicht gleich angezeigt ?

Wie wärs damit:

Zitat:

Zitat von MathiasSimmack
...Im PSDK steht, mal soll auch SHUpdateImage aufrufen...

mfG
mirage228

MathiasSimmack 12. Mai 2004 15:48

Re: ListView, Icon und SHGetFileInfo
 
Ich kann jetzt nur für mich sprechen: Ich habe das Symbol manuell geändert (also durch Eingriff in die Registry per Hand), und da war es auch erst nach dem Ab- und wieder Anmelden zu sehen.

Wenn du, @HomerGER, schreibst
Zitat:

die Icon hatte ich schon lange geändert
dann heißt das, dass dein Rechner wohl ebenfalls schon so lange läuft. Will sagen: Wenn ich von meiner Situation ausgehe, hättest du in der ganzen Zeit die neuen Symbole auch nicht im Explorer sehen dürfen. Und wenn doch, dann liefert "SHGetFileInfo" auch das entsprechende (in dem Fall: neue) Symbol zurück. Und wenn du jetzt sagst: Im Explorer habe ich die neuen Symbole gesehen, aber "SHGetFileInfo" hat sie mir nicht angezeigt, dann gehe ich -sorry!- von irgendeinem kleinen Flüchtigkeitsfehler in deinem Programm aus.

HomerGER 12. Mai 2004 16:11

Re: ListView, Icon und SHGetFileInfo
 
Zitat:

dann gehe ich -sorry!- von irgendeinem kleinen Flüchtigkeitsfehler in deinem Programm aus.
sorry von DEINEM PROGRAMM :roll: :angle2:

ich habe dein Code genommen und da war es gleich - erst nach dem neustart waren sie zu sehen

irgenwas mit iconcache ? womöglich ?

MathiasSimmack 12. Mai 2004 19:09

Re: ListView, Icon und SHGetFileInfo
 
Zitat:

Zitat von HomerGER
sorry von DEINEM PROGRAMM :roll: :angle2:

Zitate bitte nicht aus dem Zusammenhang reißen
Ich schrieb
Wenn du jetzt sagst: Im Explorer habe ich die neuen Symbole gesehen, aber "SHGetFileInfo" hat sie mir nicht angezeigt, dann gehe ich -sorry!- von irgendeinem kleinen Flüchtigkeitsfehler in deinem Programm aus.

HomerGER 12. Mai 2004 19:52

Re: ListView, Icon und SHGetFileInfo
 
also ich habe die icon schon ewig auf mein pc geändert

ich hab sie nicht mit meinen code und nicht mit deinen code in listview gesehen
wie gesagt erst nach ein reboot
dann hat er sie mit meinen code und mit deinen code angezeigt
im Explorer waren sie immer da
aber dann auch nur wenn ich auf vsIcon gestellt habe bei vsReport hat er überhaupt kein icon angezeigt auch nicht das standard

2 frage noch zu deinem code
warum benutzt du TListItem und übergibst es nicht direkt an ListView

li.ImageIndex := fi.iIcon; und nicht ListView.ImageIndex := fi.iIcon;

was bring das
ListView1.Items.BeginUpdate;
ListView1.Items.EndUpdate;

wenn ich die function aufrufe gib er mir denn nicht die aktuellen werte ?

MathiasSimmack 12. Mai 2004 20:34

Re: ListView, Icon und SHGetFileInfo
 
Zitat:

Zitat von HomerGER
im Explorer waren sie immer da
aber dann auch nur wenn ich auf vsIcon gestellt habe bei vsReport hat er überhaupt kein icon angezeigt auch nicht das standard

Also waren sie im Explorer offenbar doch nicht immer da. Evtl. ein Aktualisierungsproblem auf deinem Rechner, das aber dann am Windows liegt. Musst du mal in den Einstellungen schauen, ob du da versehentlich was verstellt hast.

Zitat:

2 frage noch zu deinem code
warum benutzt du TListItem und übergibst es nicht direkt an ListView

li.ImageIndex := fi.iIcon; und nicht ListView.ImageIndex := fi.iIcon;
Weil das, was du da geschrieben hast, Quatsch wäre. ;)
Delphi-Quellcode:
ListView.ImageIndex
bringt´s glaube ich nicht. Du meinst wahrscheinlich
Delphi-Quellcode:
ListView.Items[ListView.Items.Count-1].ImageIndex
und da deklariere ich mir dann doch lieber eine lokale Variable, weil es sich einfacher arbeiten lässt. Und Ja: Es mag sein, dass das in Delphi 6 oder 7 einfacher geht. Aber ich finde D7 nicht gerade prickelnd, und darum bleibe ich nach wie vor lieber bei Delphi 5.

Zitat:

was bring das
ListView1.Items.BeginUpdate;
ListView1.Items.EndUpdate;
Einen beschleunigten Aufbau bzw. ein etwas schnelleres Laden des Programms, weil die Werte im Hintergrund geladen werden. Das Control (die List-View in dem Fall) zeigt sie allerdings nicht an. Erst wenn das "EndUpdate" kommt, wird das Control aktualisiert. Das macht sich speziell dann sehr schön, wenn du eine ganze Latte an Einträgen hast, die u.U. auch sehr langsam laden.

Im Normalfall guckst du zu, wie die Einträge nacheinander irgendwo reingeschrieben werden. Mit "BeginUpdate" und "EndUpdate" beschleunigst du den Prozess ein bisschen.

Steht in der Hilfe genauer.

HomerGER 12. Mai 2004 21:06

Re: ListView, Icon und SHGetFileInfo
 
Zitat:

Also waren sie im Explorer offenbar doch nicht immer da. Evtl. ein Aktualisierungsproblem auf deinem Rechner, das aber dann am Windows liegt. Musst du mal in den Einstellungen schauen, ob du da versehentlich was verstellt hast.
im exlporer waren sie IMMER DA !
nur nicht im ListView, nicht in meinem code und nicht in deinem Code


thx für die antworten
werde mein code umbauen


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
Seite 2 von 3     12 3      

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