![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) | ||
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
Die Zeile habe ich von Andreas Hötker:
Zitat:
Zitat:
Es geht, aber bei mir ist 'Ladehemmung' Finde einfach keinen Einstieg
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
||
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
So in der Art (kein lauffähiger Quelltext):
Code:
Declare Iconliste&, Iconnummer_in_der_Liste&
Declare Zeile#
Struct LVITEM=IMASK&,ITEM&,ISUBITEM&,State&,StateMask&,ITEXT&,ITEXTMAX&,IIMAGE&,ILPARAM&
Proc Iconliste_Erzeugen
Parameters Handle_der_Listview&, Iconbreite&, Iconhöhe&
Case Iconliste&<>0 : External("comctl32.dll","ImageList_Destroy",Iconliste&)
Iconliste&=External("Comctl32.dll","ImageList_Create",Iconbreite&,Iconhöhe&,$FE | $1,4,8)
sendmessage(Handle_der_Listview&,$1003,1,Imagelist&)
endproc
Proc Icon_Hinzufügen
Parameters IconHandle&
Iconnummer_in_der_Liste&=Iconnummer_in_der_Liste&+1
External("comctl32.dll","ImageList_AddIcon",Iconliste&,IconHandle&)
endproc
Proc Listviewzeile_hinzufügen
Parameters Lvhndl&,Index&,spalte&,Text$,Image&
Dim Zeile#,LVITEM
Clear Zeile#
IF Image&=0
Zeile#.IMASK&=$0001
else
Zeile#.IMASK&=$000B
Zeile#.IIMAGE&=IMAGE&
endif
Zeile#.ITEM&=Index&
Zeile#.ITEXT&=Addr(Text$)
Zeile#.ITEXTMAX&=Len(Text$)
IF spalte&=0
ItemNumber&=Sendmessage(Lvhndl&,$1007,0,Zeile#)
else
Zeile#.ISUBITEM&=spalte&
ItemNumber&=Sendmessage(Lvhndl&,$102E,Index&,Zeile#)
endif
Dispose Zeile#
Endproc
Clear Iconliste&
Iconnummer_in_der_Liste&=-1
grid00&=CREATE("GRIDBOX",%Hwnd,titel00$,1,5,25,250 ,320)
Iconliste_Erzeugen grid00&,17,17
'........
IconHandle&=External("SHELL32.dll","ExtractIconA", %HINSTANCE,addr(Name_der_EXE$),0)
Icon_Hinzufügen IconHandle&
DeleateObject IconHandle&
Listviewzeile_hinzufügen grid00&,0,0,"Name_der_EXE",Iconnummer_in_der_Liste&
'........
IconHandle&=External("SHELL32.dll","ExtractIconA", %HINSTANCE,addr(Name_der_EXE$),0)
Icon_Hinzufügen IconHandle&
DeleateObject IconHandle&
Listviewzeile_hinzufügen grid00&,1,0,"Name_der_EXE",Iconnummer_in_der_Liste&
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#3 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Hallo Horst,
Ich habe sowas mal für einen Datei-Commander gemacht. Leider habe ich den Code durch einen Crash verloren. Vom Weg her habe ich eine leere Imageliste angelegt dann jede Datei über die API ExtractAssociatedIcon geschickt und das Iconhandle der Imageliste zugefügt und dann das jeweilige Icon der Datei zugefügt. So bekommst du das Icon für alle Dateien, nicht nur Exe-Dateien. In die Listview habe ich dann die Datei mit Icon mit folgendem Code eingefügt. Aufruf ist Add_Item(Handle,feld1,feld2,usw,Iconnummer) proc Add_item Declare NewIndex&,Count&,Line&,LV_ITEM#,hdl& hdl& = @&(1) If (getcount(hdl&) < 0) Line& = getcount(hdl&)+1 Else Line& = getcount(hdl&) EndIf SendMessage(hdl&, 11, 0, 0) Dim LV_ITEM#, 500 Let Count& = 0 Long LV_ITEM#,0 = 11 Long LV_ITEM#,4 = Line& Long LV_ITEM#,8 = Count& Long LV_ITEM#,12 = 0 Long LV_ITEM#,16 = 0 Long LV_ITEM#,20 = (LV_ITEM#+36)'text Long LV_ITEM#,24 = 261 Long LV_ITEM#,28 = @&(%Pcount) Long LV_ITEM#,32 = 0 let Count&=count&+2 String LV_ITEM#,36 = @$(Count&) Let NewIndex& = @SendMessage(hdl&,$1007,0,LV_ITEM#) Long LV_ITEM#,28 = 0 While (Count& < %PCount) Long LV_ITEM#,8 = Count&-1 Inc Count& String LV_ITEM#,36 = @$(Count&) @Sendmessage(hdl&,4142,NewIndex&,LV_ITEM#) EndWhile dispose LV_ITEM# SendMessage(hdl&, 11, 1, 0) Return NewIndex& endproc Gruß Dieter
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Die Listview.dll benutzt die API SHGetFileInfo, um die Iconhandle zu erhalten. Habe damit die besseren Erfahrungen gemacht, die Qualität der Icons betreffend.
Einsetzen ins Listview geht mit der Message LVM_SETITEM.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#5 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 13.02.2009
Beiträge: 19
|
Hi Leute!
Hier ein Beispiel für Xprofan 11: Code:
window 450,300
$H Messages.ph
$H Windows.ph
$H commctrl.ph
declare Lv#
struct Lv=Mask&,Item&,SubItem&,State&,StateMask&,Text&,TextMax&,Image&
dim Lv#,Lv
proc LvSetIcon'---------------------------------------------LvSetIcon
Lv#.Item&=&(2)
Lv#.SubItem&=&(3)
Lv#.Mask&=~LVIF_IMAGE
Lv#.Image&=%(4)
sendmessage(&(1),~LVM_SETITEM,0,Lv#)
endproc'-------------------------------------------------------------
var IcoList&=create("ImageList",16,16)
ImageList("AddIcon",IcoList&,~LoadIcon(0,32512))
ImageList("AddIcon",IcoList&,~LoadIcon(0,32513))
ImageList("AddIcon",IcoList&,~LoadIcon(0,32514))
ImageList("AddIcon",IcoList&,~LoadIcon(0,32515))
var a$="Spalte 1;0;120;Spalte 2;0;120;Spalte 3;0;120"
var Lv&=create("gridbox",%hwnd,a$,0,10,30,400,200)
sendmessage(Lv&,~LVM_SETIMAGELIST,~LVSIL_SMALL,IcoList&)
sendmessage(Lv&,~LVM_SETEXTENDEDLISTVIEWSTYLE,0,~LVS_EX_SUBITEMIMAGES | ~LVS_EX_GRIDLINES)
'--Gitterlinien überzeichnen Icons teilweise!
'--Lv ohne Header:
'setstyle Lv&,getstyle(Lv&) | ~LVS_NOCOLUMNHEADER
a$="Test x a|Test x b|Test x c|Test x d|Test x e"
whileloop 1,5
addstring(Lv&,translate$(a$,"x",str$(&loop)))
endwhile
LvSetIcon(Lv&,0,0,1)'--Aufruf: LvSetIcon(Handle&,Zeile%,Spalte%,Icon%)
LvSetIcon(Lv&,1,1,2)'--Werte für Zeile,Spalte,Icon 0-basiert!
LvSetIcon(Lv&,2,2,3)
LvSetIcon(Lv&,3,0,getcount(IcoList&))
LvSetIcon(Lv&,4,0,99)
LvSetIcon(Lv&,4,2,0)
while 1
waitinput
endwhile
Pascal |
|
|
|
|
|
|
#6 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
@Hallo Pascal
Schön, dass du dich auch mal meldest. Den Code, den du postest, habe ich. Aber der nützt mir nichts. Die Gridbox, auf die es bei mir ankommt, listet EXE-Dateien auf, die auf der Festplatte des jeweiligen Systems vorhanden sind. Jede EXE-Datei hat normal ein Programm-Icon (XProfan z. B. das "P") und dieses Icon möchte ich vor dem EXE-Eintrag in der Gridbox anzeigen. Es ist möglich, aber ich habe "keinen Dunst", wie das gehen soll !
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
#7 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Hab dir grad was geschickt. Musste erst XProfanFree installieren, deswegen hat's etwas gedauert.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#8 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
Hallo an alle Tipp-Geber
Andreas Hötker hat den Zuschlag Danke noch mal für alle Tipps
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
#9 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Ich wusste ja, wofür du das brauchst, hab's darauf zugeschnitten.
PS: Vor dem Neuscannen evtl. die Iconliste (Imageliste) neu erstellen, damit nicht immer wieder die sowieso schon vorhandenen Icons neu hinzugefügt werden. Das Ding wird sonst suf Dauer zum Speicherfresser.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#10 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
|
#11 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
...Ja, ja und vor allen Dingen der XProfan-Gridbox ihr komisches Sortieren abgewöhnen
Da muss Roland noch mal ran Auf dem ScreenShot weiter oben sieht man das - es wird nicht alphabetisch sortiert
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de Geändert von horsthorn (14.05.2009 um 17:13 Uhr) Grund: "Druckfehler !" |
|
|
|
|
|
#12 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
Vielleicht wäre es ganz günstig, das erste Icon von den dreien in der Liste durch ein rotes Warnicon zu ersetzen, wenn dort etwas nicht stimmt und ansonsten immer ein grünes Icon für OK zu verwenden...
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
|
#13 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
Ohne Sortierung listet das Tool die Prozesse so, wie sie gestartet wurden. Das ist bei einem Tool, das unter anderem Hinweise auf Malware geben soll, vorteilhafter, als die Prozesse nach dem Alphabet zu sortieren. Die Zeilennumer, an der sich die jeweilige Zeile nach der Sortierung befindet, ist das Ergebnis der Message Code:
Sendmessage(Lvhndl&,$1007,0,Zeile#)
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
|
#14 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
Wenn Du es anders möchtest, ist "Handarbeit" angesagt ... oder Franks ListView.DLL, die diese für Dich rasend schnell abnimmt. Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#15 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
@Roland
Da Frank weiß, daß ich ein Fan von der LISTVIEW.DLL bin, wird er mir verzeihen, wenn ich sage, ich will ein "Stand-Allone"-Programm schreiben! Also ohne DLL ! ...und da ich ein sturer alter Mann bin und Andreas Hötker immer noch "1 Ass im Ärmel hat", werde ich das auch hinkriegen Ich hab ja schon eine Version mit DLL geschrieben - aber da werden die Icons nicht so angezeigt, wie mir das vorschwebt (Frank weiß Bescheid)
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| IE Icon weg | Unregistriert | Windows XP | 5 | 02.03.2009 14:09 |
| Icon Programm | Peter | Software - Allgemein | 5 | 01.04.2007 09:40 |
| WinXP Papierkorb Icon :=> Größe ändern?! Vista Icon?! | NilsG | Windows XP | 0 | 05.09.2006 16:15 |
| Icon ändern (programm profan)? | Poeli | Sonstige Programmiersprachen | 20 | 13.06.2005 15:12 |
| Shell-Icon durch eigenes Icon ersetzen | Drago | Windows XP | 2 | 08.12.2003 11:42 |