OnInitDialog in unterdialog erstellen???
-
die else if sind im programm richtig geschrieben habs nur eben schnell selber hier reingeschrieben weil das programm auf einem anderen rechner war...
die normalen preise nimmt er warum er dann den aufschlag nicht macht weiß ich
nicht....????? deswegen habe ich den code hier gepostet eigentlich ist das
was ganz einfaches....vielleicht ne Idee warum???????
-
na weil du entweder hier schon wieder fehler gepostet hast die im programm dann doch richtig sidn oder dir die grunfdlagen fehlen denn:
UpdateData(TRUE); if (auswahl=="SALAMI") { preis1+2.00; } else if ("auswahl==SCHINKEN") { preis2+3.00; }
ist ja nun mal totaler mist. wenn du schon was drauf addieren willst dann musst du das schon so machen
UpdateData(TRUE); if (auswahl=="SALAMI") { preis1+=2.00; } else if (auswahl=="SCHINKEN") { preis2+=3.00; }
bei deiner variante wird addiert und das ergebnis weg geschmissen, also totaler bullshit
-
der code ist richtig gepostet, habe nun deine änderung vorgenommen jetzt
macht er was anderes... der erste Wert SALAMI funktioniert die nächsten
aber nicht mehr! bei Schinken addiert er wieder den Wert von SALAMI obwohl
UpdateData(TRUE); vorhanden ist scheint er den Wert nicht zu aktualisieren??????????????????????????????????????????
-
vielleicht mal mit dem Debuger schaun was in den Variablen steht könnte helfen und ich hab auch noch gerade meinen Vorherigen Post Korrigiert. du mußt das schon wie oben jetzt geändert in der else if richtig machen sonnst schlägt dein vergleich fehl, oder is das wieder so ein schreibfehler den du nur hier stehen hast? Wenn du uns immer nur Code zeigt der hier falsch gepostet is, dann kann da auch nichts werden
-
hi, dein schreibfehler hab ich bemerkt und korrigiert trotzdem das gleiche!!!!! beim debuggen egal welche pizza ausgewählt ist kommt er nie über das erste if raus wenn ich beim Debuggen auf Schinken Groß gehe:
UpdateData(TRUE); if (auswahl=="SALAMI") { preis1+=2.00; // Hier bleibt der Debugger stehen } else if (auswahl=="SCHINKEN") { preis2+=3.00; }
habs mit UpdateData hin und her probiert aber nichts funktioniert...
PS. den code habe ich gerade verglichen ist absolut identisch....
-
Was ist "auswahl" eigentlich? Mit welchem Control hast du es verbunden?
Texteingabe? Combobox?
-
auswahl ist die CString Variable der List-Box da stehen einträge drin wie Salami und Schinken usw. und wenn man dann mit dem Cursor z.B. Schinken anklickt so soll dann der Preis in einem Edit_Control ausgegeben werden nach drücken des passenden Buttons für die Größe!!!
was er auch für die normalen größen der pizzen macht aber sobald er dann addieren soll ich auf den Button Groß klicke so addiert er immer den ersten Wert von der Salami Pizza...
In meinem Beispiel kostet die normale Schinken Pizza 6.00
wenn ich auf den Button groß klicke sollte er dann 3.00 hinzu addieren
er addiert aber 2.00 hinzu warum auch immer???hab an den rechnungen haltepunkte gesetzt egal aber welche pizza ich dann
anklicke er bleibt immer bei der Salami stehenUpdateData(TRUE); if (auswahl=="SALAMI") { preis1+=2.00; // Hier bleibt der Debugger immer stehen } else if (auswahl=="SCHINKEN") { preis2+=3.00; }
-
aus dem bischen quelltext den du postet, kann ich den fehler nicht nachvollziehen, da müsste man wahrscheinlich das Projekt als ganzes betrachten. Was ich aber nicht versteh warum du Textvergleiche anstellst, anstatt mit dem Index des gewählten Eintrages zu arbeiten, das erspaart dir deine "else if" schreiberei, wenn ich bedenke, das du da 30 verschiedene Pizzen drin hast, das wird dann eine Tolle geschichte, die ganze sache kannst du dann ganz einfach durch eine switch ersetzen, was für dich erstmal der einfachere Weg währe oder warum nutzt du nicht SetItemData() und hinterlegst dort die Preise bezogen auf den Eintrag, also gibt viele bessere Möglichkeiten als das ganze mit 1000 "else if" zu schreiben.
So mal meine Gedanken zu dem Problem und wie man weiter vorgehen kann
-
die funktion switch akzeptiert doch kein double soviel ich weiß!
mit der funktion SetItemData() habe ich noch nicht gearbeitet wäre
super wenn du mir ein beispiel posten könntest damit ich es dann
auf meinem projekt anwenden kann ...werde meine resultate dann posten....
-
wieso soll die switch auch double nehmen macht doch gar keinen Sinn. Ich würde mal sagen dein Gedankenansatz zur Lösung ist falsch.
mit der switch sollst du nur Auswerten welcher Eintrag aus der List-Box gewählt wurde siehe GetSel() und wie man SetItemData() verwendet kann man hier sehen. Da die Beträge für eine Pizza nicht in in die millionen geht, kannst du ganz einfach das Komma 2 Stellen nach rechts verschieben und dann hast du keine Fließkommazahl sondern ne einfache ganzzahl was dann wieder prima bei SetData passt, wenn du jetzt weiter überlegtst, brauchst du keine auswertung mehr, weil du weisst welcher Eintrag gewählt wurde und im Data des Eintrages steht der Preis, fertig is der Bestellschein, rechnen musste dann aber trotzdem noch.