![]() |
Re: if ... or ... else - Anwendungen
Nachtrag:
Ich weiß nicht, ob´s der Fehler ist, aber du hast einen Dreher drin: In deinem Posting auf Seite 1 prüfst du zuerst die Kurse Deutsch, Englisch und Mathe, und dann noch mal Deutsch, Physik, Chemie und Bio. In deinem angehangenen Programm (auch zu sehen in der geposteten Unit) prüfst du zuerst Deutsch, Physik, Chemie und Bio, und dann Deutsch, Englisch und Mathe. Vielleicht macht´s auch keinen Unterschied ... :? ... Aber wenn ich davon ausgehe, dass der Code auf Seite 1 richtig ist, dann müsste deine Bedingung mit den Hilfsvariablen eigentlich so aussehen:
Delphi-Quellcode:
oder kürzer:
if ue11_2 then
begin if ue11_1k then begin if ue11_1n then begin if ue11_3 then begin if (gesamt<=52) then begin ue11.visible:=true; end; end; end; end; end
Delphi-Quellcode:
Und dann hast du trotzdem noch eine Bedingungsprüfung mit einem Haufen ANDs und ORs:
if ue11_2 then
begin ue11.Visible := (ue11_1k) and (ue11_1n) and (ue11_3) and (gesamt <= 52); end
Delphi-Quellcode:
Siehst du auch, was ich sehe? Die Noten sind alle <= 4, in der oberen Bedingung prüfst du lediglich noch ein paar Kurse. Also, kürzen:
if(deutsch_n<=4) and (deutsch_k='e') and (englisch_n<=4) and
(englisch_k='a') and (mathematik_n<=4) and (mathematik_k='a') and (physik_n<=4) and (physik_k='e') and (chemie_n<=4) and (chemie_k='e') and (biologie_n<=4) and (biologie_k='e') and (franz_n<=4) and (franz_k='a') and (relligion_n<=4) and (gl_n<=4) and (bwu_n<=4) and (sport_n<=4) and (kunst_n<=4) and (musik_n<=4) and (latein_n<=4) and (wpu4_n<=4) and (wpu2_n<=4) then begin rsa.visible:=true; end else begin if(deutsch_n<=4) and (englisch_n<=4) and (mathematik_n<=4) and (physik_n<=4) and (chemie_n<=4) and (biologie_n<=4) and (franz_n<=4) and (relligion_n<=4) and (gl_n<=4) and (bwu_n<=4) and (sport_n<=4) and (kunst_n<=4) and (musik_n<=4) and (latein_n<=4) and (wpu4_n<=4) and (wpu2_n<=4) then
Code:
Und damit sieht´s bloß noch so aus:
WasIsnDas2 := (deutsch_n<=4) [b]and[/b] (englisch_n<=4) [b]and[/b]
(mathematik_n<=4) [b]and[/b] (physik_n<=4) [b]and[/b] (chemie_n<=4) [b]and[/b] (biologie_n<=4) [b]and[/b] (franz_n<=4) [b]and[/b] (religion_n<=4) [b]and[/b] (gl_n<=4) [b]and[/b] (bwu_n<=4) [b]and[/b] (sport_n<=4) [b]and[/b] (kunst_n<=4) [b]and[/b] (musik_n<=4) [b]and[/b] (latein_n<=4) [b]and[/b] (wpu4_n<=4) [b]and[/b] (wpu2_n<=4); WasIsnDas1 := [color=#ff0000](WasIsnDas2)[/color] [b]and[/b] (deutsch_k='e') [b]and[/b] (englisch_k='a') [b]and[/b] (mathematik_k='a') [b]and[/b] (physik_k='e') [b]and[/b] (chemie_k='e') [b]and[/b] (biologie_k='e') [b]and[/b] (franz_k='a');
Delphi-Quellcode:
Wenn das alles deine Probleme nicht löst, dann solltest du noch mal in diesen Dokumenten nachschauen, ob du die Berechnungen wirklich richtig übernommen hast.
if WasIsnDas1 then begin
rsa.Visible := true end else begin if WasIsnDas2 then Ein Wort noch zu den "OnChange"-Ereignissen deiner Scrollbars. Du hast im Objektinspektor den Bereich der Scrollbars von 1 bis 6 festgelegt. Es besteht daher eigentlich keine Notwendigkeit, diesen Bereich in den "OnChange"-Ereignissen noch mal festzulegen - es sei denn, der Bereich wird irgendwo im Programm geändert; was bei dir allerdings nicht der Fall ist. Und ein simples
Code:
genügt ebenfalls.
[b]if[/b] CB_Franz.checked[color=#ff0000][s]=true[/s][/color] [b]then[/b]
Und zu guter Letzt: Ein Label würde auch genügen. Je nach erfüllter Bedingung könntest du es beschriften:
Delphi-Quellcode:
Dann brauchst du nicht mit dem Verstecken und Anzeigen der verschiedenen Labels hantieren.
if(Irgendeine_Bedingung) then
Label1.Caption := 'Irgendeine Bedingung ist erfüllt' else Label1.Caption := 'Irgendeine andere Bedingung ist erfüllt' |
Re: if ... or ... else - Anwendungen
Liste der Anhänge anzeigen (Anzahl: 1)
Abend MathiasSimmack!
Ich habe jetzt alles gemacht was hier vorgeschlagen wurde, außer
Delphi-Quellcode:
weil die verschiedenen Texte alle nicht in der Mitte sind
if(Irgendeine_Bedingung) then
Label1.Caption := 'Irgendeine Bedingung ist erfüllt' else Label1.Caption := 'Irgendeine andere Bedingung ist erfüllt' und Zitat:
Aber die Fehler ist immer noch da! Hier noch mal der Fehler genau: Wenn alle Fächer die Note 6 haben und alle Kurse auf E bzw. A gestellt sind wird nach der Berechnung nichts angezeigt. Aber wenn ich Englisch auf C oder Englisch und Mathematik jewels auf B stelle 'Kein Abschluss' angezeigt. Ich finde aber den Fehler nicht... Wer kann mir noch helfen? Hier auch der neue QT (ist in diesem QT noch was unschön???): |
Re: if ... or ... else - Anwendungen
Sag mal, @de_arg, ist das irgendwie ein Problem für dich, solche überbreiten Zeilen (wide code ;))
Delphi-Quellcode:
so in den Delphi-Editor zu schreiben, dass du den Rand auf der rechten Seite nicht überschreitest? Sobald du dich ihm näherst und der nächste Wert nicht mehr hinpassen würde, drücke Enter, rücke in der nächsten Zeile zwei Zeichen ein und schreib weiter. Dann hast du einen Beitrag, der auch für das Forum hier akzeptabel ist, und bei dem man nicht nach links und rechts scrollen muss!
gesamt := ((deutsch_n) + (englisch_n) + { ... };
Abgesehen davon brauchst du bei einer normalen Addition, wie der o.g., nicht mal Klammern. Meine Güte. :roll: |
Re: if ... or ... else - Anwendungen
Hai,
bitte in Zukunft nicht mehr diese überlangen Postings machen! :warn: Der Quellcode kann auch bequem als Anhang hinzugefügt werden! |
Re: if ... or ... else - Anwendungen
Noch ein bisschen Senf von meiner Seite :wink:
Ausserdem ist es quatsch immer den ganzen Source zu schreiben. Da blickt man ja nix mehr. Es würde langen wenn du nur das schreibst was du sagen willst. |
Re: if ... or ... else - Anwendungen
Ja, kann ein Mod denn mal den Quellcode rauswerfen?
de_arg kann seine aktuelle Unit für Interessenten ja noch mal anhängen. |
Re: if ... or ... else - Anwendungen
Zitat:
ohne Einverständniss ändere ich ungerne ein Posting. Ich habe de_arg aber via PM gebeten dies selber zu machen. |
Re: if ... or ... else - Anwendungen
Das kann ich zwar verstehen, Sharky, auf der anderen Seite ist es IMHO nicht schlimm, die beiden Units aus den Postings zu entfernen. de_arg hat jederzeit die Möglichkeit, seine Unit noch mal anzuhängen - es ist also nicht so, dass er nun gesperrt werden würde, o.ä.
Und ich hab´ das neue Posting (von heute) nur überflogen, aber soviel scheint sich nicht geändert zu haben. @de_arg: Wenn du trotz allem den Fehler immer noch drin hast, dann schau dir doch einfach noch mal diese Dokumentationen an, auf die du gelinkt hast. Ich meine, irgendwo musst du ja die Berechnungen gefunden haben, mit denen darüber entschieden wird, welchen Abschluss jemand hat. Vielleicht ist dir dabei ein Fehler unterlaufen. |
Re: if ... or ... else - Anwendungen
Hi!
Ich steig durch deinen Code einfach nicht durch und da du wahrscheinlich auch den Durchblick verloren hast (wenn du einfach mal 3 end woanders hinsetzt), würde ich dir folgende methode empfehlen. Entferne dich möglichst weit von deinem Computer, nimm ein möglichst leeres Blatt und einen gutschreibenden Stift und dann zeichnest du dir erstmal diese ganzen Verzweigungen und Bedingungen neu auf, gehst jeden Fall ein paarmal durch, verwendest die angesprochenen Hilfsvariablen und wenn es dann auf dem Papier gudd aussieht, dann kannst du es (strukturiert) abtippen und schauen, ob es geht. Sollte es dann nicht gehen, kannst du bestimmt schneller den Fehler finden oder ihn zumindest eingrenzen und die Frage hier posten. Aber dieser "Papier-Plan" kann wahre Wunder erfüllen. Glaubs mir. Ciao fkerber [Edit] Ich stelle gerade fest, dass ich die komplette 2. Seite bisher überlesen hatte, also denkt euch mein Posting ans Ende der 1. Seite, da passt es besser :oops: aber ich denke mal allgemein stimmt es wohl. [/Edit] [Edit2] Ich stelle grad fest, dass du einige Bedingugen überprüfst, wo die Note <=6 sein soll, was soll sie denn anderes sein? 6 ist doch das höchste, oder? Somit könnten die eigentlich wegfallen, oder? [/Edit2] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 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