Autor Beitrag
110022
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 19.12.07 17:46 
ich möchte dass mein prgramm einen string aus nem editfeld in einer listbox such.
wenn es gefunden wurde wir es markiert, aber wie ??


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 19.12.2007 um 16:48
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 19.12.07 17:51 
Hallo!

Schaue Dir mal die ListBox.Items.IndexOf-Methode an. Außerdem kannst Du über ListBox.Selected[idx] := true den Eintrag mit dem Index "idx" markieren.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 19.12.07 17:51 
Wie viele Thread brauchst Du zum gleichen Thema?
siehe hier

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Mi 19.12.07 17:52 
Wenn du jeweils nur ein Item markieren möchtest, geht das über ListBox.ItemIndex.

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 19.12.07 17:59 
wie würde das denn aussehen?
in etwa so?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button10Click(Sender: TObject);
var
  suchw:string;
  i: integer;
begin
suchw:=edit1.Text;
for i:=1 to listbox1.items.count do
if pos(suchw, listbox1.items[i-1]) > 0 then
listbox1.itemindex;
end;
end;


end.

aber ich bin mir sehr sicher dass alles falsch ist
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 19.12.07 18:02 
Hast Du dir user profile iconChristian S. Beitrag durchgelesen? :roll:
Die Zählung bei der Listbox beginnt übrigens bei 0, d.h. Deine Schleifen läuft wenn überhaupt nur bis count - 1.

//edit: Ich empfehle Dir zudem dringenst(!) Dir unbekannte Funktionen in der DOH nachzuschlagen. (Markieren + F1)

Grüße
Marc
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 19.12.07 18:10 
hilft mir grade nich weiter.
wie gehts richtig?
muss morgen das info projekt fertig haben.
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 19.12.07 18:18 
Wie wäre es mit etwas Eigenständigkeit?
Du benötigst weder eine Schleife noch POS!
Was du brauchst sind lediglich:
• Listbox.Items.IndexOf();
• Listbox.ItemIndex

Das solltest Du nun aber verknüpfen können. ;)

cu
Marc
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 19.12.07 18:21 
sry aber leider nich
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 19.12.07 18:23 
user profile iconMarc. hat folgendes geschrieben:
Die Zählung bei der Listbox beginnt übrigens bei 0, d.h. Deine Schleifen läuft wenn überhaupt nur bis count - 1.

Er hat doch alles richtig gemacht, nur etwas umständlicher. Siehe hier:

user profile icon110022 hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
for i:=1 to listbox1.items.count do
if pos(suchw, listbox1.items[i-1]) > 0 then {...}


Er zieht doch von der Index-Variable 1 ab.
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 19.12.07 18:23 
Zeig uns doch mal Deinen Ansatz. Wo hakt es denn? Was funktioniert nicht?
Zitat:
sry aber leider nich

Sagt leider nicht allzu viel aus. :nixweiss:

edit: Yogu, das habe ich schlichtweg ich überlesen. ;)

cu
Marc
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 19.12.07 18:28 
Also:
ich habe das hier
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button10Click(Sender: TObject);
var
  suchw:string;
  i: integer;
begin
suchw:=edit1.Text;
for i:=1 to listbox1.items.count do
if pos(suchw, listbox1.items[i-1]) > 0 then
listbox1.itemindex;
end;
end;


end.

und will das der text aus einem edit feld in der listbox gesucht und markiert wird.
wenn er nicht gefunden wird kommt ne kleine meldung.
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 19.12.07 18:33 
Den Code hast Du doch bereits gepostet und die Begriffe hast Du dir auch noch nicht angeschaut. :?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  suchw:=edit1.Text;
  for i:=1 to listbox1.items.count do
   if pos(suchw, listbox1.items[i-1]) > 0 then
     Listbox1.itemindex := i - 1;

Nun wird jeweils das letzte gefundende Element markiert!
Ich denke, das sollte als Denkanstoß reichen. :)

Grüße
Marc
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 19.12.07 18:37 
Folgender Code reicht doch vollkommen aus:

ausblenden Delphi-Quelltext
1:
2:
if ListBox.IndexOf(String) >= 0 then
  ListBox.ItemIndex := ListBox.IndexOf(String);

Alle anderen Lösungen sind eigentlich unnötig kompliziert.

Bitte beachtet, dass ich aus Sicherheitsgründen meinen Code verbessert habe. Durch diesen kleinen Bug entstand folgendes Missverständnis.


Zuletzt bearbeitet von Yogu am Do 20.12.07 17:41, insgesamt 3-mal bearbeitet
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 19.12.07 18:38 
Vielleicht soll er es aber mit einer For-Schleife lösen.
Es soll Lehrer geben, die auf nicht bereits fertige Funktionen stehen - sprich auf Selbst-Geschriebenes, bei dem auch noch der Ablauf erkannbar ist. :)

cu
Marc
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 19.12.07 18:45 
Ich denke nicht, dass das selektieren eines Eintrags in einer Liste das Hauptthema des Projekts ist. Da würd man doch wohl solche Funktionen benutzen dürfen. Man kann natürlich auch das ganze in Assembler schreiben, am besten noch dazu ein OS, auf dem man das Programm zum Laufen bringt. Dann hat man alles selber gemacht :P
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 19.12.07 18:49 
Die Methode über IndexOf ist nicht das Gleiche wie die Methode über Schleife+Pos. Bei letzterem wird auch ein Eintrag gefunden, der den gesuchten String nur enthält aber nicht identisch ist.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Do 20.12.07 15:35 
---hier stand nichts brauchbares von mir :wink: ---
---diesen eintrag nicht beachten ---


Zuletzt bearbeitet von 110022 am Do 20.12.07 16:05, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 20.12.07 15:43 
Zeige mir das Wort "IndexOf" in Deinem Quelltext :roll:

Und beschäftige Dich mal mit Grundlagen!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Do 20.12.07 15:45 
ich meine nur wie das hier richtig geht
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
w:string;
begin
w:=edit1.text;
if ListBox1.ItemIndex(w) >= 0 then
  ListBox1.ItemIndex := ListBox1.ItemIndex(w);
end;


FEHLER

[Fehler] Unit1.pas(33): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(34): Operator oder Semikolon fehlt


Zuletzt bearbeitet von 110022 am Do 20.12.07 15:57, insgesamt 1-mal bearbeitet