Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi if-Konstrukionen bei checkboxen (https://www.delphipraxis.net/128811-if-konstrukionen-bei-checkboxen.html)

AlexanderBrade 6. Feb 2009 15:41


if-Konstrukionen bei checkboxen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich schreibe an einem Programm für die Berechnung des Abitur-Durchschnittes.
In einem Formluar bietet es die Möglichkeit die Wahlpflichtfächer auszuwählen(sonstige wie Musik, Ethik, usw., die in der Regel frei nach Wahl belegt werden können).
Dazu habe ich 13 checkboxen für die Wahl erstellt. Der Anwender hat die Möglichkeit eine oder zwei dieser auszuwählen.
Bei meinem Problem handelt es sich um die visuelle Darstellung, dieser getätigten Auswahl. Diese soll nach einem Klick auf den "weiter" Button in folgendem Formular in zwei Panels erfolgen. Das Problem ist, dass ich nicht 20 if-Konstrukionen aufmachen will um alle Möglichkeiten zu erfassen!
Ein Beispiel: Jemand wählt Rechtskunde, das laut meiner Programmierung als Wahl in das erste Panel geschrieben wird. Außerdem wählt er Latein, das ins 2. geschrieben wird, da ich das standardisiert so festgelegt habe. Wenn die zweite Wahl allerdings Wirtschaft sein sollte, bei dem auch das 1. festgeschrieben ist überschreiben sich beide Fächer und das 2. Panel bleibt leer, obwohl zwei Fächer gewählt wurden, usw.

Vielleicht hat jemand einen Lösungsansatz bzw. Programmieransatz mit dem so etwas besser lösbar wäre als mit if-Konstruktionen.
Vielen Dank im voraus.

Im Anhang ein Screeenshot des Formulars mit den vielen checkboxen.

quendolineDD 6. Feb 2009 15:53

Re: if-Konstrukionen bei checkboxen
 
Gebe einfach den CheckBoxen eine gemeinsame OnClick-Methode und dazu einem Zähler. Bei Click wird der Zähler inkrementiert. Ist der Zähler kleiner 2, wird in das entsprechende Label der Caption der CheckBox geschrieben. Und Fertig.

Das kann dann zB so aussehen:

Delphi-Quellcode:
procedure TForm1.SetLabel(Sender: TObject);
begin
  if (Sender as TCheckBox).Checked then
    if (i < 2) then
    begin
      case i of
        1 : Form2.Label1.Caption := (Sender as TCheckBox).Caption;
        2 : Form2.Label2.Caption := (Sender as TCheckBox).Caption;
      end;
    end;
end;

mkinzler 6. Feb 2009 15:54

Re: if-Konstrukionen bei checkboxen
 
-Reagiere bei Änderung und trage gleich in der Folgeseite ein
-.FindControl
-Referenzen in Array ablegen

AlexanderBrade 6. Feb 2009 16:06

Re: if-Konstrukionen bei checkboxen
 
So wie das quendolineDD beschrieben hat haut das aber noch nicht hin, oder fehlt da noch etwas ???
P.S. Ich bin nicht so firm, dass ich mit allem was mkinzer schreibt etwas anfangen kann.

DeddyH 6. Feb 2009 16:08

Re: if-Konstrukionen bei checkboxen
 
[OT]
Zitat:

Zitat von AlexanderBrade
...dass ich mit allem was mkinzer schreibt etwas anfangen kann.

Damit stehst Du nicht allein da :mrgreen:[/OT]

AlexanderBrade 6. Feb 2009 16:19

Re: if-Konstrukionen bei checkboxen
 
Kann denn das was quendolineDD geschrieben hat klappen oder sollte ich mich auf diesen Pfad erst gernicht begeben?

DeddyH 6. Feb 2009 16:23

Re: if-Konstrukionen bei checkboxen
 
Kann ich Dir im Moment leider nicht beantworten, da ich Deine Problembeschreibung ehrlich gesagt noch nicht ganz verstanden habe :oops:

AlexanderBrade 6. Feb 2009 16:33

Re: if-Konstrukionen bei checkboxen
 
Naja das Problem ist das Überschreiben: wie erreiche ich, dass das erste Fach was man anklickt ins 1. Panel sofort übertragen wird und das zweite dann ins 2. Panel(direkt beim Anklicken/Ändern)???

DeddyH 6. Feb 2009 16:38

Re: if-Konstrukionen bei checkboxen
 
Tut mir leid, ich bin heute etwas begriffsstutzig. Die Checkboxen liegen auf Panels gruppiert, richtig? Was soll denn nun genau passieren, wenn eine davon angeklickt wird bzw. was ist Dein definiertes Ziel?

AlexanderBrade 6. Feb 2009 16:41

Re: if-Konstrukionen bei checkboxen
 
Also die checkboxen tragen eine caption, die in die panels des nächsen formulars übertragen werden soll.
Wenn die erste angeklickt wird, soll deren caption gleich übertragen werden. Wird die zweite ageklickt(max. Anzahl) soll das in das zweite Panel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.
Seite 1 von 2  1 2      

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