| |
|
|
| KompilierenMarqueSéparationSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Listbox sortieren
Lauffähig ab Profan-Version 5.0
-----------------------------------------------
titel: Sortieren nach Namen in anderer Position
autor: Rolf Koch - ROKO-SOFTWARE
e-mail: webmaster@rokosoft.de
homepage: http://www.rokosoft.de
-----------------------------------------------
Erklärung:
----------
Normal wird in einer Sortieren Listbox nach
dem ersten Buchstaben sortiert.
Hier in dem Beispiel nach dem Namen
Herr oder Frau am Anfang ist nicht maßgebend
SETTRUECOLOR 1
DECLARE ENDE%,Name$,Geschlecht$,gpos%
DECLARE SORTEDLISTBOX1%,Listbox1%,listbox2%
DECLARE BUTTON1%,zahl%,eintrag$,string$
WINDOWSTYLE 527
WINDOW 254,108-234,241
WINDOWTITLE Liste
CLS @RGB(212,208,200)
USEFONT MS Sans Serif,13,0,0,0,0
SETDIALOGFONT 1
PROC VAR_BEARBEIT
zahl%=0
clearlist
Whilenot equ(zahl%,@GetCount(listbox2%))
Könnte alles noch zusammengefasst werden:
eintrag$=@GetString$(listbox2%,zahl%)
Name$=@Mid$(eintrag$,6,100)
Geschlecht$=@Mid$(eintrag$,1,4)
string$=Name$,Geschlecht$ String wird umgedreht
Addstring(sortedlistbox1%,string$)
inc zahl%
wend
zahl%=0
ENDPROC
PROC Liste_fuellen
zahl%=0
clearlist
Whilenot equ(zahl%,@GetCount(sortedlistbox1%))
Könnte alles noch zusammengefasst werden:
eintrag$=@GetString$(sortedlistbox1%,zahl%)
Ermitteln des Geschlechts:
Gpos%=or(@Instr(Herr,eintrag$),@Instr(Frau,eintrag$))
Name ermitteln
Name$=@Mid$(eintrag$,1,sub(Gpos%,1))
Geschlecht wiederum ermitteln
Geschlecht$=@Mid$(eintrag$,Gpos%,4)
und nochmals zusammensetzen (also umdrehen)
String$=Geschlecht$,Name$
Addstring(listbox1%,string$)
inc zahl%
wend
zahl%=0
Endproc
Anzeige in einer unsortierten Listbox:
LISTBOX1% =CREATE(LISTBOX,%HWND,SORTEDLISTBOX1,0030,0020,0167,0120)
Zum Einlesen gedacht:
BUTTON1% =CREATE(BUTTON,%HWND,Einlesen,0068,0161,0088,0024)
Diese Listboxen sind nur zum Sortieren im Hintergrund gedacht:-------------------
SORTEDLISTBOX1% =CREATE(SORTEDLISTBOX,%HWND,SORTEDLISTBOX1,0000,0000,0000,0000)
LISTBOX2% =CREATE(SORTEDLISTBOX,%HWND,SORTEDLISTBOX1,0000,0000,0000,0000)
----------------------------------------------------------------------------------
Hier die normale Übergabe in eine Liste
aber: in eine normale versteckte Liste!
clearlist
Addstring(listbox2%,Herr Markus Müller)
Addstring(listbox2%,Frau Sabine Meyer)
Addstring(listbox2%,Frau Martina Arand)
Addstring(listbox2%,Herr Achim Urich)
Addstring(listbox2%,Herr Sandro Bayer)
Addstring(listbox2%,Frau Tatjana Kindl)
Addstring(listbox2%,Herr Lars Vandolis)
Addstring(listbox2%,Herr Detlev Insbruck)
Addstring(listbox2%,Frau Eva Liebharr)
Addstring(listbox2%,Herr Peter Salotti)
Addstring(listbox2%,Frau Regina Leinberg)
Addstring(listbox2%,Herr Ferdinand Hortig)
Addstring(listbox2%,Frau Gina Loloria)
WHILENOT ENDE%
WAITINPUT
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF GETFOCUS(SORTEDLISTBOX1%) SORTEDLISTBOX
ELSEIF GETFOCUS(BUTTON1%) BUTTON
Var_Bearbeit Proc zum Stringbearbeiten.
Liste_fuellen Proc zum Liste füllen (eine Unsortierte)
ENDIF
WEND
|
|
|
| |
|
|