Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi eingabe in edit schon vorhanden? (https://www.delphipraxis.net/92345-eingabe-edit-schon-vorhanden.html)

ph0 18. Mai 2007 10:11


eingabe in edit schon vorhanden?
 
hallo,
in einem edit feld
Delphi-Quellcode:
anzahl:=anzahl+1;
daten[anzahl].name:=edit1.Text;
werden namen von produkten eingegeben, die ich dann in einer combobox gespeichert habe.
Delphi-Quellcode:
combobox1.clear;
for i:=1 to anzahl do
combobox1.Items.Add(daten[i].name)
wie kann ich jz eine abfrage machen wenn ein name schon in der combobox verwendet zum beispiel suppe, dass dieser artikel nicht noch einmal eingetragen werden darf?
gruß

Sharky 18. Mai 2007 10:13

Re: eingabe in edit schon vorhanden?
 
Zitat:

Zitat von ph0
... ... wie kann ich jz eine abfrage machen wenn ein name schon in der combobox verwendet ...

Hai ph0,

schaue Dir mal Delphi-Referenz durchsuchenIndexOf der Items der TComboBox an.

ph0 18. Mai 2007 11:13

Re: eingabe in edit schon vorhanden?
 
habe es jz hiermit versucht:
Delphi-Quellcode:
var i : integer;
    gefunden : bool;
begin
  gefunden := false;
  for i := 0 to ComboBox1.Items.Count-1 do
    if ComboBox1.Items[i] = Edit1.Text then gefunden := true;
  if not gefunden then ShowMessage('Gibts nicht!');
end;
wenn ich das ganze aber umdrehe:
Delphi-Quellcode:
  for i := 0 to ComboBox1.Items.Count-1 do
    if ComboBox1.Items[i] = Edit1.Text then gefunden:=true
    if not gefunden then
    begin
    combobox1.clear;
    for i:=1 to anzahl do
    combobox1.Items.Add(daten[i].name);
    end
dann wird es auch eingetragen, obwohl der name bereits vorhanden ist. (kleiner denkfehler?)

Helmi 18. Mai 2007 11:36

Re: eingabe in edit schon vorhanden?
 
Hallo,

Sharky hat dir die Lösung eigentlich schon geschrieben.
Mit "IndexOf" gehts kanns einfach.

Hier mal ein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  S: String;

begin
  S := Edit1.Text;

  with ComboBox1.Items do
    begin
      If IndexOf(S) = -1 then
        Add(S)
      else
        ShowMessage('schon drin');
    end;
end;

ph0 18. Mai 2007 11:40

Re: eingabe in edit schon vorhanden?
 
ok danke jz klappts :)

Helmi 18. Mai 2007 11:42

Re: eingabe in edit schon vorhanden?
 
Zitat:

Zitat von ph0
ok danke jz klappts :)

Das weiss ich - habs ja schliesslich geprüft

aber weisst du auch wie das geht? - was IndexOf macht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz