AGB  ·  Datenschutz  ·  Impressum  







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

if-then-else

Ein Thema von LoL · begonnen am 4. Okt 2004 · letzter Beitrag vom 4. Okt 2004
Antwort Antwort
LoL
(Gast)

n/a Beiträge
 
#1

if-then-else

  Alt 4. Okt 2004, 09:33
hallo zusammen,

warum bricht die abfrage bei diesem code ab wenn ein edit feld nich enabled ist
Delphi-Quellcode:
  if edit1.Enabled then
    if edit1.Text = 'then edit1.SetFocus
  else if edit2.Enabled then
    if edit2.Text = 'then edit2.SetFocus
  else if edit3.Enabled then
    if edit3.Text = 'then edit3.SetFocus
und bei der nicht? es müsste doch trotzdem der else teil ausgeführt werden!

Delphi-Quellcode:
  if (edit1.Enabled) and (edit1.Text = '') then edit1.SetFocus
  else if (edit2.Enabled) and (edit2.Text = '') then edit2.SetFocus
  else if (edit3.Enabled) and (edit3.Text = '') then edit3.SetFocus
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: if-then-else

  Alt 4. Okt 2004, 09:36
Zitat von LoL:
warum bricht die abfrage bei diesem code ab wenn ein edit feld nich enabled ist
Weil das ELSE anders angewandt wird als Du es wolltest. Der Compiler achtet nicht! auf Einrückungen.
Code:
  if edit1.Enabled then
    if edit1.Text = '' then edit1.SetFocus [color=#ff001b]else[/color]
  else if edit2.Enabled then
    if edit2.Text = '' then edit2.SetFocus [color=#ff001b]else[/color]
  else if edit3.Enabled then
    if edit3.Text = '' then edit3.SetFocus
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#3

Re: if-then-else

  Alt 4. Okt 2004, 09:38
und wenn man das in einen anweisungsblock einschließt? (begin end)
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#4

Re: if-then-else

  Alt 4. Okt 2004, 09:39
Dann würde es gehen. ( sofern man es richtig macht )
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#5

Re: if-then-else

  Alt 4. Okt 2004, 09:47
nach sakuras methode geht es nicht

wenn bed1, bed2, bed2 dann mache was

jetzt springt er aber ganz raus!
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: if-then-else

  Alt 4. Okt 2004, 09:52
Hi Lol,

hier ein Beispiel mit begin und end:
Delphi-Quellcode:
if edit1.Enabled then
begin
  if edit1.Text = 'then
    edit1.SetFocus
end
else if edit2.Enabled then
begin
  if edit2.Text = 'then
    edit2.SetFocus
end
else if edit3.Enabled then
begin
  if edit3.Text = 'then
    edit3.SetFocus
end;
IMHO sieht aber deine zweite Möglichkeit sauberer aus.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#7

Re: if-then-else

  Alt 4. Okt 2004, 10:16
Zitat von LoL:
nach sakuras methode geht es nicht

wenn bed1, bed2, bed2 dann mache was

jetzt springt er aber ganz raus!
Sakuras Quelltext sollte auch keine Lösung sein. Er wollte dir nur verdeutlichen, wie Delphi deinen Quelltext interpretiert, nämlich dass das Else zum "inneren" statt zum "äußeren" If-Then gezählt wird.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#8

Re: if-then-else

  Alt 4. Okt 2004, 10:41
nochmal genau dazu, warum dein 1. Versuch
Delphi-Quellcode:
if edit1.Enabled then
  if edit1.Text = 'then edit1.SetFocus
else if edit2.Enabled then
  if edit2.Text = 'then edit2.SetFocus
else if edit3.Enabled then
  if edit3.Text = 'then edit3.SetFocus
nicht geht - dort wird das else halt nicht, so wie von dir wohl gewünscht zu den "if edit_.Enabled then"-Abfragen gezählt - es wird halt immer auf die IF-Abfrage angewendet, welche direkt davor ist ... in deinem Fall halt so:
(sobald ein Edit-Feld nicht enabled ist, wird eben abgebrochen)
Delphi-Quellcode:
if edit1.Enabled then begin
  if edit1.Text = 'then begin
    edit1.SetFocus;
  end else begin
    if edit2.Enabled then begin
      if edit2.Text = 'then begin
        edit2.SetFocus;
      end else begin
        if edit3.Enabled then begin
          if edit3.Text = 'then begin
            edit3.SetFocus;
          end;
        end;
      end;
    end;
  end;
end;
Aber dein 2. Codeteil müßte doch funktionieren?

Delphi-Quellcode:
if edit1.Enabled and (edit1.Text = '') then edit1.SetFocus
else if edit2.Enabled and (edit2.Text = '') then edit2.SetFocus
else if edit3.Enabled and (edit3.Text = '') then edit3.SetFocus
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 20:55 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