Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife mit else stoppen!!!??? (https://www.delphipraxis.net/17786-schleife-mit-else-stoppen.html)

Plague 9. Mär 2004 20:48

Re: Schleife mit else stoppen!!!???
 
Es ist in ein begin und end gepackt. Das ist irgendwie komisch. Was kann ich noch versuchen?

himitsu 9. Mär 2004 20:52

Re: Schleife mit else stoppen!!!???
 
Mal den Code zeigen? ;)

fkerber 9. Mär 2004 20:53

Re: Schleife mit else stoppen!!!???
 
Hi!

Häng vielleicht einfach mal das Projekt mit dem Fehler an, dann kann man ja mal schauen...


Ciao fkerber

Plague 9. Mär 2004 21:01

Re: Schleife mit else stoppen!!!???
 
Ok, das ist mein Code...

Delphi-Quellcode:
procedure TFrame5.Button1Click(Sender: TObject);
var
LI: TListItem;
q :string;
begin
if Combobox1.Text =('') then
   Showmessage('Bitte geben Sie einen Suchbegriff ein')
   else
Combobox1.AddItem(Combobox1.Text,nil);
Combobox1.Items.SaveToFile(ExtractFilePath(ParamStr(0))+'Protocoll.pnmd');
q:= '%' + Combobox1.Text + '%';
with ZReadOnlyQuery1 do
  begin
    close;
    SQL.Clear;
    SQL.Add('SELECT * FROM Addy WHERE');
    SQL.Add('Name LIKE :Name OR ');
    SQL.Add('Vorname LIKE :Vorname OR ');
    SQL.Add('Straße LIKE :Straße OR ');
    SQL.Add('PLZ LIKE :PLZ OR ');
    SQL.Add('Stadt LIKE :Stadt OR ');
    SQL.Add('e-Mail LIKE :e-Mail OR ');
    SQL.Add('Tel LIKE :Tel OR ');
    SQL.Add('Notiz LIKE :Notiz');
    ParamByName ('Name').AsString := q;
    ParamByName ('Vorname').AsString := q;
    ParamByName ('Straße').AsString := q;
    ParamByName ('PLZ').AsString := q;
    ParamByName ('Stadt').AsString := q;
    ParamByName ('e-Mail').AsString := q;
    ParamByName ('Tel').AsString := q;
    ParamByName ('Notiz').AsString := q;
    open;
    ListView1.Items.BeginUpdate;
    Listview1.Items.Clear;
    while not (EOF) do
    begin
      LI := Listview1.Items.Add;
      LI.ImageIndex := 0;
      LI.Caption := (FieldByName('ID').AsString);
      LI.SubItems.Add(FieldByName('Name').AsString);
      LI.SubItems.Add(FieldByName('Vorname').AsString);
      LI.SubItems.Add(FieldByName('Straße').AsString);
      LI.SubItems.Add(FieldByName('PLZ').AsString);
      LI.SubItems.Add(FieldByName('Stadt').AsString);
      LI.SubItems.Add(FieldByName('e-Mail').AsString);
      LI.SubItems.Add(FieldByName('Tel').AsString);
      LI.SubItems.Add(FieldByName('Notiz').AsString);
      Next;
    end;
    ListView1.Items.EndUpdate;
    close;
  end;
end;

gekmihesg 9. Mär 2004 21:04

Re: Schleife mit else stoppen!!!???
 
Delphi-Quellcode:
procedure TFrame5.Button1Click(Sender: TObject);
var
LI: TListItem;
q :string;
begin
if Combobox1.Text =('') then
   Showmessage('Bitte geben Sie einen Suchbegriff ein')
   else
