![]() |
Array, gleiche Werte zählen / Logikproblem.
Hi Leute !
Als erstes ein herzliches Hallo an die gesamte Community. Ich habe kürzlich mit Delphi angefangen ( vorher c++ und java ) und bin nun in ein Problem gerannt. Eigentlich geht es mehr um ein logisches Problem als um ein syntaxspezifisches... aber seht selbst. - Ich habe 14 Comboboxen. In diesen lassen sich verschiedene Werte auswählen. ( Freizeit, Schulden, KFZ, Sonstige Ausgaben, ... ) Wobei in jeder Combobox die gleichen Werte zur Verfügung stehen. Ich möchte nun mit einem Klick auf einen Button anzeigen lassen, Wieviele Positionen der 14 Comboboxen gleich sind. Sprich, wenn in 5 der 14 Comboboxen " Schulden " gewählt wurde, dann möchte ich anzeigen lassen können : SCHULDEN : 5 Ich würde das ja mit dem itemindex machen, aber ich komme gerade nicht weiter. Zur Erklärung noch dazu, links neben den 14 Comboboxen sind 14 Editboxen. In diese schreibt man dann z.B. eine Summe hinein ( z.B. was man neulich für Zigaretten ausgegeben hat ) und wählt dann daneben bei der Combobox treffenderweise "Freizeit" oder "Genussmittel". Am Ende will ich einfach nur angezeigt haben, wieviele der 14 Positionen unter welche Gruppe fallen. Was später noch dazukommt, dass die hinterlegten Summen ( ebenfalls 14 Editboxen ) pro Gruppe addiert werden. Einfach ausgedrückt, dass man weiß, wieviel Geld man z.B. insgesamt für Zigaretten ausgegeben hat. - es existiert ein Array[13] - dieses Array ist gefüllt mit itemindizes ( array[0] := combobox1.itemindex etc. etc. bis array[13] und combobox 14 ) Kann mir jemand weiterhelfen ? Viele Grüße, Andi |
Re: Array, gleiche Werte zählen / Logikproblem.
Außer der Tatsache, dass ich sowas in Excel machen würde/schonmal gemacht habe:
Benutze Bucketsort. Genauer: Erstelle ein Array mit sovielen Elementen wie in der Combobox auswählbar sind. Dann gehst du die Comboboxen durch und machst sowas: MyArray[ComboboxX.ItemIndex] := MyArray[ComboboxX.ItemIndex] + 1; Danach hast du in dem Array an jedem Index die Anzahl an Comboboxen stehen, in der dieser Eintrag ausgewählt ist ;) |
Re: Array, gleiche Werte zählen / Logikproblem.
Oder "live" bei der Änderungen einer ComboBox
|
Re: Array, gleiche Werte zählen / Logikproblem.
Hi und Willkommen,
das von jfheins erklärte ist die eine Option. Die andere ist, du definiert dir deine eigenen Typen als zB Konstanten.
Delphi-Quellcode:
zusätzlich haste die Variablen:
const
CONST_Schulden = 1; CONST_Ausgaben = 2; usw...
Delphi-Quellcode:
nun kannst du in einer Schleife dein Array abarbeiten.
var
CountSchulden: Integer; CountAusgaben: Integer; ....
Delphi-Quellcode:
Das nachher noch auf die Summe der Werte zu erweitern sollte nicht so schwer sein. Tip:
for i := 0 to High(Meinarray) do
begin case Meinarray[i] of CONST_SChulden: Inc(CountSchulden); CONST_Ausgaben: Inc(CountAusgaben); ... end; end;
Delphi-Quellcode:
type
meinrecord = record TypID: Integer; TypBezeichnung: String; Summe: Double; end; var WerteArray = array of meinrecord; Gruß Ansgar |
Re: Array, gleiche Werte zählen / Logikproblem.
Das mit Excel hat mein Bruder auch gesagt :D Aber dennoch,
das muss sich doch programmieren lassen in delphi, oder ? Wie soll das funktionieren ? Soll das X in comboboxX denn variabel sein ? Das klappt doch nicht. Sonst hätte ich mir vie lMphe ersparen können, wenn sowas wie Combobox[x].itemindex gehen würde. Ich will doch nur wissen und anzeigen lassen, wieviele Positionen man im Monat für welche Gruppe eingibt, und das dann addieren. Beispiel... Editboxen Editboxen Comboboxen Dacia Rate 250 KFZ Polo Rate 150 KFZ Schulden 400 SCHULDEN Zigaretten 4 GENUSSMITTEL Tanken 200 KFZ --------------------------------------- So, und am Ende hab ich dann ein paar Labels etc. die anzeigen sollen ( am besten größter Betrag zu erst ) : KFZ 600 SCHULDEN 400 GENUSSMITTEL 4 --------------------------------------- Ist das denn so hart zu programmieren ?! Oder häng ich einfach nur grad. |
Re: Array, gleiche Werte zählen / Logikproblem.
Zitat:
Delphi-Quellcode:
var Boxes: array[0..42] of TComboBox;
|
Re: Array, gleiche Werte zählen / Logikproblem.
-ComboBoxen in Array oder Liste
-<Form>.FindComponent() -"live" über Sender |
Re: Array, gleiche Werte zählen / Logikproblem.
Erstmal, vielen Dank für die schnellen Antworten. Bin absolut überrascht.
Was ich vielleicht dazusagen sollte.... Die Positionen in den Comboboxen sind erweiterbar. Die werden bei Programmstart aus einer Datei gelesen und lassen sich innerhalb des Programms auch erweitern. Wenn also jemand meint, er muss den Punkt "Computerspiele" dazumachen, dann fügt er ihn hinzu. Fortan ist dieser Punkt dann auch in der Combobox. Das ist ein Problem. Bei euren Lösungswegen wird eine feste Anzahl vorausgesetzt, oder ? |
Re: Array, gleiche Werte zählen / Logikproblem.
Zitat:
Such mal in der Delphihilfe oder hier in der DP nach "FindComponent". Das ist das was du suchst [edit] roter kasten fehlte...[/edit] Gruß Ansgar |
Re: Array, gleiche Werte zählen / Logikproblem.
Wie wäre es mit OOP? Edit: Wenn du vorher mit Java programmiert hast, dächte ich wäre dein erster Ansatz das auch weiterhin OO zu gestalten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz