Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi IF Abfrage (https://www.delphipraxis.net/93498-if-abfrage.html)

s-off 6. Jun 2007 22:16

Re: IF Abfrage
 
Du hast in Deiner Abfrage 8 Bedingungen, zusammengefasst in 4*2 welche mit OR verknüpft sind.
Sprich, wenn eine Deiner 4 Bedingungen zutrifft, dann wird der Rest ausgeführt.

Und dabei ist es ganz egal, ob das die erste, zweite, dritte oder vierte Bedingung ist.

So, wie der Code dort steht, werden auf jeden Fall alle Bedingungen geprüft, bis eine True ergibt.

Edit: zu prüfenden Ausdruck markieren und mit STRG+F7 auswerten.

semo 6. Jun 2007 22:28

Re: IF Abfrage
 
genau: nenn uns doch mal bitte die variablenwerte für

Merkmal, ID, Temp1.ID, Temp2.ID, Temp1.Name, Temp2.Name, Temp1.Typ, Temp2.Typ, Temp1.Kategorie, Temp2.Kategorie

Stillmatic 6. Jun 2007 22:39

Re: IF Abfrage
 
Ich werde es nochmal Probieren zu erklären!

Ich will mit dieser Abfrage erreichen

Delphi-Quellcode:
if ((Merkmal = ID) and (Temp1.ID < Temp2.ID))
      or ((Merkmal = N) and (Temp1.Name < Temp2.Name))
      or ((Merkmal = T) and (Temp1.Typ < Temp2.Typ))
      or ((Merkmal = K) and (Temp1.Kategorie < Temp2.Kategorie))then
das je nach dem was Merkmal für einen Wert beeinhaltet, ein BubbleSort realisiert wird!
Das wirkliche Tauschen der position in der Datei wird erst in dem then Teil ausgeführt, da es ja bei allen(also egal welchen Wert Merkmal hatt) das selbe ist!
Nur die Abfragen nach den Abfragen welchen Wert Merkmal beeinhaltet ist für die unterschiedlichen Fälle anders!

Aber der Code oben, funktioniert bei mir nicht und ich verstehe nicht warum(habe das so schon öffters gemacht)??
Welche sagen es liegt am Delphi Compiler andere sagen es muss so laufen.

Tut es aber nicht, das Problem liegt ganz klar da, das als erstes geprüft wird ob Merkmal = N ist (ist es aber nicht) und dann testet er den ersten or Teil überhaupt nicht mehr.....TELL MI WHY (bin schon min. 10 mal mit dem debugger durch--> keine Idee!!)

:wall: :wall: :wall: :wall: :wall: :wall: :wall:

@computer-glossar.de

ID := 1,2,3,4....
Name:= String[50]
Typ:=(CD,DVD)
Kategorie:= (Film,Musik,Software,SonstigeDaten)

Da liegt aber auch nicht der Fehler, er müsste ja zumindest mal den Ausdruck auswerten tut er aber net!

Sunlight7 7. Jun 2007 02:11

Re: IF Abfrage
 
Moin!

Wenn Du das machst:
Delphi-Quellcode:
If ((Merkmal = ID) and (Temp1.ID < Temp2.ID)) then
   ShowMessage('1');
If ((Merkmal = N) and (Temp1.Name < Temp2.Name)) then
   ShowMessage('2');
If ((Merkmal = T) and (Temp1.Typ < Temp2.Typ)) then
   ShowMessage('3');
If ((Merkmal = K) and (Temp1.Kategorie < Temp2.Kategorie)) then
   ShowMessage('4');
Welche Meldungen bekommst Du?


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

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