Deutsch
Forum

ICON-Anzeige in LISTVIEW.DLL

 
- Seite 1 -


Hallo Frank
KompilierenMarkierenSeparieren
ilist&=CreateImageList(1,addr(anzahl&))

Das ist die Zeile, mit dem die Image-Liste in mein Programm eingeladen wird. Funktioniert auch bestens. Jetzt hab ich aber auf Grund eines Tipps von J. Sellmeier festgestellt, dass manchmal nicht richtig gezeigt wird. Liegt das an der Systemeinstellung oder kannst Du das noch ein bischen verfeinern ? - Es geht in erster Linie um die LNK-Dateien. Wenn ich mit dem Kurzcode von PRFellow eine LNK-.Datei aufrufe, zeigt mir der Text das Icon der mit der LNK-Datei verknüpften Anwendung. Könnte das in Deiner DLL auch möglich gemacht werden ?
Hier der Code:
KompilierenMarkierenSeparieren
...und hier ein Ausschnitt aus meiner DESKTOP-Anzeige mit Der LISTVIEW.DLL

55 kB
Kurzbeschreibung: LNK-Dateien mit "neutralem" Icon
Hochgeladen:16.11.2006
Ladeanzahl309
Herunterladen
 
16.11.2006  
 



 
- Seite 1 -



Frank
Abbing
CreateImageList() mit Flag 1 holt den Handle der System-Imagelist. Also die Liste, mit der das System arbeitet mit den zu diesem Zeitpunkt darin liegenden Icons.
Du kannst aber jederzeit eine eigene Imagelist aufbauen, mit allen Icons, die du benötigst. Einige nötigen Definitionen dazu befinden sich bereits in der Datei Listview_Funktionen.inc. Wie man eine eigene Imageliste benutzt, zeigt z.B. das Listview-Demo Gezeichnete_Bitmap_einbauen.prf.
Benutzt du hingegen FilelistToCsv() und möchtest du die Linked Icons anzeigen, dann schalte einfach Flag $200 dazu. Das verzögert allerdings die Ausführung um ca. das Doppelte.
 
16.11.2006  
 



