Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249696 (11132)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Listbox durchsuchen
Daniel Hecken
| Datum:23.05.01 21:13 (privat@daniel-hecken.de) |
Ich habe ein Liste mit dem Befehl addstring erzeugt. Die Liste wird / darf nicht auf den Bildschirm erscheinen. Nun muß ich jedoch diese Liste nach einen beliebigen Wort suchen. Mit welchen Befehl geht das.
Maik Strohfeldt
| Datum:24.05.01 00:05 (mail@msgroup.de) |
Hi. Setzt doch eine Listbox auf eine Form, versteck sie und speicher die Daten darin! Hier ein BSP, um die Einträge zu finden. Falls du das komplette VWP-Demo brauchst, einfach sagen. Getestet auf PRF7, sollte mit Änderungen aber selbst auf ner 4.5er arbeiten. Sind dann zwar extreme Änderungen, aber der Weg ist derselbe. Vielleicht sollten die Leute bei Fragen Ihre PRF-Version angeben!? Viele Grüße -- Maik Strohfeldt, MS Group Software http://www.msgroup.de/ -- $P+ SetErrorLevel 0 'VWP2-AutoIncludes und -Header Def GetSysColor(1) !"USER32","GetSysColor" Def SetWindowLong(3) !"USER32","SetWindowLongA" Def GetWindowLong(2) !"USER32", "GetWindowLongA" 'Ende der VWP2-AutoIncludes und -Header Declare _Ende_HWND% Declare _font& Declare ListBox& Declare suche& Declare Text1& Declare Button1& Declare Text2& Declare Found& Proc Button1Click Declare Suchname#, Gefunden&, Start& Dim Suchname#,add(len(gettext$(suche&)),1) String Suchname#,0=gettext$(suche&) Sendmessage(Found&,$0184,0,0) Gefunden&=0 start&=-1 while neq(gefunden&,-1) Gefunden&=sendmessage(listbox&,399,start&,Suchname#) if neq(gefunden&,-1) addstring(found&,getstring$(listbox&,gefunden&)) if equ(gefunden&,getcount(listbox&)-1) gefunden&=-1 else start&=gefunden& endif endif wend Dispose Suchname# EndProc SetTrueColor 1 WindowStyle 574 WindowTitle "Listbox-Einträge suchen..." Window Add(%maxx,200),120-501,166 CLS GetSysColor(15) UseFont "MS Sans Serif",13,0,0,0,0 SetDialogFont 1 Let ListBox&=CreateListBox(%HWND,"",0,0,0,0) ClearList AddString "Visual Window Pro 2" AddString "PROFAN²-Writer 4000" AddString "PROFAN²-PAD 3" MoveListToList(ListBox&) ClearList SetWindowLong(ListBox&,-20,Or(GetWindowLong(ListBox&,-20),$200)) SetWindowPos ListBox&=8,8-160,120 Let suche&=CreateEdit(%HWND,"profan",176,80,121,21) Let Text1&=CreateText(%HWND,"Suche:",176,64,38,13) Let Button1&=CreateButton(%HWND,"Suchen!",176,104,121,25) Let Text2&=CreateText(%HWND,"Gefunden:",304,8,54,13) Let Found&=CreateListBox(%HWND,"",0,0,0,0) ClearList MoveListToList(Found&) ClearList SetWindowLong(Found&,-20,Or(GetWindowLong(Found&,-20),$200)) SetWindowPos Found&=304,24-184,104 SetWindowPos %HWND=sub(div(%maxx,2),250),sub(div(%maxy,2),83)-501,166 WhileNot _Ende_HWND% WaitInput If Equ(%key,2) Let _Ende_HWND%=1 ElseIf GetFocus(ListBox&) 'Ereignisbehandlung ElseIf GetFocus(suche&) 'Ereignisbehandlung ElseIf GetFocus(Text1&) 'Ereignisbehandlung ElseIf GetFocus(Button1&) Button1Click ElseIf GetFocus(Text2&) 'Ereignisbehandlung ElseIf GetFocus(Found&) 'Ereignisbehandlung EndIf Wend End 'Projektinformationen: 'Titel: Listbox-Einträge suchen 'Autor: Maik Strohfeldt, MS Group Software 'Verwendete Profan²-Version: 7.0 'Verwendete VWP2-BasisVersion: 2.25-SP ' 'Source by MSG VisualWindow Professional 2 'Copyright © 1998-2001 by MS Group Software. 'http://www.msgroup.de
Daniel Hecken
| Datum:24.05.01 12:41 (privat@daniel-hecken.de) |
Zur Information: Ich verwende Profan 7e plus PRFellow Bezahlversion ( gibt es eigendlich einen Unterschied zwischen der Bezahl und der Freewarefunktion ? ). Das Problem ist, das die Quellliste nicht angzeigt werden darf. bis dann daniel
Maik Strohfeldt
| Datum:24.05.01 13:22 (mail@msgroup.de) |
Hallo! > Ich verwende Profan 7e plus PRFellow > Bezahlversion ( gibt es eigendlich einen > Unterschied zwischen der Bezahl und der > Freewarefunktion ? ). Da gibt es keinen Unterschied. Die Entwicklung wurde ja eingestellt. > Das Problem ist, das die Quellliste nicht > angzeigt werden darf. Dann versteck sie doch: -> ShowWindow(ListBox&,0) Viele Grüße, -- Maik Strohfeldt, MS Group Software PRFSUITE
Daniel
| Datum:24.05.01 13:23 (privat@daniel-hecken.de) |
Danke, Ich haben seinen Code leicht verändert übernommen. bis zu nächsten Frage ....
Bernhard Künzel
| Datum: 24.05.01 14:54 (b.kuenzel@chello.at) |
Hallo Daniel, ich glaube ich habe es in ganz einfacher Form Def ImageListBoxSort(0) Create("SortedListBox",%HWnd,"",0,0,0,0) Def ImageListBoxUnSort(0) Create("ListBox",%HWnd,"",0,0,0,0) Beispiel: LBHnd&=ImageListBoxUnSort() mit diesen Funktionen kannst Du eine unsichtbare ListBox entweder sortiert oder unsortiert erzeugen Funktionen zum auslesen: Def lb_FindStringExact(3) SendMessage(%(1),$01A2,%(2),&(3)) Def lb_FindString(3) SendMessage(%(1),$018F,%(2),&(3)) 'Es wird der Eintrag ermittelt, der mit dem Suchstring beginnt. 'Par1: Handle der Listbox 'Par2: Integer = Index des Eintrages vor dem die Suche beginnt; ' Soll sie am Anfang beginnen, muß er -1 sein. 'Par3: Bereich = Suchstring 'Rückgabewert: <0 = Fehler (nicht gefunden) ' >=0 = Index des gesuchten Eintrages (erster Eintrag = 0) MFG Bernhard

| Zurück zur Übersicht