AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

wieso markiert es kein Text?

Ein Thema von Newcomer411 · begonnen am 29. Okt 2006 · letzter Beitrag vom 31. Okt 2006
Antwort Antwort
Newcomer411

Registriert seit: 29. Okt 2006
Ort: Rauschenberg
21 Beiträge
 
#1

wieso markiert es kein Text?

  Alt 29. Okt 2006, 23:01
hallo,
habe folgendes Problem:
will über eine Editfeld text eingeben und in einer listbox markiert anzeigen lassen (wenn vorhanden)
(so in der wie eine schnellsuche in einer listbox nach einem bestimmten eintrag)

allerdings sucht er bei mir nur zahlen...
ist mit dem code was falsch?

 entries.ItemIndex := entries.items.IndexOf(Edit_schnellzugriff.Text);
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: wieso markiert es kein Text?

  Alt 29. Okt 2006, 23:10
Müsste so passen. Lass dir die Werte mal im Evaluator ausgeben.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Newcomer411

Registriert seit: 29. Okt 2006
Ort: Rauschenberg
21 Beiträge
 
#3

Re: wieso markiert es kein Text?

  Alt 30. Okt 2006, 18:19
Zitat von 3_of_8:
Müsste so passen. Lass dir die Werte mal im Evaluator ausgeben.
wo und wie ausgeben? was ist ein Evaluator?
  Mit Zitat antworten Zitat
Newcomer411

Registriert seit: 29. Okt 2006
Ort: Rauschenberg
21 Beiträge
 
#4

Re: wieso markiert es kein Text?

  Alt 30. Okt 2006, 20:08
okay. hab jetzt was entdeckt...

wenn ich ins Edit-feld das GANZE Wort z. B. "Delphi 6" eintippe, dann markiert das Programm die Auswahl in der Listbox.

Ich will aber das er das Wort auch markiert, wenn ich nur das "D" eintippe... das Programm soll Buchstabe für Buchstabe suchen und markieren.


hoffe da gibt es eine lösung für.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: wieso markiert es kein Text?

  Alt 30. Okt 2006, 20:27
Dann wirst du mit .IndexOf nicht weiterkommen, weil hierbei der gesamte String gliech sein muß. Dir wird nichts anderes übrigbleiben als jeden Eintrag nach dem Teilstrimg zu durchsuchen.
Markus Kinzler
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: wieso markiert es kein Text?

  Alt 30. Okt 2006, 20:42
Sind die Einträge in der ListBox denn sortiert?
Dann müsstest du im OnChange des Edits erst nach dem ersten Begriff suchen, der den gleichen Anfangsbuchstabenn hat, wenn dann der zweite Buchstabe eingegeben wird, musst du nur ab dieser Stelle weitersuchen. Das geht aber nur, wenn jeweils der letzte Buchstabe im Edit geändert wurde. Ansonsten müsstest du wohl nochmal alles durchsuchen.
  Mit Zitat antworten Zitat
Newcomer411

Registriert seit: 29. Okt 2006
Ort: Rauschenberg
21 Beiträge
 
#7

Re: wieso markiert es kein Text?

  Alt 30. Okt 2006, 21:46
steh ein bisschen auf dem schlauch...
ja die einträge in der listbox sind sortiert.

wie genau? check das grad überhaupt nicht.
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: wieso markiert es kein Text?

  Alt 30. Okt 2006, 22:44
Jo, du mußt alle Entries einzeln vergleichen, in etwa so:

Delphi-Quellcode:
entries.items.ItemIndex := -1;

for i:=0 to entries.items.count-1 do
begin
  // Länge prüfen
  if Length(entries.items[i]) < Length(Edit_schnellzugriff.Text)) then
    continue;
  // Textanfang vergleichen (todo: klappt das auch case-insensitive?)
  if Edit_schnellzugriff.Text = Copy( entries.items[i], 1, Length(Edit_schnellzugriff.Text) ) then
  begin
    entries.items.ItemIndex := i;
    break; // Nicht sinnlos weitersuchen
  end;
end;
Ansgar Becker
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: wieso markiert es kein Text?

  Alt 31. Okt 2006, 07:24
Hallo,

eine Präfixsuche geht auch so:

Delphi-Quellcode:
procedure TDemoForm.EditChange(Sender: TObject);
begin
  with Sender as TEdit do
    ListBox.ItemIndex := ListBox.Perform(LB_FINDSTRING, -1, Integer(PChar(Text)));
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Newcomer411

Registriert seit: 29. Okt 2006
Ort: Rauschenberg
21 Beiträge
 
#10

Re: wieso markiert es kein Text?

  Alt 31. Okt 2006, 12:49
danke @all!

@ marabu, genau das habe ich gesucht, danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz