Forum: Software-Projekte der Mitglieder
by Luckie,
19. Dez 2016
Das wäre eine gute Idee, wenn man Karten unterschiedlicher Preisklassen auf einmal verkaufen will. Bei dem Projekt ist noch viel Luft nach oben. ;)
Forum: Software-Projekte der Mitglieder
by Luckie,
18. Dez 2016
Und wie man sieht, es lohnt sich etwas nachzudenken bevor man los programmiert. Bisher habe ich noch keine Zeile programmiert, aber man sieht, dass sich so langsam eine recht gute Lösung abzeichnet.
(Nur mal so als Anmerkung für die Anfänger, für die ja dieses Demoprogramm gedacht ist.)
Forum: Software-Projekte der Mitglieder
by Luckie,
18. Dez 2016
Ein Problem ist auch die Verwaltung der noch verbleibenden Karten. Man könnte überlegen, ob man eine extra Klasse TTickt macht mit: Typ, Preis, MaxAnzahl und Rest oder so.
Und dann ein Array bzw. Objektliste für die Kartentypen.
Das ist schon nicht ganz banal, das elegant zu lösen. Das erfordert schon etwas überlegen. Mal sehen, wie ich morgen Zeit und Lust habe.
Forum: Software-Projekte der Mitglieder
by Luckie,
18. Dez 2016
Wie schon gesagt. So ziemlich alle. Und ich würde von außen an die Sache ran fegen und nicht von innen. Welche Methoden braucht der Nutzer deiner Klasse?
Warum nicht alle public? Weil es zum einem übersichtlicher ist und er nicht in Versuchung kommt interne Methoden zu verwenden, deren Schnittstelle sich ändert. Bei den public Methoen kann er sich sicher sein, dass sich die Schnittstelle...
Forum: Software-Projekte der Mitglieder
by Luckie,
18. Dez 2016
Nachtrag: Um die oben genannten öffentlichen Methoden würde ich die Klasse aufbauen. Einfach gucken, was brauche ich intern, um das umzusetzen. Welche Setter? Welche Getter? Wo und wie berechne ich was.
Man könnte aus der Karte auch ein Record machen, ist vielleicht noch besser. Ein Record mit folgenden Feldern: Rang (vom Typ Enum) und Preis.
Und für den Preis nimm besser den Datentyp...
Forum: Software-Projekte der Mitglieder
by Luckie,
18. Dez 2016
Das kannst du alles private machen und verstecken. Öffentlich brauchst du nur drei Methoden:
BuyTickst(Anzahl: Integer; Rang: Integer);
RemainingTickts(Rang: Integer): Integer);
MaxTickets(Rang: Integer): Integer;
Mehr braucht der Nutzer deiner Klasse nicht wissen. Wie du das alles intern löst, interessiert nicht.
Aus Rang könnte man noch den Datentyp Enum machen. Ist aussagekräftiger.
Forum: Software-Projekte der Mitglieder
by Luckie,
15. Dez 2016
Deswegen das ganze in eine Klasse kapseln.
Forum: Software-Projekte der Mitglieder
by Luckie,
14. Dez 2016
Wenn du die eine große Prozedur, wie schon vorgeschlagen, in einzelne zerlegst, kannst du gezielt mögliche Exceptions abfangen.
Und zum Close: Ein Aufruf von Close im Hauptformular bewirkt genau das, dass die Anwendung beendet wird. Und bitte zeig mir den Thread hier im Forum, wo gesagt wird, dass Apüplication.Terminate zum Beendne einer Anwendung vor zu ziehen ist. Klar auch wenn man eine...
Forum: Software-Projekte der Mitglieder
by Luckie,
14. Dez 2016
Das lasse ich vom Autodieb selber einrasten. :mrgreen:
Forum: Software-Projekte der Mitglieder
by Luckie,
14. Dez 2016
Ich habe es noch nicht angeguckt. :mrgreen:
procedure TForm1.CloseExecute(Sender: TObject);
begin
Application.Terminate;
end;
Was ist denn das? Warum kein einfaches Close? Klar, kann ich beim Auto einfach den Zündschlüssel abziehen. Aber normalerweise bremst man, hält an, leg den ersten Gang ein, zieht die Handbremse, macht dann den Motor aus und zieht den Zündschlüssel ab.
procedure...
Forum: Software-Projekte der Mitglieder
by Luckie,
8. Dez 2016
Wäre schön, wenn du noch schreiben würdest, welche Techniken im Einzel demonstriert werden.