Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array, gleiche Werte zählen / Logikproblem. (https://www.delphipraxis.net/135078-array-gleiche-werte-zaehlen-logikproblem.html)

DeddyH 4. Jun 2009 14:00

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

Zitat von g3m1n1
Das ist ein Problem. Bei euren Lösungswegen wird eine feste Anzahl vorausgesetzt, oder ?

Nicht unbedingt, Du kannst natürlich auch ein dynamisches Array verwenden.

sirius 4. Jun 2009 14:06

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

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.

Das ist ein Problem des RAD. Man kann zwar schnell etwas zusammenklickern auf der Form. Eine sinnvolle programmtechnische Verwendung verschließt sich dabei häufig (wie auch in diesem Fall). Meist wird dann mit Hilfe von FindComponent gearbeitet. Das funktioniert auch und wenn es deinen Ansprüchen genügt, kannst du es so umsetzen.

Als zweite Möglichkeit verzcihtest du einfach auf das Zusammenklickern und erstellst die Komponente einfach dynamisch (per Code) im Ereigniss FormCreate. Dann kannst du auch ein Array oder (besser) eine Liste verwenden. Zudem ist dann eine erweiterung recht leicht zu implementieren (wie Deddy schon schrieb).

jfheins 4. Jun 2009 14:07

Re: Array, gleiche Werte zählen / Logikproblem.
 
Jetzt mal Q&D Cpy&Paste-Programming:
Delphi-Quellcode:
var
  Count: Array of Cardinal;
begin
  setlength(Count, ComboBox1.ItemCount);
 
  Count[Combobox1.ItemIndex] := Count[Combobox1.ItemIndex] + 1;
  Count[Combobox2.ItemIndex] := Count[Combobox2.ItemIndex] + 1;
  Count[Combobox3.ItemIndex] := Count[Combobox3.ItemIndex] + 1;
  Count[Combobox4.ItemIndex] := Count[Combobox4.ItemIndex] + 1;
  Count[Combobox5.ItemIndex] := Count[Combobox5.ItemIndex] + 1;
  Count[Combobox6.ItemIndex] := Count[Combobox6.ItemIndex] + 1;
  Count[Combobox7.ItemIndex] := Count[Combobox7.ItemIndex] + 1;
  Count[Combobox8.ItemIndex] := Count[Combobox8.ItemIndex] + 1;
  Count[Combobox9.ItemIndex] := Count[Combobox9.ItemIndex] + 1;
  Count[Combobox10.ItemIndex] := Count[Combobox10.ItemIndex] + 1;
  Count[Combobox11.ItemIndex] := Count[Combobox11.ItemIndex] + 1;
  Count[Combobox12.ItemIndex] := Count[Combobox12.ItemIndex] + 1;
  Count[Combobox13.ItemIndex] := Count[Combobox13.ItemIndex] + 1;
  Count[Combobox14.ItemIndex] := Count[Combobox14.ItemIndex] + 1;
end;
Es bietet sich natürlich ein Array und eine Schleife an ;)


P.S.: Nur weil man etwas in Delphi machen kann, heißt das nicht dass es die beste Lösung ist ;)

g3m1n1 4. Jun 2009 14:28

Re: Array, gleiche Werte zählen / Logikproblem.
 
Der Spaghetticode funktioniert ja schonmal ganz gut :) Danke.

Jedenfalls kriege ich jetzt angezeigt, wie oft z.B. die Gruppe "KFZ" angewählt wurde.

Fehlt eigentlich nurnoch das wichtigste. Die Summe der einzelnen gleichen Gruppenpositionen.

Quasi...

Editbx. Combobx.

250 KFZ
150 KFZ
400 SCHULDEN
4 GENUSSMITTEL
200 KFZ

---------------------------------------
Am liebsten in ner Listbox oder ähnlichem :

KFZ 600
SCHULDEN 400
GENUSSMITTEL 4

Aber woher soll delphi wissen, welche editbox zu welcher gruppe gehört :(

nat 4. Jun 2009 14:46

Re: Array, gleiche Werte zählen / Logikproblem.
 
nun geht das geflicke richtig los... ;)
du könntest in dem Tag feld der comboboxen das dazu gehörende edit-feld speichern.
z.B beim start einma für alle boxen sowas wie
Delphi-Quellcode:
Combobox1.Tag := Integer(Edit1);
später könnteste dann über
Delphi-Quellcode:
TEdit(Combobox1.Tag).Text
darauf zugreifen.
ich kann zwar nicht grad behaupten, dass ich diese lösung sinderlich schön finde,
funktionieren sollte sie aber für den hausgebrauch!

g3m1n1 4. Jun 2009 15:01

Re: Array, gleiche Werte zählen / Logikproblem.
 
Wie geht das mit TEdit(Combobox1.Tag).Text ?

Ich hab einfach mal bei form create Combobox1.Tag := Integer(Edit18); eingefügt.
und dann ? wie komm ich an die Werte ?

nat 4. Jun 2009 15:14

Re: Array, gleiche Werte zählen / Logikproblem.
 
du hast es doch grad selber geschrieben :)
anzeigen z.B. so:
Delphi-Quellcode:
showmessage(TEdit(Combobox1.Tag).Text)
bzw du willst damit ja rechnen...
dann kannste sowas wie
Delphi-Quellcode:
TryStrToFloat(TEdit(Combobox1.Tag).Text, .....
machen

g3m1n1 5. Jun 2009 06:46

Re: Array, gleiche Werte zählen / Logikproblem.
 
Spitze ! Vielen vielen Dank !


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.
Seite 2 von 2     12   

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