'Source wurde al 15.07.2007 de el MMJ-Quellcodesammlung (Dietmar Horn) en el Babyklappe en XProfan.Com abgelegt:
'Listview redactar
$I profalt.inc
DEF @GetSysColor(1) !"USER32","GetSysColor"
Settruecolor 1
Declarar CLASSNAME$,LVHandle&,OK&,LVC#,TXT$,Texto#,Text&,LVI#,Chosen&
Declarar Columntext#,Line#,LVITEM#,List_Text#,Line1$,Line2$,Line3$,Style&
Windowstyle 31
Windowtitle "A little ListView"
Ventana 0,0-640,440
CLS @getsyscolor(15)
LET OK&=@CREATEBUTTON(%HWND,"OK",10,360,100,30)
LET CLASSNAME$="SysListView32"
Let Style&=$40000000+$10000000+$0001+$0200+$8
LET LVHandle&=@Control(CLASSNAME$,"",Style&,20,20,300,300,%HWND,0,%Hinstance)
@sendmessage(LVHandle&,$1036,0,$20+$1)'show lines, seleccionar full row
@sendmessage(LVHandle&,$1036,0,$20+$1+$4)'show checkboxes,show lines, seleccionar full row
Dim LVC#,24
DIM Columntext#,256
String Columntext#,0="Column 1"
Largo LVC#,12=Columntext#
Largo LVC#,0=$0001+$0002+$0004+$0008
Largo LVC#,4=0
Largo LVC#,8=100
Largo LVC#,20=0
Largo LVC#,16=@LEN(@String$(Columntext#,0))+1
@sendmessage(LVHandle&,@ADD($1000,27),1,LVC#)
String Columntext#,0="Column 2"
Largo LVC#,12=Columntext#
Largo LVC#,0=$0001+$0002+$0004+$0008
Largo LVC#,4=0
Largo LVC#,8=100
Largo LVC#,20=0
Largo LVC#,16=@LEN(@String$(Columntext#,0))+1
@sendmessage(LVHandle&,@ADD($1000,27),2,LVC#)
String Columntext#,0="Column 3"
Largo LVC#,12=Columntext#
Largo LVC#,0=$0001+$0002+$0004+$0008
Largo LVC#,4=0
Largo LVC#,8=100
Largo LVC#,20=0
Largo LVC#,16=@LEN(@String$(Columntext#,0))+1
@sendmessage(LVHandle&,@ADD($1000,27),3,LVC#)
Disponer Columntext#
Proc Get_List_Text
Parámetros LV_HANDLE&,List_Index&,ColumnIndex&
Declarar ERG$
Dim Line#,36
DIM List_Text#,256
CLEAR Line#
long Line#,0=$1
long Line#,8=ColumnIndex&
long Line#,4=List_Index&
long Line#,20=List_Text#
long Line#,24=256
@sendmessage(LV_HANDLE&,$1005,List_Index&,Line#)
Let ERG$=@String$(List_Text#,0)
Disponer Line#
Disponer List_Text#
Volver ERG$
ENDPROC
DIM LVI#,36
Dim Columntext#,256
Claro LVI#
String Columntext#,0="Line 1 / Column 1"
Largo LVI#,0=$0001
Largo LVI#,4=0
Largo LVI#,8=0
Largo LVI#,20=Columntext#
Largo LVI#,24=@LEN(@cadena$(Columntext#,0))
@sendmessage(LVHandle&,$1000+7,1,LVI#)
String Columntext#,0="Line 2 / Column 2"
Largo LVI#,0=$0001
Largo LVI#,4=1
Largo LVI#,8=0
Largo LVI#,20=Columntext#
Largo LVI#,24=@LEN(@cadena$(Columntext#,0))
@sendmessage(LVHandle&,$1000+7,1,LVI#)
String Columntext#,0="Line 3 / Column 1"
Largo LVI#,0=$0001
Largo LVI#,4=2
Largo LVI#,8=0
Largo LVI#,20=Columntext#
Largo LVI#,24=@LEN(@cadena$(Columntext#,0))
@sendmessage(LVHandle&,$1000+7,2,LVI#)
String Columntext#,0="Line 1 / Column 3"
Largo LVI#,0=$0001
Largo LVI#,4=0
Largo LVI#,8=2
Largo LVI#,20=Columntext#
Largo LVI#,24=@LEN(@cadena$(Columntext#,0))
@sendmessage(LVHandle&,$1000+46,0,LVI#)
String Columntext#,0="Line 3 / Column 2"
Largo LVI#,0=$0001
Largo LVI#,4=2
Largo LVI#,8=1
Largo LVI#,20=Columntext#
Largo LVI#,24=@LEN(@cadena$(Columntext#,0))
@sendmessage(LVHandle&,$1000+46,2,LVI#)
Disponer Columntext#
Disponer LVC#
Disponer LVI#
Mientras que 0=0
IF @getfocus(OK&)
LET Chosen&=@sendmessage(LVHandle&,$100C,-1,2)
LET Chosen&=Chosen&+1
IF Chosen&<>0
Get_List_Text LVHandle&,Chosen&-1,0
LEt Line1$=@$(0)
Get_List_Text LVHandle&,Chosen&-1,1
LEt Line2$=@$(0)
Get_List_Text LVHandle&,Chosen&-1,2
LEt Line3$=@$(0)
@messagebox("Text en column 1: "+Line1$+"Text en column 2: "+Line2$+"Text en column 3: "+Line3$,"Line "+@str$(Chosen&)+" has been chosen!",64)
endif
endif
wend
'--------------------------------------------------------------------------------
'regards