@Frank
[quote:dc7b1fb0f0]Benutzt du hingegen FilelistToCsv() und möchtest du die Linked Icons anzeigen, dann schalte einfach Flag $200 dazu. Das verzögert allerdings die Ausführung um ca. das Doppelte.[/quote:dc7b1fb0f0]
Hier ist ein Auszug aus meinem Text. Original übernommen aus der Anleitung und andere Listview-Variablen eingebaut. Als erstes frage ich mich schon immer, wie die 31 zusammen kommt. Mit den Werten aus der Anleitung komme ich nur bis 25 - ? - Wenn ich jetzt 200 dazugebe, wird die Anzeige total zum Chaos ? -
Was läuft da schief ?
KompilierenMarkierenSeparieren
bytes&=FilelistToCsv(addr(text$),bereich#,0,0,31,icons#)
x&=SetColumnsFromMem(LINKS_VIEW&,bereich#,addr(spalte%))
CsvToListview(LINKS_VIEW&,(bereich#+spalte%),(bytes&-spalte%),x&)
z&=GetLines(LINKS_VIEW&)
SetIconsFromMem(LINKS_VIEW&,0,icons#,z&)

Ein ziehmlich fertiger horst

Nachtrag: Im Explorer-Demo in den Beispieltexten steht an gleicher Stelle $11f und auch hier sind neutrale Icons in der Ansicht ?
 
16.11.2006  
 




Jörg
Sellmeyer
Hallo Horst,
Du mußt nicht 200 sondern $200 dazuaddieren. $200 ist Hex$(512).
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
16.11.2006  
 




Frank
Abbing
 
16.11.2006  
 



@Danke Jörg - aber ich habe einen Umrechner für die Hex-Werte

@Frank - nicht so dreckig grinsen
KompilierenMarkierenSeparieren
bytes&=FilelistToCsv(addr(text$),bereich#,0,0,($1+$2+$4+$8+$10+$200),icons#)
bytes&=FilelistToCsv(addr(text$),bereich#,0,0,(543),icons#)

Beide Schreibweisen haben keinerlei Auswirkung. Nun meine ich aber, irgendwann hätte mein Programm die Icons angezeigt. Werde heute mittag (muss zum Arzt ) PROFAN-9 einrichten und damit versuchen. Vielleicht gibt es eine Diskrepanz (schönes Wort) zwischen Listview.dll und XProfan-10 ?

21 kB
Kurzbeschreibung: Rechnet alle Werte um...
Hochgeladen:17.11.2006
Ladeanzahl66
Herunterladen
 
17.11.2006  
 




Jörg
Sellmeyer
Hallo Horst,
Ich habe jetzt die Filtermöglichkeiten der Dll nicht im Kopf, aber Du kannst vielleicht lnk-Dateien erst mal ausnehmen und dann nachträglich einfügen und die Icons mit dem Code von Prfellow dazupacken.
Das verlangsamt den Code natürlich, da Du bei jedem Verzeichniswechsel checken mußt, ob solche Dateien vorhanden sind.
Vielleicht löst sich das Problem ja auch noch von allein...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
17.11.2006  
 




Frank
Abbing
Der Flag dient in erster Linie Exe-Dateien, damit das Icon der Exe angezeigt wird und nicht das Standarticon. Ich weiss aber, dass es auch mit ähnlichen Dateien funktioniert. Ob es mit Lnk-Dateien auch geht, habe ich nie getestet und hab an diesem Computer auch nicht die Möglichkeit dazu (ist kein Profan und MASM installiert).

...und - ich grinse nie fies... ;D
 
17.11.2006  
 



@Frank
[quote:84ccfeb126]...und - ich grinse nie fies... happy[/quote:84ccfeb126]
Antwort - siehe Bild....

57 kB
Hochgeladen:17.11.2006
Ladeanzahl346
Herunterladen
 
17.11.2006  
 




Frank
Abbing
...meinst du etwa das moralisch unterstützende Zähneblecken?

 
17.11.2006  
 




Jörg
Sellmeyer
Wenn hier einer grinst, dann doch wohl ich, oder?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
17.11.2006  
 




Frank
Abbing
Hallo,

hab mal ein bischen experimentiert und nachgelesen. Die Sache mit den Lnk-Dateien ist etwas komplizierter als gedacht.
Hierbei ist nicht das Problem, an das linked-Icon zu kommen, sondern dieses zu archivieren. Dazu muss man wissen, dass ein Listview (mit Icons) an eine Imagelist gebunden ist und keine freien Icons verwenden kann. Nur Icons, die sich in der Imageliste befinden, können verwendet werden. FilelistToCsc() benutzt hierzu die Systemimageliste. Das Dazufügen, Wegnehmen und Freigeben von Icons ist aber mit einer Dll-Funktion, die alles in einem Rutsch ausliest und erst dann an eine grafische Routine übergibt, zu aufwendig. Dazu muss ich mir erstmal Gedanken machen.
Du wirst also zunächst ohne die Link-Icons auskommen müssen.

Der Flag $200 ist in dieser Form auch nur eine Krücke, weil sich die Systemimageliste fortwährend ändern kann und das zu Fehlern führen kann. Das werde ich so noch nicht lassen, sodass ich darum bitte, dieses Flag nicht unbedingt zu benutzen. Da wird sich was ändern.

Und wenn ich schon dabei bin, werde ich auch grosse Icons gleich mit einbeziehen.
 
17.11.2006  
 



 
- Seite 2 -


@Jörg - ich zitiere...
[quote:726f70074b]Du wirst also zunächst ohne die Link-Icons auskommen müssen.[/quote:726f70074b]
@Frank
[quote:726f70074b]Der Flag $200 ist in dieser Form auch nur eine Krücke, weil sich die Systemimageliste fortwährend ändern kann und das zu Fehlern führen kann. Das werde ich so noch nicht lassen, sodass ich darum bitte, dieses Flag nicht unbedingt zu benutzen. Da wird sich was ändern.[/quote:726f70074b]
Wird also rausgeschmissen - Frohes Schaffen
 
17.11.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.486 Betrachtungen

Unbenanntvor 0 min.
Walter18.06.2024
Member 154727723.09.2018
ByteAttack09.12.2016
Frank Vorholzer18.06.2012
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie