Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
2 - PROFAN-Programmierung

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Vorherige Nachricht  |  Nächste Nachricht 
 Re: Programmicon in Gridbox stellen
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   11.09.17 18:16

Ich hab dein Code mal etwas modifiziert. Also mit genau dem,
was ich oben geschrieben habe, erweitert.

Ist das nicht das, was du wolltest ?

 $H Windows.ph
 $H Commctrl.ph
 
 DEF w32_ExtractAssociatedIcon(3) !"SHELL32","ExtractAssociatedIconA"
  DEF w32_DrawIcon(4) !"USER32","DrawIcon"
 Declare Lv#, IcoList&, hIcon&
 
 Struct Lvi = Mask&,Item&,SubItem&,State&,StateMask&,Text&,TextMax&,Image&,Param&
 Dim Lv#, Lvi
 
 IcoList& = Create("ImageList", 16,16)
 
  VAR EE%=0
  DECLARE name$
  DECLARE nr%,Lv&,x#
  '###################################################################
  'Hier das gewünschte Laufwerk und Verzeichnis einstellen 
  VAR lw$="C:\\TEMP"
  CHDIR lw$
  '-------------------------------------------------------------------------------------------------------
  VAR I%=0
  VAR spalte%=10
  VAR zeile%=5
  VAR steig%=32
  '------------------------------------------------------------------------------------------------------
  WINDOWSTYLE 0
  WINDOW 100,10-500,(%MaxY-60)
  VAR grid&=CREATE("GRIDBOX",%Hwnd,"Testbox;0;250",3,200,10,280,(%MaxY-130))
  SendMessage(grid&, ~LVM_SETIMAGELIST, ~LVSIL_SMALL, IcoList&)
  SendMessage(grid&, ~LVM_SETEXTENDEDLISTVIEWSTYLE,0, ~LVS_EX_SUBITEMIMAGES | ~LVS_EX_GRIDLINES)
  
  ANZEIGE lw$
  VAR aus&=CREATE("BUTTON",%hwnd;"Abbrechen",70,10,100,32)
  SETFOCUS(%Hwnd)
  WHILENOT EE%
  WAITINPUT
  CASE %KEY=2:EE%=1
  CASE CLICKED(aus&):EE%=1
  ENDWHILE
  Dispose Lv#
  END
  '##############################################################
  PROC ANZEIGE
  PARAMETERS lw$
  VAR I%=0
  CLEARLIST
  CLEARLIST lv&
  CHDIR lw$
  ADDFILES "*.*"
  WHILELOOP I%, %GETCOUNT
  name$ = GETSTRING$(0, &LOOP)
  IF LEFT$(name$,1)="["
  name$=UPPER$(name$)
  name$=TRANSLATE$(name$,"[",CHR$(32))
  name$=TRANSLATE$(name$,"]","")
  ELSE
  name$=LOWER$(name$)
  name$=CHR$(160)+name$
  ENDIF
  INC I%
  ADDSTRING(grid&,name$)
  IF LEFT$(name$,1)=CHR$(32)
          name$=TRANSLATE$(name$,CHR$(32),"")
          ExtractAssociatedIcon name$, 0
          w32_DrawIcon(%hdc,spalte%,zeile%,&(0))
          ImageList("AddIcon", IcoList&, &(0))
  ELSEIF LEFT$(name$,1)=CHR$(160)        
          name$=TRANSLATE$(name$,CHR$(160),"")     
          ExtractAssociatedIcon name$, hIcon&
          w32_DrawIcon(%hdc,spalte%,zeile%,&(0))
          ImageList("AddIcon", IcoList&, &(0))
  ENDIF
      zeile%=zeile%+steig%
       Clear Lv#
      Lv#.Mask& = ~LVIF_IMAGE
      Lv#.Item&   = &LOOP  '-----------------------------Zeile  0
      Lv#.SubItem& = 0 '-----------------------------Spalte 0
      Lv#.Image&  = &LOOP '-----------------------------Icon 1
      SendMessage(grid&, ~LVM_SETITEM, 0, Lv#)
  ENDWHILE
  
  ENDPROC
  '###############################################################
  PROC EXTRACTASSOCIATEDICON
  	PARAMETERS f$,i&
  	DECLARE h&
  	DIM x#,255
  	STRING x#,0=f$
  	i&=1
  	h&=w32_ExtractAssociatedIcon(%hinstance,x#,Addr(i&))
  	DISPOSE x#
  	RETURN h&
  ENDPROC
  '###############################################################
  


Das müßten doch die gleichen Icons, wie links mit
w32_DrawIcon(%hdc,spalte%,zeile%,&(0))
sein. Das sind auch die gleichen Icons, die im Explorer zu sehen sind.

Wenn nicht, reden wir irgendwie aneinander vorbei.

H.Brill
XProfan X3 + FreeProfan

 Beitrag beantworten  |  Foren-Liste  |  Alle Antworten   Neuerer Beitrag  |  Älteres Thema 

 Beiträge Autor  Datum
 Programmicon in Gridbox stellen  Neu
Horst Horn 11.09.17 11:06 
 Re: Programmicon in Gridbox stellen  Neu
Heinz Brill 11.09.17 16:29 
 Re: Programmicon in Gridbox stellen  Neu
Horst Horn 11.09.17 17:11 
 Re: Programmicon in Gridbox stellen  Neu
Heinz Brill 11.09.17 18:16 
 Re: Programmicon in Gridbox stellen  Neu
Horst Horn 11.09.17 19:58 
 Re: Programmicon in Gridbox stellen  Neu
Heinz Brill 11.09.17 20:16 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org