[color=red]begin[/color]
Combobox1.AddItem(Combobox1.Text,nil);
Combobox1.Items.SaveToFile(ExtractFilePath(ParamStr(0))+'Protocoll.pnmd');
q:= '%' + Combobox1.Text + '%';
with ZReadOnlyQuery1 do
  begin
    close;
    SQL.Clear;
    SQL.Add('SELECT * FROM Addy WHERE');
    SQL.Add('Name LIKE :Name OR ');
    SQL.Add('Vorname LIKE :Vorname OR ');
    SQL.Add('Straße LIKE :Straße OR ');
    SQL.Add('PLZ LIKE :PLZ OR ');
    SQL.Add('Stadt LIKE :Stadt OR ');
    SQL.Add('e-Mail LIKE :e-Mail OR ');
    SQL.Add('Tel LIKE :Tel OR ');
    SQL.Add('Notiz LIKE :Notiz');
    ParamByName ('Name').AsString := q;
    ParamByName ('Vorname').AsString := q;
    ParamByName ('Straße').AsString := q;
    ParamByName ('PLZ').AsString := q;
    ParamByName ('Stadt').AsString := q;
    ParamByName ('e-Mail').AsString := q;
    ParamByName ('Tel').AsString := q;
    ParamByName ('Notiz').AsString := q;
    open;
    ListView1.Items.BeginUpdate;
    Listview1.Items.Clear;
    while not (EOF) do
    begin
      LI := Listview1.Items.Add;
      LI.ImageIndex := 0;
      LI.Caption := (FieldByName('ID').AsString);
      LI.SubItems.Add(FieldByName('Name').AsString);
      LI.SubItems.Add(FieldByName('Vorname').AsString);
      LI.SubItems.Add(FieldByName('Straße').AsString);
      LI.SubItems.Add(FieldByName('PLZ').AsString);
      LI.SubItems.Add(FieldByName('Stadt').AsString);
      LI.SubItems.Add(FieldByName('e-Mail').AsString);
      LI.SubItems.Add(FieldByName('Tel').AsString);
      LI.SubItems.Add(FieldByName('Notiz').AsString);
      Next;
    end;
    ListView1.Items.EndUpdate;
    close;
  end;
[color=red]end;[/color]
end;

himitsu 9. Mär 2004 21:05

Re: Schleife mit else stoppen!!!???
 
Bei dir war vorher nur "Combobox1.AddItem(Combobox1.Text,nil);" in der If-Anweisung drin, also kein Wunder, wenn der Rest ausgeführt wurde. ;)

Code:
procedure TFrame5.Button1Click(Sender: TObject);
var
LI: TListItem;
q :string;
begin
if Combobox1.Text =('') then
   Showmessage('Bitte geben Sie einen Suchbegriff ein')
   else [color=red]begin[/color]
Combobox1.AddItem(Combobox1.Text,nil);
Combobox1.Items.SaveToFile(ExtractFilePath(ParamStr(0))+'Protocoll.pnmd');
q:= '%' + Combobox1.Text + '%';
with ZReadOnlyQuery1 do
  begin
    close;
    SQL.Clear;
    SQL.Add('SELECT * FROM Addy WHERE');
    SQL.Add('Name LIKE :Name OR ');
    SQL.Add('Vorname LIKE :Vorname OR ');
    SQL.Add('Straße LIKE :Straße OR ');
    SQL.Add('PLZ LIKE :PLZ OR ');
    SQL.Add('Stadt LIKE :Stadt OR ');
    SQL.Add('e-Mail LIKE :e-Mail OR ');
    SQL.Add('Tel LIKE :Tel OR ');
    SQL.Add('Notiz LIKE :Notiz');
    ParamByName ('Name').AsString := q;
    ParamByName ('Vorname').AsString := q;
    ParamByName ('Straße').AsString := q;
    ParamByName ('PLZ').AsString := q;
    ParamByName ('Stadt').AsString := q;
    ParamByName ('e-Mail').AsString := q;
    ParamByName ('Tel').AsString := q;
    ParamByName ('Notiz').AsString := q;
    open;
    ListView1.Items.BeginUpdate;
    Listview1.Items.Clear;
    while not (EOF) do
    begin
      LI := Listview1.Items.Add;
      LI.ImageIndex := 0;
      LI.Caption := (FieldByName('ID').AsString);
      LI.SubItems.Add(FieldByName('Name').AsString);
      LI.SubItems.Add(FieldByName('Vorname').AsString);
      LI.SubItems.Add(FieldByName('Straße').AsString);
      LI.SubItems.Add(FieldByName('PLZ').AsString);
      LI.SubItems.Add(FieldByName('Stadt').AsString);
      LI.SubItems.Add(FieldByName('e-Mail').AsString);
      LI.SubItems.Add(FieldByName('Tel').AsString);
      LI.SubItems.Add(FieldByName('Notiz').AsString);
      Next;
    end;
    ListView1.Items.EndUpdate;
    close;
  end;
[color=red]end;[/color]
end;

