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 16:29

Das hier ist mit den Profan-Icons :
 Window 100, 100 - 520, 300
 $H Windows.ph
 $H Commctrl.ph
 Set("NumWidth", 3)
 
 Declare Lv&
 Lv& = create("GridBox", %hwnd, "Links;0;100;Mitte;0;100;Rechts;0;100", 1, 10, 50, 350, 150)
 addstring(Lv&, "Eintrag 1.1|Eintrag 1.2|Eintrag 1.3")
 addstring(Lv&, "Eintrag 2.1|Eintrag 2.2|Eintrag 2.3")
 addstring(Lv&, "Eintrag 3.1|Eintrag 3.2|Eintrag 3.3")
 
 Def LvGetCheck(2) TestBit(SendMessage(&(1),~LVM_GETITEMSTATE,%(2),~LVIS_STATEIMAGEMASK),13)
 
 Proc LvSetCheck  '---------------------------------LvSetCheck------------------------------
 
     parameters Lv&,Item&,Mode%
     Lv#.StateMask&=~LVIS_STATEIMAGEMASK
     Lv#.State&    =$1000*(Mode%+1)
     sendmessage(Lv&,~LVM_SETITEMSTATE,Item&,Lv#)
 EndProc
 
 Declare IcoList&
 IcoList& = Create("ImageList", 16,16)
 '--Die Höhe der Lv-Zeilen passt sich der Grösse der Icons an!
 ImageList("AddIcon", IcoList&, Create("hIcon", "A"))
 ImageList("AddIcon", IcoList&, Create("hIcon", "Baum"))
 ImageList("AddIcon", IcoList&, Create("hIcon", "Gesicht"))
    
 '--IcoList für Tabellenansicht mit ListView verbinden
 SendMessage(Lv&, ~LVM_SETIMAGELIST, ~LVSIL_SMALL,IcoList&)
 '--Checkboxen + Icons in SubItems + Gitterlinien
 SendMessage(Lv&, ~LVM_SETEXTENDEDLISTVIEWSTYLE,0,~LVS_EX_CHECKBOXES | ~LVS_EX_SUBITEMIMAGES | ~LVS_EX_GRIDLINES)
 
 Declare Lv#
 Struct Lvi = Mask&,Item&,SubItem&,State&,StateMask&,Text&,TextMax&,Image&,Param&
 Dim Lv#, Lvi
 Clear Lv#
 Lv#.Mask& = ~LVIF_IMAGE
 Lv#.Item&   = 0  '-----------------------------Zeile  0
 Lv#.SubItem& = 0 '-----------------------------Spalte 0
 Lv#.Image&  = 1  '-----------------------------Icon 1
 SendMessage(Lv&, ~LVM_SETITEM, 0, Lv#)
 Lv#.Item&   = 0  '-----------------------------Zeile  0
 Lv#.SubItem& = 1 '-----------------------------Spalte 1
 Lv#.Image&  = 2  '-----------------------------Icon 2
 SendMessage(Lv&, ~LVM_SETITEM, 0, Lv#)
 Lv#.Item&   = 0  '-----------------------------Zeile  0
 Lv#.SubItem& = 2 '-----------------------------Spalte 2
 Lv#.Image&  = 0  '-----------------------------Icon 0
 SendMessage(Lv&, ~LVM_SETITEM, 0, Lv#)
 
 LvSetCheck(Lv&, 1, 1) '---Eintrag abhaken (0 als 3.Parameter löscht den Haken)
 
 UserMessages 16  '--Close abfangen
 
 while 1
   WaitInput
   Locate 0,0
   Print "Gewählt:", GetCurSel(Lv&)
   Print "Check  :", LvGetCheck(Lv&,getcursel(Lv&))
   Case %UMessage = 16 : break
 EndWhile
 
 '--Aufrufen, wenn das Grid nicht mehr gebraucht wird:
 DestroyWindow(Lv&)
 ~ImageList_Destroy(IcoList&)
 dispose Lv#
 End
 


Dürfte aber nicht schwer sein, dein eigenes Icon oder das der
Programmverknüpfung in die Imageliste zu setzen und dann
das erste und einzige bei Lv#.Image& = 0 zu setzen.

Die Zauberformel ist wohl :

 SendMessage(Lv&, ~LVM_SETIMAGELIST, ~LVSIL_SMALL, IcoList&)
 SendMessage(Lv&, ~LVM_SETITEM, 0, Lv#)
 


das die Imagelist mit dem Grid verbindet und mit der
Struktur das Icon setzt.

Oben ist für alle 3 Spalten definiert.

H.Brill
XProfan X3 + FreeProfan

Nachricht bearbeitet (11.09.17 16:53)

 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