Source wurde al 15.07.2007 de el MMJ-Quellcodesammlung (Dietmar Horn) en el Babyklappe en XProfan.Com abgelegt:
Listbox: Cuerdas en Listboxen suchen
Programa-Listbox8
Ejemplo zweier Listboxen (Single- y Multiselect). Ejemplo como Cuerdas en el
Boxen gesucht voluntad puede. In el Behandlung besteht una Diferencia!
El AUSWERTUNG markierter Zeilen se hier no behandelt.
Versión 1.0 12.09.2003. Das Programa kann frei benutzt voluntad, para
Schäden kann no Haftung übernommen se.
Autor: Gerhard Putschalka
homepage: http://members.telering.at/g.putschalka/index.html
email: g.putschalka@web.de
Declarar Dlg%,X%,Single%,Multi%,SingleBox&,MultiBox&,TxtBer#,Ende%,Editar%,Ergeb&,Zw$
Dim TxtBer#,255 max. Textlänge uno Listboxzeile (debería hier genügend groß ser)
SetTrueColor 1
Cls @RGB(255,255,255)
Let Dlg%=@CreateDialog(%Hwnd,Suchen en SingleSelect y en MultiSelect Listbox,250,40,465,360)
@createtext(Dlg%,Geben Sie una Suchbegriff una y drücken Sie el Button,30,5,424,16)
@createtext(Dlg%,>suchen< el jeweiligen Listbox.,30,25,250,16)
@createtext(Dlg%,Suchbegriff:,30,280,80,16)
Listbox con einzeiliger Auswahlmöglichkeit
Let SingleBox& = control(LISTBOX,,$50B000C1,20,50,200,200,Dlg%,101,%HINSTANCE)
se hier $50B000C3 angegeben, se el Listboxinhalt sortiert.
Listbox con mehrzeiliger Auswahlmöglichkeit
Let MultiBox& = control(LISTBOX,,$50B008C1,240,50,200,200,Dlg%,101,%HINSTANCE)
se hier $50B008C3 angegeben, se el Listboxinhalt sortiert.
Let Single% = @CreateButton(Dlg%,suchen,70,250,80,20)
Let Ende% = @CreateButton(Dlg%,final,190,250,80,20)
Let Multi% = @CreateButton(Dlg%,suchen,300,250,80,20)
Let Editar% = @CreateEdit(Dlg%,,120,280,200,20)
Textos en el Listbox stellen
@AddStrings(SingleBox&,Ejemplo)
@AddStrings(SingleBox&,uno)
@AddStrings(SingleBox&,Listbox)
@AddStrings(SingleBox&,con el)
@AddStrings(SingleBox&,Möglichkeit el)
@AddStrings(SingleBox&,Einfachauswahl)
@AddStrings(SingleBox&,de)
@AddStrings(SingleBox&,Zeilen)
Textos en el Listbox stellen
@AddStrings(MultiBox&,Ejemplo)
@AddStrings(MultiBox&,uno)
@AddStrings(MultiBox&,Listbox)
@AddStrings(MultiBox&,con el)
@AddStrings(MultiBox&,Möglichkeit el)
@AddStrings(MultiBox&,Mehrfachauswahl)
@AddStrings(MultiBox&,de)
@AddStrings(MultiBox&,Zeilen)
1. Bucle a final Button gedrückt wurde
whilenot @GetFocus(ende%)
WaitKey
auswerten para Mehrzeilen-Box
If getfocus(Multi%)
@createtext(Dlg%, ,30,310,450,16)
para Suchen son lo hier sólo una Möglichkeit
hier muß (debería) una Bereichsvariable benutzt se.
String TxtBer#,0 = @GetText $(Editar%)
Ergeb& = @SendMessage(MultiBox&,$018F,-1,TxtBer#) API: LB_FINDSTRING
el Marca des Eintrags (si gewollt) muß el extra tener lugar
If (Ergeb& < 0) no gefunden
@SendMessage(MultiBox&,$0185,0,Ergeb&) lösche el Markierung (API: LB_SETSEL)
@createtext(Dlg%,Der Suchbegriff es en el Multi-Listbox no disponible,30,310,450,16)
Más
@SendMessage(MultiBox&,$0185,1,Ergeb&) poner Markierung (API: LB_SETSEL)
Let Zw$ = Der Suchbegriff es en el Multi-Listbox. Eintrag =,@Str$(Ergeb&)
@createtext(Dlg%,Zw$,30,310,450,16)
EndIf
auswerten para Einzelzeilen-Box
ElseIf getfocus(Single%)
@createtext(Dlg%, ,30,310,450,16)
-------- sólo 1 Gruppe su auswählen:
para Suchen son lo hier drei Möglichkeiten:
1. Der Profanbefehl @Seleccione String. Sucht y markiert
Let Ergeb& = @Seleccione String(SingleBox&,-1,@GetText $(Editar%))
2. oder el API Función LB_SELECTSTRING (con SendMessage y $018C) entspricht el
Profanfunktion. Hier muß (debería) una Bereichsvariable benutzt se.
String TxtBer#,0 = @GetText $(Editar%)
Let Ergeb& = @SendMessage(SingleBox&,$018C,-1,TxtBer#)
3. oder el API Función LB_FINDSTRING (con SendMessage y $018F)
hier muß (debería) una Bereichsvariable benutzt se. Der gefundene Begriff
se hier NICHT markiert! Ergeb& liefert aber el Zeilennummer.
String TxtBer#,0 = @GetText $(Editar%)
Let Ergeb& = @SendMessage(SingleBox&,$018F,-1,TxtBer#)
--------
If (Ergeb& < 0) no gefunden
@SendMessage(SingleBox&,$0186,-1,0) löschen el Markierung
@createtext(Dlg%,Der Suchbegriff es en el Single-Listbox no disponible,30,310,450,16)
Más
Let Zw$ = Der Suchbegriff es en el Single-Listbox. Eintrag =,@Str$(Ergeb&)
@createtext(Dlg%,Zw$,30,310,450,16)
EndIf
Endif
EndWhile
Disponer TxtBer#
End