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:
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
oder kürzer:
Delphi-Quellcode:
if ue11_2 then
begin
ue11.Visible := (ue11_1k) and (ue11_1n) and (ue11_3) and (gesamt <= 52);
end
Und dann hast du trotzdem noch eine Bedingungsprüfung mit einem Haufen
ANDs und
ORs:
Delphi-Quellcode:
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
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:
Code:
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');
Und damit sieht´s bloß noch so aus:
Delphi-Quellcode:
if WasIsnDas1 then begin
rsa.Visible := true
end else begin
if WasIsnDas2 then
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.
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:
[b]if[/b] CB_Franz.checked[color=#ff0000][s]=true[/s][/color] [b]then[/b]
genügt ebenfalls.
Und zu guter Letzt: Ein Label würde auch genügen. Je nach erfüllter Bedingung könntest du es beschriften:
Delphi-Quellcode:
if(Irgendeine_Bedingung) then
Label1.Caption := 'Irgendeine Bedingung ist erfüllt'
else
Label1.Caption := 'Irgendeine andere Bedingung ist erfüllt'
Dann brauchst du nicht mit dem Verstecken und Anzeigen der verschiedenen Labels hantieren.