Español
Fuente/ Codesnippets

Aufpeppen Gridbox Listview

 

Uwe
''Pascal''
Niemeier
Hi Personas!

Hier unos pocos Möglichkeiten, ListViews algo interessanter a gestalten (XProfan 11):
KompilierenMarcaSeparación
window 10,100-750,300
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
struct HD=Mask&,cxy&,Text&,hbm&,TextMax&,fmt&,Param&,Image&,Order&,Type&,Filter&
declare hd#
dim hd#,HD
--Alle Spalten links
var a$=Spalte 1;0;120;Spalte 2;0;120;Spalte 3;0;120;Spalte 4;0;120;Spalte 5;0;120
var Lv&=create(gridbox,%hwnd,a$,0,10,30,700,200)
--Lv ohne Header:
setstyle Lv&,getstyle(Lv&) | ~LVS_NOCOLUMNHEADER
var Header&=sendmessage(Lv&,~LVM_GETHEADER,0,0)
addstring(Lv&,Test1a|Test2a|Test3a|Test4a|Test5a)
--Bei Bedarf:
setstyle Header&,$50000002--Header aktivieren
external(uxtheme.dll,SetWindowTheme,Header&,,)--XP-Style aus
var IcoList&=create(imagelist,16,16)
ImageList(AddIcon,IcoList&,~LoadIcon(0,32513))-- X-Icon
sendmessage(Header&,~HDM_SETIMAGELIST,0,IcoList&)
mcls 16,32--Bei aktivem Header überlagert hohes bmp den Tracking-Streifen!
startpaint -1
cls 255
endpaint
var Pic1&=create(hPic,0,&MEMBMP)
mcls 40,14
startpaint -1
cls 255*255
endpaint
var Pic2&=create(hPic,0,&MEMBMP)
--Kein Text: HDF_STRING weglassen
hd#.Mask&=~HDI_BITMAP | ~HDI_FORMAT
hd#.hbm&=Pic1&
hd#.fmt&=~HDF_STRING | ~HDF_BITMAP | ~HDF_RIGHT
sendmessage(Header&,~HDM_SETITEM,0,hd#)
hd#.Mask&=~HDI_BITMAP | ~HDI_FORMAT
hd#.hbm&=Pic2&
hd#.fmt&=~HDF_STRING | ~HDF_BITMAP | ~HDF_BITMAP_ON_RIGHT | ~HDF_RIGHT
sendmessage(Header&,~HDM_SETITEM,1,hd#)
hd#.Mask&= ~HDI_IMAGE | ~HDI_FORMAT
hd#.Image&=0---Icon aus ImageList
hd#.fmt&=~HDF_STRING | ~HDF_IMAGE  | ~HDF_RIGHT
sendmessage(Header&,~HDM_SETITEM,2,hd#)
hd#.Mask&=~HDI_FORMAT
hd#.fmt&=~HDF_STRING | ~HDF_RIGHT | $200--HDF_SORTDOWN
sendmessage(Header&,~HDM_SETITEM,3,hd#)
hd#.Mask&=~HDI_FORMAT
hd#.fmt&=~HDF_STRING | ~HDF_RIGHT | $400--HDF_SORTUP
sendmessage(Header&,~HDM_SETITEM,4,hd#)
--aktiver Header durchbricht WaitInput bei Klicken *und* loslassen!
print hier klicken!
--Änderung der Textausrichtung des Headers wirkt sich auch auf das Lv aus,
--wird aber erst nach Neuzeichnen sichtbar:
waitinput
repaint
waitinput
--Größe & Position des Headers läßt sich im Prinzip ändern;
--wird aber vom Lv bei nächster Gelegenheit zurückgesetzt.
--Könnte aber als Toolbar verwendet werden :-)
setwindowpos Header&=0,0-700,100
repaint
waitinput
addstring(Lv&,Test1b|Test2b|Test3b|Test4b|Test5b)
repaint

while 1

    waitinput

ef='./../../funktionsreferenzen/XProfan/endwhile/'>endwhile


KompilierenMarcaSeparación
window 10,100-450,300
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
declarar 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 sin Encabezamiento:
    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$(&bucle)))

    endwhile

    LvSetIcon(Lv&,0,0,1)--Aufruf: LvSetIcon(Handle&,Línea%,Spalte%,Icon%)
    LvSetIcon(Lv&,1,1,2)--Werte para Línea,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)

    mientras que 1

        waitinput

    endwhile


@ Thomas: Meintest du algo como?

SeeYou
Pascal

[offtopic]
@ IF: Ist me gerade aufgefallen: In el Codebox se sí el Original-Schreibweise (Groß/Klein) beibehalten
Wäre aber schön si auch Leerzeilen obtener blieben.

Editar de IF: Mit el Leerzeichen y Tabs kämpfe Yo ya una Weile - si yo fertig habe voluntad (natürlich) auch Leerzeichen y Tabs (si no grad führend oder abschliessend) beibehalten.
[/offtopic]
 
13.03.2009  
 




Thomas
Freier
He Pascal,

Gracias para el Beispiele. Ist el, Yo suchte.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.03.2009  
 



Yo bin No sicher si el así gewollt es (Screenshot) beim ersten Male Draggen el Spaltenbreite beim Ejemplo 1:



Ab el 2. Male (Draggen el Spaltenbreite) hingegen erhalte Yo no Pantalla de error (?).

Aber: Juhu! So va el also!

8 kB
Hochgeladen:13.03.2009
Ladeanzahl316
Descargar
 
13.03.2009  
 




Uwe
''Pascal''
Niemeier
Hi IF!


Yo bin No sicher si el así gewollt es (Screenshot) beim ersten Male Draggen el Spaltenbreite


Gewollt no ,aber absehbar

Lo se sí después de cada WaitInput a Demozwecken algo ausprobiert.

En Aktionen en el Encabezamiento voluntad aber incluso mehrere WaitInputs durchbrochen; por lo tanto es sí en el Ventana extra Hier clic

SeeYou
Pascal
 
13.03.2009  
 



Ah!
 
13.03.2009  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

6.301 Views

Untitledvor 0 min.
Gast.081512.10.2024
Walter19.07.2024
Member 862464113.05.2024
Axel Berse08.11.2023
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie