Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler bei if <> Klausel (https://www.delphipraxis.net/127744-fehler-bei-if-klausel.html)

nixalsverdruss 18. Jan 2009 11:45


Fehler bei if <> Klausel
 
Hallo,

warum funktioniert das:

Delphi-Quellcode:
procedure TForm2.Edit1Change(Sender: TObject);
begin
if (edit1.Text<>'s') or (edit1.Text<>' ') then
begin
beep;
ShowMessage ('Da geht´s nicht lang!!!');
end;
end;
nicht?

Es soll also die Message gezeigt werden wenn im editfeld nicht s oder ' ' steht. Aber die Meldung wird schon angezeigt, auch wenn ich 's' eintrag...warum?
Danke schon mal im Voraus
nixalsverdruss

Die Muhkuh 18. Jan 2009 11:47

Re: Fehler bei if <> Klausel
 
Naja, wenn Du ein 's' einträgst, ist der Text ja ungleich ' ', also ist die Abfrage true und er springt in die If-Abfrage rein. ;)

DeddyH 18. Jan 2009 11:48

Re: Fehler bei if <> Klausel
 
Soll heißen, die Bedingung ist immer wahr ;)

nixalsverdruss 18. Jan 2009 11:51

Re: Fehler bei if <> Klausel
 
achso...und kann man das irgendwie anders lösen...?

Meflin 18. Jan 2009 11:52

Re: Fehler bei if <> Klausel
 
Zitat:

Zitat von nixalsverdruss
Es soll also die Message gezeigt werden wenn im editfeld nicht s oder ' ' steht. Aber die Meldung wird schon angezeigt, auch wenn ich 's' eintrag...warum?

Du hast den Code im OnChange des EditFeldes. Das heißt er wird sofort ausgeführt, wenn du einen Buchstaben eingibst. Wie DeddyH schon sagte, ist dann zwangsläufig die Bedingung imme rerfüllt. Vermutlich willst du aber diese Bedingung nicht bei jeder Eingabe, sondern nur an einer ganz bestimmten Stelle überprüfen.

Ich vemrute also, dass dein Code einfach im falschen Event steht :stupid:

DeddyH 18. Jan 2009 11:54

Re: Fehler bei if <> Klausel
 
Natürlich kann man das. 2 Möglichkeiten:
Delphi-Quellcode:
if not (Bedingung1 or Bedingung2) then
oder
Delphi-Quellcode:
if Bedingung1 and Bedingung2 then
Such Dir was aus und setze es um, dann siehst Du' s.

[edit] @Meflin: wenn ich 2 Bedingungen verodere, die sich gegenseitig ausschließen, bekomme ich immer true, das hat mit dem Event ja nix zu tun. [/edit]

nixalsverdruss 18. Jan 2009 11:57

Re: Fehler bei if <> Klausel
 
Ah ja ich probiers mal
danke für eure mühe

Meflin 18. Jan 2009 12:02

Re: Fehler bei if <> Klausel
 
Zitat:

Zitat von DeddyH
@Meflin: wenn ich 2 Bedingungen verodere, die sich gegenseitig ausschließen, bekomme ich immer true, das hat mit dem Event ja nix zu tun.

Ach ja, stümmt :stupid:

OK, die Bedingungen sind einfach doof :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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 by Thomas Breitkreuz