Autor Beitrag
Barret
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: Mi 02.06.04 08:26 
Ich habe ne Combox und wollte den Items einen Zahlzustand geben.
Das heist ich möchte die ausgewählte Zeile den Zahlwert der Zeile zuweisen
(Beispiel: Zeile 2 = Zahlwert 2)

Hat jemand vieleicht nen Plan wie das zu realisieren ist???


Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Do 03.06.2004 um 11:39

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Mi 02.06.04 08:34 
Hallo,

in der OnClick der Combobox, kannst Du den aktuell gewählten Eintrag ermitteln:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.ComboBox1Click(Sender:TObject);
begin
  with ComboBox1 do
    Items[ItemIndex]:=IntToStr(ItemIndex+1);
end;

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Barret Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: Mi 02.06.04 11:00 
ich ab dein Beispiel in mehreren Kombinationen ausprobiert smiegel
mit der Anweisung kann ich aber nur den Inhalt der ChomboBox ändern

und dann zeigt er mir in jeder Zeile die Nummer an :P

ich will ja eigentlich nur die Nummer des Items haben um einen Wert mit einem dazugehörigen zweiten Wert, den ich aus einem Stringgrid auszulese, miteinander zu addieren.

vieleicht rall ich das blos nich ganz so wie du es meinst

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.
FaTaLGuiLLoTiNe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 5

Windows 7, Windows 8.1
Delphi XE
BeitragVerfasst: Mi 02.06.04 11:05 
Was meinst du denn mit der "Nummer des Items"? Den Index ? Den bekommst du mit ComboBox.ItemIndex.

Oder willst du den Inhalt, aber als Ganzzahl? Das erreichst du mit StrToInt(ComboBox.Items[ComboBox.ItemIndex]).

_________________
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
Barret Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: Mi 02.06.04 13:36 
mit ComboBox.ItemIndex kann ich nur den ganzen Index auslesen, da mein Prog den Wert aber als Zahl braucht bekomm ich dort immer String und Integer sind inkompatible typen

ausblenden Delphi-Quelltext
1:
StrToInt(ComboBox.Items[ComboBox.ItemIndex])					

schlägt auch fehl
dort kann ich der Zeile wohl einen Wert zuweisen aberich kan dem keine Variable geben

ich schreib mal meinen Text(natürlich ein bissel abgewandelt damit ihr die Objekte erkennen könnt):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  if (ComboBox.ItemIndex >= 2then
    begin
      StrToInt(ComboBox.Items[ComboBox.ItemIndex]) := u;
      Wert := Wert * StrToInt(Form2.StringGrid.Cells[u, 5]);
    end;

vieleicht weis einer von euch ja was

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt.

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.
FaTaLGuiLLoTiNe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 5

Windows 7, Windows 8.1
Delphi XE
BeitragVerfasst: Mi 02.06.04 13:49 
Also ich hab' ja vorher schon nicht verstanden was Du so genau vorhast aber jetzt, nachdem Du den Quelltext gepostet hast, hört's bei mir ganz auf.

Was genau möchtest Du denn nun mit dem Wert aus dem StringGrid multiplizieren? Den Index oder den Inhalt des aktuellen ComboBox - Items?

Und wo genau möchtest Du das Ergebnis dann hinhaben?

Was soll diese Zeile:
Zitat:

StrToInt(ComboBox.Items[ComboBox.ItemIndex]) := u;


Man kann StrToInt nichts zuweisen. Die Funktion ist nur dazu da, einen String in einen Integer zu wandeln. Überhaupt, was ist u?

_________________
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
Barret Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: Mi 02.06.04 13:57 
ich hab Comboboxen in denen Wörter drinstehen die aus einem StringGrid gelesen werden.
zu diesem Wort (Einheit: Milli, Pico, ...) steht in der selben zeile noch die entsprechende Zahl
(0,001; 0,000001; usw.). und ich muss jetzt den Index der ChomboBox haben um die entsprechende Zeile des StringGrid anzusprechen. da ich einen Eingabewert habe der mit der Zahl(die sich hinter dem ComboBox eintrag verbirgt) die im StringGrid steht, multipliziert werden muss.

mit Case-Anweisungen kann ich das nicht realisieren, da man später das StringGrid noch editieren kann

u ist ein Integer der die Zeile des StringGrid ansprechen soll

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.
FaTaLGuiLLoTiNe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 5

Windows 7, Windows 8.1
Delphi XE
BeitragVerfasst: Mi 02.06.04 14:06 
Meinst Du sowas?

ausblenden Delphi-Quelltext
1:
Ergebnis := Eingabewert * StrToFloat(StringGrid.Cells[Spaltennr, ComboBox.ItemIndex]);					


Wobei Spaltennr halt die Spalte in Deinem StringGrid wäre, in dem die zu multiplizierenden Werte stehen.

_________________
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
Barret Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: Mi 02.06.04 14:27 
also jetzt hab ich das so gemacht:
ausblenden Quelltext
1:
2:
3:
4:
if (CSpannung.ItemIndex >= 2) then
  begin
    Spannung := Spannung * StrToFloat(FKondensatorVoreinheiten.SGVoreinheiten.Cells[5, CSpannung.ItemIndex]);
  end;

CSpannung = ComboBox
Spannung = Eingabewert
FKondensatorVoreinheiten = Form
SGVoreinheiten = StringGrid

weil er das nur ausführen soll wenn wenigstens der zweite Index angesprochen wird

ich bekomm aber noch eine Debugger Exception Notiflication

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.
Barret Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: Mi 02.06.04 15:17 
funtzt jetzt alles *freu
ich hab verkackt und die Spalte zu groß gesetzt *lol
is halt immer son ding mit nichtvorhandennen Spalten

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.