Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi If erstens Or zweitens Problem (https://www.delphipraxis.net/114624-if-erstens-zweitens-problem.html)

xShadowBoZz 28. Mai 2008 13:30


If erstens Or zweitens Problem
 
so habe folgendes Problem momentan.
Ich habe in meinem Program eine "Search" funktion eingebaut.
Jetzt will ich das nach "Edit1.Text" gesucht wird wenn "ListBox1.Visible" oder "listbox2.visible".

Habe es hiermit Probiert allerdings funktioniert es nicht.

Delphi-Quellcode:
If Form2.ListBox1.Visible=True or Form2.ListBox2.Visible=True then
alles ohne Fehler und Errors compilierbar.

mit
Delphi-Quellcode:
If Form2.ListBox1.Visible=True (or Form2.ListBox2.Visible=True) then
kommt ein Error:
"Operator oder Semikolon fehlt"

Kann mir da jemand helfen mehrere "Bedingungen" in eine If-Abfrage "reinzustecken"?

thx im vorraus

s-off 28. Mai 2008 13:34

Re: If erstens Or zweitens Problem
 
Delphi-Quellcode:
If ((Form2.ListBox1.Visible) or (Form2.ListBox2.Visible)) and bSchoenesWetter then
trifft zu, wenn Schönes Wetter ist und eine der beiden ListBoxen sichtbar.

Und lass das = True bei Prüfen einer If-Bedingung weg!

DeddyH 28. Mai 2008 13:36

Re: If erstens Or zweitens Problem
 
Wenn Du die Prüfung auf true weglässt, kannst Du auch die Klammern weglassen.

s-off 28. Mai 2008 13:38

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von DeddyH
Wenn Du die Prüfung auf true weglässt, kannst Du auch die Klammern weglassen.

Ich würde trotzdem klammern.

Erstens erhöht es die Lesbarkeit und zweitens wird es dadurch leichter, wenn Du Dich mit anderen Sprachen beschäftigst, bei denen schon ein Ausdruck geklammert werden muss; z.B. C#.

Prüfung auf True oder False lässt man generell weg!

ToFaceTeKilla 28. Mai 2008 13:39

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von s-off
Und lass das = True bei Prüfen einer If-Bedingung weg!

Ich glaub, was s-off meint, ist, dass Boolean-Variablen/-Ausdrücke nicht auf true überprüft werden müssen, sondern wenn dann auf false.
Delphi-Quellcode:
if visible then
für true

Delphi-Quellcode:
if visible = false then
für false

EDIT: warer schneller...

Larsi 28. Mai 2008 13:40

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von s-off
Delphi-Quellcode:
If ((Form2.ListBox1.Visible) or (Form2.ListBox2.Visible)) and bSchoenesWetter then
trifft zu, wenn Schönes Wetter ist und eine der beiden ListBoxen sichtbar.

Und lass das = True bei Prüfen einer If-Bedingung weg!


[OT] Die Bedingung wird zumindest bei mir nie zutreffen :) [OT]

s-off 28. Mai 2008 13:42

Re: If erstens Or zweitens Problem
 
[OT]
Zitat:

Zitat von Larsi
Zitat:

Zitat von s-off
trifft zu, wenn Schönes Wetter ist und eine der beiden ListBoxen sichtbar.

[OT] Die Bedingung wird zumindest bei mir nie zutreffen :) [OT]

Wegen des Wetters?
[/OT]

Sherlock 28. Mai 2008 13:42

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von ToFaceTeKilla
Zitat:

Zitat von s-off
Und lass das = True bei Prüfen einer If-Bedingung weg!

Ich glaub, was s-off meint, ist, dass Boolean-Variablen/-Ausdrücke nicht auf true überprüft werden müssen, sondern wenn dann auf false.
Delphi-Quellcode:
if visible then
für true

Delphi-Quellcode:
if visible = false then
für false

EDIT: warer schneller...

Was ist gegen ein
Delphi-Quellcode:
if not visible then
einzuwenden?

Sherlock

s-off 28. Mai 2008 13:43

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von Sherlock
Was ist gegen ein
Delphi-Quellcode:
if not visible then
einzuwenden?

Nichts.

ToFaceTeKilla 28. Mai 2008 13:44

Re: If erstens Or zweitens Problem
 
Zitat:

Was ist gegen ein
Delphi-Quellcode:
if not visible then
einzuwenden?

Sherlock
Ok das hab ich nich mit in Betracht gezogen. Is natürlich eleganter :stupid:

xShadowBoZz 28. Mai 2008 13:56

Re: If erstens Or zweitens Problem
 
Ok danke, ich weis das man das mit =True weglassen kann bzw. sollte aber irgendwie mach ich des immer ^^'
des war das was ich gebraucht habe, thx.
Delphi-Quellcode:
If ((Form2.ListBox1.Visible) or (Form2.ListBox2.Visible)) and bSchoenesWetter then

Jelly 28. Mai 2008 14:05

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von s-off
Erstens erhöht es die Lesbarkeit und zweitens wird es dadurch leichter, wenn Du Dich mit anderen Sprachen beschäftigst, bei denen schon ein Ausdruck geklammert werden muss; z.B. C#.

Bei C# kommt die Klammerung aber um den gesamten Ausdruck...

BullsEye 28. Mai 2008 14:09

Re: If erstens Or zweitens Problem
 
Vllt hilfts!

Matze 28. Mai 2008 14:21

Re: If erstens Or zweitens Problem
 
Eine deutlich ausführliche Erklärung, wieso man nicht auf "= true" vergleichen sollte, findet sich auch in der DP: Über den Umgang mit Boolean.

s-off 28. Mai 2008 14:31

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von Jelly
Zitat:

Zitat von s-off
Erstens erhöht es die Lesbarkeit und zweitens wird es dadurch leichter, wenn Du Dich mit anderen Sprachen beschäftigst, bei denen schon ein Ausdruck geklammert werden muss; z.B. C#.

Bei C# kommt die Klammerung aber um den gesamten Ausdruck...

Habe ich das nicht geschrieben?

Während in Delphi etwas wie
Delphi-Quellcode:
if iZahl = 4 then begin
...
end;
möglich ist, muss es unter C#
Code:
if (zahl == 4)
{
...
}
lauten, bzw. mit obigem Beispiel
Code:
if ((object1.Visible || object2.Visible == 5) && schoenesWetter)
{
...
}

Jelly 28. Mai 2008 15:31

Re: If erstens Or zweitens Problem
 
Zitat:

Zitat von s-off
Habe ich das nicht geschrieben?

Vielleicht nicht vollständig:

Das in Delphi
Delphi-Quellcode:
if (a = b) or (c = d) then begin
end ;
wird in C# zu
Code:
if (a == b || c == d)
{
}
d.h. es wird der Gesamtausdruck geklammert, während in Delphi jeder einzelne Vergleich geklammert werden muss.

Ist aber eh nur ein Detail und tut im Grund hier nix zur Sache.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 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