Hier noch 'ne Möglichkeit.

Exit beendet die Prozedur und der nachfolgende Code wird auch nicht mehr ausgeführt

Code:
procedure TFrame5.Button1Click(Sender: TObject);
var
LI: TListItem;
q :string;
begin
if Combobox1.Text =('') then
   Showmessage('Bitte geben Sie einen Suchbegriff ein')
   else [color=red]exit;[/color]
Combobox1.AddItem(Combobox1.Text,nil);
Combobox1.Items.SaveToFile(ExtractFilePath(ParamStr(0))+'Protocoll.pnmd');
q:= '%' + Combobox1.Text + '%';
with ZReadOnlyQuery1 do
  begin
    close;
    SQL.Clear;
    SQL.Add('SELECT * FROM Addy WHERE');
    SQL.Add('Name LIKE :Name OR ');
    SQL.Add('Vorname LIKE :Vorname OR ');
    SQL.Add('Straße LIKE :Straße OR ');
    SQL.Add('PLZ LIKE :PLZ OR ');
    SQL.Add('Stadt LIKE :Stadt OR ');
    SQL.Add('e-Mail LIKE :e-Mail OR ');
    SQL.Add('Tel LIKE :Tel OR ');
    SQL.Add('Notiz LIKE :Notiz');
    ParamByName ('Name').AsString := q;
    ParamByName ('Vorname').AsString := q;
    ParamByName ('Straße').AsString := q;
    ParamByName ('PLZ').AsString := q;
    ParamByName ('Stadt').AsString := q;
    ParamByName ('e-Mail').AsString := q;
    ParamByName ('Tel').AsString := q;
    ParamByName ('Notiz').AsString := q;
    open;
    ListView1.Items.BeginUpdate;
    Listview1.Items.Clear;
    while not (EOF) do
    begin
      LI := Listview1.Items.Add;
      LI.ImageIndex := 0;
      LI.Caption := (FieldByName('ID').AsString);
      LI.SubItems.Add(FieldByName('Name').AsString);
      LI.SubItems.Add(FieldByName('Vorname').AsString);
      LI.SubItems.Add(FieldByName('Straße').AsString);
      LI.SubItems.Add(FieldByName('PLZ').AsString);
      LI.SubItems.Add(FieldByName('Stadt').AsString);
      LI.SubItems.Add(FieldByName('e-Mail').AsString);
      LI.SubItems.Add(FieldByName('Tel').AsString);
      LI.SubItems.Add(FieldByName('Notiz').AsString);
      Next;
    end;
    ListView1.Items.EndUpdate;
    close;
  end;
end;

Robert_G 9. Mär 2004 21:09

Re: Schleife mit else stoppen!!!???
 
Delphi-Quellcode:
if Combobox1.Text =('') then
  Showmessage('Bitte geben Sie einen Suchbegriff ein')
else
  Combobox1.AddItem(Combobox1.Text,nil);
// ab hier geht's mit dem restlichen Programm weiter...
Combobox1.Items.SaveToFile(ExtractFilePath(ParamStr(0))+'Protocoll.pnmd');
...
Du willst wahscheinlich das machen:
Delphi-Quellcode:
if Combobox1.Text =('') then
   Showmessage('Bitte geben Sie einen Suchbegriff ein')
else
Begin
  Combobox1.AddItem(Combobox1.Text,nil);
  Combobox1.Items.SaveToFile(ExtractFilePath(ParamStr(0))+'Protocoll.pnmd');
  ...
End;
Damit du mehrere Codezeilen im Else aufrufen kannst, musst du (, wie Luckie bereits geschrieben hat, :wink: ) deine Befehlen in einen Begin-End-Block packen.

Edit: Soviel zu redundanten Posts :mrgreen:

Plague 9. Mär 2004 21:19

Re: Schleife mit else stoppen!!!???
 
Danke, das war der richtige Tip!!!
:thuimb:

Luckie 9. Mär 2004 21:21

Re: Schleife mit else stoppen!!!???
 
Den habe ich dir aber schon auf Seite eins gegeben. :roll:

Plague 9. Mär 2004 21:34

Re: Schleife mit else stoppen!!!???
 
Sorry Luckie,

ich dachte du hast das auf ein begin nach der if-Anweisung bezogen...
Sorry... :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.
Seite 2 von 2     12   

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