Deutsch
Quelltexte/ Codesnippets

Listbox Listboxen Strings Suchen

 

Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Listbox: Strings in Listboxen suchen
Programm-Listbox8
Beispiel zweier Listboxen (Single- und Multiselect). Beispiel wie Strings in den
Boxen gesucht werden können. In der Behandlung besteht ein Unterschied!
Die AUSWERTUNG markierter Zeilen wird hier nicht behandelt.
Version 1.0  12.09.2003.     Das Programm kann frei benutzt werden, für
Schäden kann keine Haftung übernommen werden.
Autor: Gerhard Putschalka
homepage: http://members.telering.at/g.putschalka/index.html
email: g.putschalka@web.de
Declare Dlg%,X%,Single%,Multi%,SingleBox&,MultiBox&,TxtBer#,Ende%,Edit%,Ergeb&,Zw$
Dim TxtBer#,255    max. Textlänge einer Listboxzeile (sollte hier genügend groß sein)
SetTrueColor 1
Cls @RGB(255,255,255)
Let Dlg%=@CreateDialog(%Hwnd,Suchen in SingleSelect und in MultiSelect Listbox,250,40,465,360)
@createtext(Dlg%,Geben Sie einen Suchbegriff ein und drücken Sie den Button,30,5,424,16)
@createtext(Dlg%,>suchen< der jeweiligen Listbox.,30,25,250,16)
@createtext(Dlg%,Suchbegriff:,30,280,80,16)
Listbox mit einzeiliger Auswahlmöglichkeit
Let SingleBox& = control(LISTBOX,,$50B000C1,20,50,200,200,Dlg%,101,%HINSTANCE)
wird hier $50B000C3 angegeben, wird der Listboxinhalt sortiert.
Listbox mit mehrzeiliger Auswahlmöglichkeit
Let MultiBox& = control(LISTBOX,,$50B008C1,240,50,200,200,Dlg%,101,%HINSTANCE)
wird hier $50B008C3 angegeben, wird der Listboxinhalt sortiert.
Let Single%  = @CreateButton(Dlg%,suchen,70,250,80,20)
Let Ende% = @CreateButton(Dlg%,beenden,190,250,80,20)
Let Multi%  = @CreateButton(Dlg%,suchen,300,250,80,20)
Let Edit%  = @CreateEdit(Dlg%,,120,280,200,20)
Texte in die Listbox stellen
@AddString(SingleBox&,Beispiel)
@AddString(SingleBox&,einer)
@AddString(SingleBox&,Listbox)
@AddString(SingleBox&,mit der)
@AddString(SingleBox&,Möglichkeit der)
@AddString(SingleBox&,Einfachauswahl)
@AddString(SingleBox&,von)
@AddString(SingleBox&,Zeilen)
Texte in die Listbox stellen
@AddString(MultiBox&,Beispiel)
@AddString(MultiBox&,einer)
@AddString(MultiBox&,Listbox)
@AddString(MultiBox&,mit der)
@AddString(MultiBox&,Möglichkeit der)
@AddString(MultiBox&,Mehrfachauswahl)
@AddString(MultiBox&,von)
@AddString(MultiBox&,Zeilen)
1. Schleife bis beenden Button gedrückt wurde

whilenot @GetFocus(ende%)

    WaitKey
    auswerten für Mehrzeilen-Box

    If getfocus(Multi%)

        @createtext(Dlg%, ,30,310,450,16)
        zum Suchen gibt es hier nur eine Möglichkeit
        hier muß (sollte) eine Bereichsvariable benutzt werden.
        String TxtBer#,0 = @GetText$(Edit%)
        Ergeb& = @Sendmessage(MultiBox&,$018F,-1,TxtBer#)  API: LB_FINDSTRING
        das Markieren des Eintrags (wenn gewollt) muß das extra erfolgen

        If (Ergeb& < 0)  nicht gefunden

            @Sendmessage(MultiBox&,$0185,0,Ergeb&)  lösche die Markierung (API: LB_SETSEL)
            @createtext(Dlg%,Der Suchbegriff ist in der Multi-Listbox nicht vorhanden,30,310,450,16)

        Else

            @Sendmessage(MultiBox&,$0185,1,Ergeb&)   setze Markierung (API: LB_SETSEL)
            Let Zw$ = Der Suchbegriff ist in der Multi-Listbox. Eintrag =,@Str$(Ergeb&)
            @createtext(Dlg%,Zw$,30,310,450,16)

        EndIf

        auswerten für Einzelzeilen-Box

    ElseIf getfocus(Single%)

        @createtext(Dlg%, ,30,310,450,16)
        -------- nur 1 Gruppe davon auswählen:
        zum Suchen gibt es hier drei Möglichkeiten:
        1. Der Profanbefehl @SelectString. Sucht und markiert
        Let Ergeb& = @SelectString(SingleBox&,-1,@GetText$(Edit%))
        2. oder die API Funktion LB_SELECTSTRING (mit Sendmessage und $018C) entspricht der
        Profanfunktion. Hier muß (sollte) eine Bereichsvariable benutzt werden.
        String TxtBer#,0 = @GetText$(Edit%)
        Let Ergeb& = @SendMessage(SingleBox&,$018C,-1,TxtBer#)
        3. oder die API Funktion LB_FINDSTRING (mit Sendmessage und $018F)
        hier muß (sollte) eine Bereichsvariable benutzt werden. Der gefundene Begriff
        wird hier NICHT markiert! Ergeb& liefert aber die Zeilennummer.
        String TxtBer#,0 = @GetText$(Edit%)
        Let Ergeb& = @SendMessage(SingleBox&,$018F,-1,TxtBer#)
        --------

        If (Ergeb& < 0)  nicht gefunden

            @Sendmessage(SingleBox&,$0186,-1,0)  löschen der Markierung
            @createtext(Dlg%,Der Suchbegriff ist  in der Single-Listbox nicht vorhanden,30,310,450,16)

        Else

            Let Zw$ = Der Suchbegriff ist in der Single-Listbox. Eintrag =,@Str$(Ergeb&)
            @createtext(Dlg%,Zw$,30,310,450,16)

        EndIf

    Endif

EndWhile

Dispose TxtBer#
End
 
16.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.822 Betrachtungen

Unbenanntvor 0 min.
Walter04.04.2023
RudiB.07.03.2021
Manfred Barei18.11.2018
Member 007717919.10.2018
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie