Hi,
dein Problem besteht eigentlich aus mind. zwei Teilproblemen:
- Du möchtest eine Ausgabe (als Tabelle)
- Du musst die gewählten Artikel (+ Anzahl) zwischenspeichern
Die Darstellung ist dabei relativ einfach möglich. Du kannst jede Komponente nehmen, die dir eine Tabelle anzeigt. Da gibt es z.B. ein TStringGrid oder auch ein TListView, die kämen da gut in Frage. Die Tabelle musst du nun einfach nur regelmässig (beim ändern deiner Auswahl) aktualisieren. Damit wären wir schon bei Punkt 2, du musst dir also irgendwie merken, was "im Warenkorb liegt".
An sich bietet sich etwas wie eine Liste an, da du eine variable Anzahl von Produkten hast. Jedes Produkt wird sicherlich eine ID haben, du musst die ja irgendwie unterscheiden können. Du brauchst also eine Liste, die alle Produkte die gekauft wurden und dessen Anzahl abspeichert. Wird eine Taste ein zweites mal gedrückt, kannst du durch die Liste laufen und erkennst anhand der ID ob das Produkt schon im Warenkorb liegt (Anzahl erhöhen) oder nicht (hinzufügen).
Um zu prüfen ob ein Produkt in der Liste ist, kannst du einfach alle Elemente der Liste betrachten (bei einer Einkaufsliste dürften so wenig verschiedene Produkte vorhanden sein << 1000), dass dies schnell möglich ist. An sich kannst du aber auch auf eine Map zurückgreifen. Hier wird eine Funktion verwendet, die eine ID auf einen eindeutigen Platz abbildet, somit ist der Aufwand des Findens eines Produktes nun konstant (sonst linear). Im Falle einer Kasse dürfte es (wie gesagt) noch nicht ins Gewicht Fallen.
Was Listen angeht, so kannst du auf TList zurückgreifen, wenn du mit Records arbeitest oder auf eine TObjectList wenn du mit Klassen/Objekten arbeitest. Letzteres würde ich dir eher empfehlen, da die gespeicherten Instanzen auch aut. wieder freigegeben werden (können).
Gruß Der Unwissende