Avatar billede hasse16 Nybegynder
13. november 2003 - 18:49 Der er 17 kommentarer

hvordan spørger jeg efter om en text er tilstede i en Listbox?

Hvordan kan jeg spørge om en eller anden item(string) er tilstede i en text?

noget med:
if
  listbox.items. (et eller andet) = edit.text?

eller hvad?
Avatar billede dkn Nybegynder
13. november 2003 - 19:04 #1
hm kunne godt bruge lidt mere info om hvad du ønsker?
der er mange måder at søge på...


if listbox1.itemindex = -1 then exit // sikrer at et item er valgt
if pos(listbox1.items.strings[listbox1.itemindex], edit1.text) <> 0 then
  showmessage('Fandt Tekst');
Avatar billede snowball Novice
13. november 2003 - 19:16 #2
Kunne også være nedenstående:

  If ListBox1.Items.IndexOf(Edit1.Text) <> -1 Then
    ShowMessage('Fundet')
  Else
    ShowMessage('Ikke fundet');

Snowball
Avatar billede hasse16 Nybegynder
13. november 2003 - 19:17 #3
i skal indtaste dem som svar før jeg kan give point!
Avatar billede dkn Nybegynder
13. november 2003 - 19:21 #4
ja men det er mange point for noget meget simpelt.

Du må jo sige hvis det er noget specielt du ønsker eller du har løst det...
Avatar billede stone Forsker
13. november 2003 - 19:28 #5
procedure TForm1.Button1Click(Sender: TObject);
var
  search: string;
begin
  search := edit1.Text;
  if SendMessage(ListBox1.Handle, lb_selectstring, - 1, Longint(PChar(search))) <> LB_ERR then
  button1.Visible := false;

end;
Avatar billede stone Forsker
13. november 2003 - 19:30 #6
button1.visible := false // kun et eksempel på action hvis edit1 er  = search
Avatar billede snowball Novice
13. november 2003 - 20:06 #7
hasse16 kan vel bare selv lave et svar også, og så tager han selv de 100 og deler resten mellem os ;)

Snowball
Avatar billede dkn Nybegynder
13. november 2003 - 20:08 #8
okay :)
Avatar billede zerohero Nybegynder
14. november 2003 - 09:42 #9
Hvorfor ikke bare lave en for-to lykke:

var
I : Integer;
begin
  for I := 0 to ListBox.Items.Count-1 do
  if Listbox.Items[I] = Edit.Text then
  ShowMessage('Findet pa linje: '+IntToStr(I+1));
end;

Held og Lykke
ZeroHero
Avatar billede snowball Novice
14. november 2003 - 09:47 #10
zerohero: Det er der vel igen grund til når ListBox objektet i forvejen har en funktion der kan fortælle dig det (Hvad den funktion så laver bag facaden er en hel anden sag ;))

Men ok. Det beviser jo bare at man kan løse den samme opgave på mange forskellige måder :)

Snowball
Avatar billede zerohero Nybegynder
14. november 2003 - 10:09 #11
Jeg kiggede ud fra hans egen ide-oplaeg, med at sammenligne en item med en edit.text, og taenkte at det nok var det han helst ville havde :)) - Ellers havde han jo ikke skrevet hans oplaeg (he he he...)
Avatar billede hasse16 Nybegynder
14. november 2003 - 13:51 #12
okay, det jeg spørger efter en en kode der gør følgende:

Jeg har lavet en kode der i en stringgrid søger efter nogen informationer der er lagt ind i den men hvís den brugeren sætter den til at søge efter ikke er der kommer der en error frem. (det drejer sig om et billetbestillingsprogram, lavet i datalogi på gym)

Jeg ville samtidig gerne have en liste over hvem der havde bestilt billeter som endu ikke havde afhentet dem. Derfor tænkte jeg at man kunne slå to fluger med et smæk, så når folk bestilte en billet, blev deres telefon nummer skrevet ind i list boksen. I den kode der så søger efter hvor i stringgriden et givent telefon nummer ligger, skal den så først sprøge om den text der er indtastet i edit.text findes et eller andet sted i listbox1.items


Altså en if sætning der spørger efter om det der står i en editbox, også står i min listobx?

Første med svaret får pointsne.


PS: Jeg er først hjemme søndag, men det bliver noget af det første jeg tjekker.
Avatar billede hasse16 Nybegynder
14. november 2003 - 13:56 #13
sorry, damn med stave og slå fejl: fluger (lol) = fluer.
osv osv osv. Havde ikke læst det igennem


Det første er vist heller ikke helt tydeliigt.

Den løkke der søger efter hvor i stringgriden, telefon nummeret er lagt, den får programmet til at crashe, hvis nummeret der søges efter ikke findes. Derfor når man gemmer telefon nummeret skal den ikke blot gemme det i stringgriden, men også i en listbox. Når man så søger efter det skal den først spørge om det ligger i listboxen.

igen sorry for alle stave, -slå og gramatik fejlene
Avatar billede snowball Novice
14. november 2003 - 14:02 #14
hasse16:

"Altså en if sætning der spørger efter om det der står i en editbox, også står i min listobx?"

Det har du jo allerede fået 4 eksempler på ;)

Snowball
Avatar billede stone Forsker
20. januar 2004 - 18:57 #15
hvad med at lukke dette spørgsmål
Avatar billede forfatterksl Nybegynder
26. januar 2004 - 20:07 #16
Indsæt en memo (memo1) og lav den visible:= false; samt edit1.
Lav en procedure:

procedure TForm1...
var
  nr: integer;
  text: string;
  alt: integer;

begin
  repeat
    memo1.lines.add(listbox1.items[nr]);
    text:= memo1.lines[nr];
    nr:= nr +1;
  until text= '';
  alt:= nr;
  nr:= 0;
  text:= '';
  repeat
    memo1.clear;
    memo1.lines.add[listbox1.items[nr]);
    if memo1.lines[nr]= edit1.text then text:= memo1.lines[nr];//i edit1.text skrives søgeordet
  until nr= alt;
  if text<>'' then
  showmessage('Det står i felt' + inttostr(nr))
  else showmessage('Ikke fundet');
Avatar billede forfatterksl Nybegynder
15. februar 2005 - 13:54 #17
Eller endnu nemmere:

lav en variabel i: integer;
og skriv

for i:=0 to listbox1.items.count do
begin
  if listbox1.items[i]=edit1.text then { et eller andet, når den er der! }
end;

Jeg er ikke helt sikker på at den virker, men hvis ikke så indsæt igen en memo1, og sig:

var
  i: integer;

repeat
  memo1.lines.add(listbox1.items[i]);
  inc(i);
until listbox1.items[i]=emptystr;
for i:=0 to memo1.lines.count do
begin
  if memo1.lines[i]=edit1.text then { et eller andet, når den er der! }
end;

Den burde virke, men okay... det ligner meget vel det, som de andre også skrev :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester