Einzelnen Beitrag anzeigen

Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#49

AW: Übungsprogramm "Kinokarten"

  Alt 21. Dez 2016, 22:29
Hallo
Vielen Dank für die Hinweise. Ich hoffe, sie alle richtig umgesetzt zu haben. Bei der Prüfung konnte ich keine Fehler feststellen, doch sicher ist die von mir gewählte Deklaration public nicht so der Hit.
Verdient das Programm somit die Bezeichnung kleines Übungsprogramm für ein "Dorfkino"? Ich habe jedenfalls in der Erstellungsphase viel dazugelernt. Nochmals Dank
Also ganz ehrlich? Nein

Du hast immer noch zuviel Logik im Formular.

z.B:

Delphi-Quellcode:
Kinokarten.setAnzK1(strtoint(EAnzK1.text));
      if Kinokarten.Karten[Rang1] > (ord(frPlR1Vorg)) then
        begin
            ShowMessage(zuvielKarten);
            EAnzK1.Text:='0';
            EAnzK1.SetFocus;
            exit;
        end;
da gehört die Prüfung in die Klasse (meiner Meinung nach).

etwa in dem Kinokarten.setAnzK1 als function deklariert wird mit einem Boolean
also etwa
Delphi-Quellcode:
function TKinokarten.setAnzK1(k1:integer) : boolean;
begin
 result := false;
 if gekaufteKarten[Rang1] + k1 <= (ord(frPlR1Vorg)) then
  begin
    Karten[Rang1]:= k1;
    result := true;
  end;
end;

// in Auswerten dann:
 if not Kinokarten.setAnzK1(strtoint(EAnzK1.text)) then
        begin
            ShowMessage(zuvielKarten);
            EAnzK1.Text:='0';
            EAnzK1.SetFocus;
            exit;
        end;
Im Moment kann ich 2 * 12 Karten Rang1 kaufen bevor eine Meldung kommt........
Fritz Westermann
  Mit Zitat antworten Zitat