Schleife mit else stoppen!!!???
Hallo
ich möchte an einer Stelle (vor der else anweisung) einen Stopp (Abbruch) einbauen.
Delphi-Quellcode:
Was muss ich für den Stopp eingeben?
if Anweisung then
showmessage('Text'); S T O P P ! ! ! else Anweisung; end; MfG Thomas |
Re: Schleife mit else stoppen!!!???
Kommt darauf an, was du abbrchen willst. aber versuch es mal mit Break;
|
Re: Schleife mit else stoppen!!!???
wo ist die schleife?
aus schleifen springt man mit break, schau dir aber auch mal continue an |
Re: Schleife mit else stoppen!!!???
Ich will keine Pause, ich will die Schleife beenden...
|
Re: Schleife mit else stoppen!!!???
Und warum zeigst du uns dann Code einer Verzweigung? :roll:
Delphi-Quellcode:
bCancel ist eine globale Variable, die du mit einem Button oder was weiß ich setzten kannst.
for i := 0 to 9 do
begin Application.ProcessMessages; if bCancel = True then break; /// tu was end; |
Re: Schleife mit else stoppen!!!???
Ich bin ein Trottel,
es ist keine schleife es ist eine If-Bedingung. Wie kann ich da die else Anweisung verhindern? |
Re: Schleife mit else stoppen!!!???
In dem Anweisung wahr ist. Dann wird der else-Zweig auch nicht mehr durchlaufen.
|
Re: Schleife mit else stoppen!!!???
Das habe ich mir auch immer so gedacht, aber leider ist das bei dem was ich da mache nicht so. Es wird dann die if Anweisung erfüllt aber auch die Anweisung nach der Else anweisung... Komisch, gell?
|
Re: Schleife mit else stoppen!!!???
Wie viele Anweisungen stehen denn nach der if-Zeile? Bei mehr als einer musst du die folgenden Anweisungen in einen begin - end-Block packen.
|
Re: Schleife mit else stoppen!!!???
Code:
wo is das problem?
wenn anweisung erfüllt dann //if anweisung then
tue was // showmessage('if'); wenn nicht erfüllt //else tu was anderes // showmessage('else'); |
Re: Schleife mit else stoppen!!!???
Es ist in ein begin und end gepackt. Das ist irgendwie komisch. Was kann ich noch versuchen?
|
Re: Schleife mit else stoppen!!!???
Mal den Code zeigen? ;)
|
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 |
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; |
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; |
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; |
Re: Schleife mit else stoppen!!!???
Delphi-Quellcode:
Du willst wahscheinlich das machen:
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'); ...
Delphi-Quellcode:
Damit du mehrere Codezeilen im Else aufrufen kannst, musst du (, wie Luckie bereits geschrieben hat, :wink: ) deine Befehlen in einen Begin-End-Block packen.
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; Edit: Soviel zu redundanten Posts :mrgreen: |
Re: Schleife mit else stoppen!!!???
Danke, das war der richtige Tip!!!
:thuimb: |
Re: Schleife mit else stoppen!!!???
Den habe ich dir aber schon auf Seite eins gegeben. :roll:
|
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 22:36 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