Source wurde am 15.07.2007 aus qui MMJ-Quellcodesammlung (Dietmar Horn) dans qui Babyklappe sur XProfan.Com abgelegt:
Listbox: Cordes dans Listboxen chercher
Programme-Listbox8
Beispiel zweier Listboxen (Single- et Multiselect). Beispiel comment Cordes dans den
Boxen gesucht volonté peut. dans qui Behandlung besteht un Unterschied!
qui AUSWERTUNG markierter Zeilen wird ici pas behandelt.
Version 1.0 12.09.2003. cela Programme peux libre benutzt volonté, pour
Schäden peux aucun la responsabilité übernommen volonté.
Autor: Gerhard Putschalka
homepage: http://members.telering.at/g.putschalka/index.html
email: g.putschalka@web.de
Déclarer Dlg%,X%,Single%,Multi%,SingleBox&,MultiBox&,TxtBer#,Ende%,Éditer%,Ergeb&,Zw$
Faible TxtBer#,255 max. Longueur du texte einer Listboxzeile (sollte ici genügend grand son)
SetTrueColor 1
Cls @RGB(255,255,255)
Laisser Dlg%=@CreateDialog(%Hwnd,chercher dans SingleSelect et dans MultiSelect Listbox,250,40,465,360)
@createtext(Dlg%,donner vous une Suchbegriff un et drücken vous den Button,30,5,424,16)
@createtext(Dlg%,>chercher< qui jeweiligen Listbox.,30,25,250,16)
@createtext(Dlg%,Suchbegriff:,30,280,80,16)
Listbox avec einzeiliger Auswahlmöglichkeit
Laisser SingleBox& = control(LISTBOX,,$50B000C1,20,50,200,200,Dlg%,101,%HINSTANCE)
wird ici $50B000C3 angegeben, wird qui Listboxinhalt sortiert.
Listbox avec mehrzeiliger Auswahlmöglichkeit
Laisser MultiBox& = control(LISTBOX,,$50B008C1,240,50,200,200,Dlg%,101,%HINSTANCE)
wird ici $50B008C3 angegeben, wird qui Listboxinhalt sortiert.
Laisser Single% = @CreateButton(Dlg%,chercher,70,250,80,20)
Laisser Ende% = @CreateButton(Dlg%,finissons,190,250,80,20)
Laisser Multi% = @CreateButton(Dlg%,chercher,300,250,80,20)
Laisser Éditer% = @CreateEdit(Dlg%,,120,280,200,20)
Textes dans qui Listbox se mettre
@AddStrings(SingleBox&,Beispiel)
@AddStrings(SingleBox&,einer)
@AddStrings(SingleBox&,Listbox)
@AddStrings(SingleBox&,avec qui)
@AddStrings(SingleBox&,Possibilité qui)
@AddStrings(SingleBox&,Einfachauswahl)
@AddStrings(SingleBox&,de)
@AddStrings(SingleBox&,Zeilen)
Textes dans qui Listbox se mettre
@AddStrings(MultiBox&,Beispiel)
@AddStrings(MultiBox&,einer)
@AddStrings(MultiBox&,Listbox)
@AddStrings(MultiBox&,avec qui)
@AddStrings(MultiBox&,Possibilité qui)
@AddStrings(MultiBox&,Mehrfachauswahl)
@AddStrings(MultiBox&,de)
@AddStrings(MultiBox&,Zeilen)
1. Boucle jusqu'à finissons Button gedrückt wurde
whilenot @GetFocus(% Fin)
WaitKey
auswerten pour Mehrzeilen-Box
Si getfocus(Multi%)
@createtext(Dlg%, ,30,310,450,16)
zum chercher gibt es ici seulement une Possibilité
ici doit (sollte) une Bereichsvariable benutzt volonté.
String TxtBer#,0 = @GetText $(Éditer%)
Ergeb& = @SendMessage(MultiBox&,$018F,-1,TxtBer#) API: LB_FINDSTRING
cela Marque des Eintrags (si gewollt) doit cela extra avoir lieu
Si (Ergeb& < 0) pas trouvé
@SendMessage(MultiBox&,$0185,0,Ergeb&) lösche qui Markierung (API: LB_SETSEL)
@createtext(Dlg%,qui Suchbegriff ist dans qui Multi-Listbox pas vorhanden,30,310,450,16)
D'autre
@SendMessage(MultiBox&,$0185,1,Ergeb&) mets Markierung (API: LB_SETSEL)
Laisser Zw$ = qui Suchbegriff ist dans qui Multi-Listbox. Eintrag =,@Str$(Ergeb&)
@createtext(Dlg%,Zw$,30,310,450,16)
EndIf
auswerten pour Einzelzeilen-Box
ElseIf getfocus(Single%)
@createtext(Dlg%, ,30,310,450,16)
-------- seulement 1 Gruppe en auswählen:
zum chercher gibt es ici trois Opportunités:
1. qui Profanbefehl @Sélectionnez String. cherchez et markiert
Laisser Ergeb& = @Sélectionnez String(SingleBox&,-1,@GetText $(Éditer%))
2. ou bien qui API Funktion LB_SELECTSTRING (avec SendMessage et $018C) entspricht qui
Profanfunktion. ici doit (sollte) une Bereichsvariable benutzt volonté.
String TxtBer#,0 = @GetText $(Éditer%)
Laisser Ergeb& = @SendMessage(SingleBox&,$018C,-1,TxtBer#)
3. ou bien qui API Funktion LB_FINDSTRING (avec SendMessage et $018F)
ici doit (sollte) une Bereichsvariable benutzt volonté. qui gefundene Begriff
wird ici NICHT markiert! Ergeb& liefert mais qui Zeilennummer.
String TxtBer#,0 = @GetText $(Éditer%)
Laisser Ergeb& = @SendMessage(SingleBox&,$018F,-1,TxtBer#)
--------
Si (Ergeb& < 0) pas trouvé
@SendMessage(SingleBox&,$0186,-1,0) effacer qui Markierung
@createtext(Dlg%,qui Suchbegriff ist dans qui Single-Listbox pas vorhanden,30,310,450,16)
D'autre
Laisser Zw$ = qui Suchbegriff ist dans qui Single-Listbox. Eintrag =,@Str$(Ergeb&)
@createtext(Dlg%,Zw$,30,310,450,16)
EndIf
Endif
Endwhile
Dispose TxtBer#
Fin