AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Array, gleiche Werte zählen / Logikproblem.
Thema durchsuchen
Ansicht
Themen-Optionen

Array, gleiche Werte zählen / Logikproblem.

Ein Thema von g3m1n1 · begonnen am 4. Jun 2009 · letzter Beitrag vom 5. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2      
g3m1n1

Registriert seit: 18. Mai 2009
6 Beiträge
 
#1

Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:22
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
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:31
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:40
Oder "live" bei der Änderungen einer ComboBox
Markus Kinzler
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:41
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:
const
  CONST_Schulden = 1;
  CONST_Ausgaben = 2;
  usw...
zusätzlich haste die Variablen:

Delphi-Quellcode:
var
  CountSchulden: Integer;
  CountAusgaben: Integer;
  ....
nun kannst du in einer Schleife dein Array abarbeiten.

Delphi-Quellcode:
  for i := 0 to High(Meinarray) do
  begin
    case Meinarray[i] of
      CONST_SChulden: Inc(CountSchulden);
      CONST_Ausgaben: Inc(CountAusgaben);
      ...
    end;
  end;
Das nachher noch auf die Summe der Werte zu erweitern sollte nicht so schwer sein. Tip:
Delphi-Quellcode:
type
  meinrecord = record
    TypID: Integer;
    TypBezeichnung: String;
    Summe: Double;
  end;

var
  WerteArray = array of meinrecord;

Gruß
Ansgar
Ansgar
  Mit Zitat antworten Zitat
g3m1n1

Registriert seit: 18. Mai 2009
6 Beiträge
 
#5

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:46
Das mit Excel hat mein Bruder auch gesagt 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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:51
Zitat:
, wenn sowas wie Combobox[x].itemindex gehen würde.
Wenn man das entsprechend definiert, geht das auch, z.B. so:var Boxes: array[0..42] of TComboBox;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:52
-ComboBoxen in Array oder Liste
-<Form>.FindComponent()
-"live" über Sender
Markus Kinzler
  Mit Zitat antworten Zitat
g3m1n1

Registriert seit: 18. Mai 2009
6 Beiträge
 
#8

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:52
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 ?
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:52
Zitat von g3m1n1:
[..]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.[..]
Klar kannst du direkt auf die Comboboxen zugreifen

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
Ansgar
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Array, gleiche Werte zählen / Logikproblem.

  Alt 4. Jun 2009, 14:57
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.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
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