Fuente/ Codesnippets | | | | Uwe ''Pascal'' Niemeier | Hi Personas!
Hier unos pocos Möglichkeiten, ListViews algo interessanter a gestalten (XProfan 11): KompilierenMarcaSeparaciónwindow 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ónwindow 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] |
| | | | |
| | Thomas Freier | He Pascal,
Gracias para el Beispiele. Ist el, Yo suchte. |
| | | | |
| | | 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! |
| | | | |
| | 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 |
| | | | |
| | | Ah! |
| | | | |
|
Zum QuelltextThemeninformationenDieses Thema ha 3 subscriber: |