Source / code snippets | | | | | certainly for Beginner interestingly - here fehlts yet: CompileMarkSeparationWINDOWSTYLE 31
WINDOWTITLE Listbox mit Mehrfachauswahl
WINDOW 0,0-640,440
Declare MLISTBOX&,OK&,ITEM#,Anzahl&,Dialog&,Auswahl&,Style&,Suche$,Zähler&,ITEM&
LET OK&=@CREATEBUTTON(%HWND,Select,20,360,100,30)
LET MLISTBOX&=@Control(ListBox,,$40000000+$10000000+$400000+$200000+2+8+$1000,20,20,300,300,%HWND,2112,%HINSTANCE)
CHDIR $WINPATH
LET SUCHE$=@FINDFIRST$(*.*)
While SUCHE$<>
@AddString(MLISTBOX&,Suche$)
LET SUCHE$=@FINDNEXT$()
WEND
while 0=0
WAITINPUT
IF @GETFOCUS(OK&)
LET ANZAHL&=@sendmessage(MLISTBOX&,$0190,0,0) Anzahl ausgewählter Einträge ermitteln
IF @gt(Anzahl&,32767)
Let Anzahl&=32767
@messagebox(Anzahl der gewählten Einträge zu hoch, es werden nicht alle ausgewählten Einträge angezeigt!,Hinweis,64)
endif
DIM ITEM#,@MUL((Anzahl&+1),4)
@SENDMESSAGE(MLISTBOX&,$0191,Anzahl&,ITEM#) Auslesen der gwählten Einträge
IF @gt(ANZAHL&,0)
LET DIALOG&=@CREATEDIALOG(%HWND,Auswahl,10,10,300,300,)
LET Auswahl&=@Control(Listbox,,$40000000+$10000000+$4000,20,20,200,200,Dialog&,2113,%HINSTANCE)
LET ZÄHLER&=0
Whilenot Zähler&>=Anzahl&
LET ITEM&=@WORD(ITEM#,@MUL(Zähler&,4))
@ADDSTRING(AUSWAHL&,@GetString$(MLISTBOX&,ITEM&))
LET Zähler&=Zähler&+1
WENd
Whilenot %KEY=2
waitinput
wend
@Destroywindow(DIALOG&)
ENDIF
DISPOSE ITeM#
ENDIF
ref='./../../function-references/XProfan/wend/'>wend
|
| | | | |
| | | CompileMarkSeparationSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Listbox mit Mehrfachauswahl
==================================================================
Beispiel einer Multiselect-Listbox ab Profan 5.5 32 Bit.
Die Messages für 16 Bit ändern.(Profan Referenz Listox Messages)
Mehrere Einträge in einer Listbox auswählen
------------------------------------------------------------------
(c)1997 Richard Maurukas
==================================================================
declare MultselDialog%,multisellist&,normalList&,ende%,i1%,ok%
declare Anzahl&,selitem&,Text$,Text%,Textlänge&
declare Text#
declare ID#
dim Text#,255 Der Selektierte Text der Listbox
dim ID#,300 Maximale Adresse für die Selektierung bei
Bedarf erweitern.
Dialogfenster------------------------------------------------------
Let MultselDialog%=createdialog(%Hwnd,Multiselect-Liste,
1997 Richard Maurukas,100,100,400,300)
let multisellist& =control(LISTBOX,,$50800048, 20,10,150,200,
MultselDialog%,100, %HInstance)
Let normalList& =Createlistbox(MultselDialog%,,205,10,150,192)
let ok%=@createbutton(MultselDialog%,OK =>,20,220,80,20)
Etwas in die Multsellist schreiben-------------------------------
addstring(multisellist&,Richard)
addstring(multisellist&,Maurukas)
addstring(multisellist&,Multiselect-Liste)
addstring(multisellist&,Für Profan 32 bit)
addstring(multisellist&,Messages für 16 bit)
addstring(Multisellist&,lt. Referenz ändern!)
Auf Entscheidung des Anwenders warten----------------------------
Let i1%=0
whilenot ende%
Waitinput
sendmessage(normallist&,$0184,0,0) Normal-Liste vor dem Füllen löschen
if getfocus(OK%)
Let I1%=0
let Anzahl&=sendmessage(Multisellist&,$0190,0,0) Anzahl der Selektierungen 32 bit OK
sendmessage(Multisellist&,$0191,Anzahl&,ID#) Die selektierten Einträge festhalten
whilenot equ(i1%,Anzahl&)
let selitem&=long(ID#,mul(i1%,4)) Nummer des Eintrages holen
sendmessage(multisellist&,$0189,selitem&,Text#) den Sel. Text aus der Liste holen
addstring(normallist&,String$(Text#,0)) und in die zweite Liste schreiben
inc i1%
wend
elseif equ(%Key,2)
Print OK
Waitinput
Let ende%=1
endif
wend
dispose Text#
dispose ID#
=s4 href='./../../function-references/XProfan/end/'>end
|
| | | | |
|
Zum QuelltextThemeninformationenthis Topic has 1 subscriber: |
|