![]() |
Übersetzung C -> Delphi: Switch ohne break
Ich habe in Co folgende Switch-Anweisung:
Code:
Ich kann in Delphi zwar schreiben:
switch x {
case 0: tuwas; break; case 1: tuwas; // kein break, damit mit folgendem case-Zweig weitergemacht wird case 2: tuwas; break; }
Delphi-Quellcode:
Aber dann kann man den 2'er Zweig nie alleine ansprechen, was aber auch möglich sein muss. Ich habe nur die Werte 0 bis 2.
case x of
0: begin end; 1, 2: begin end; end; Wie löse ich so was am geschicktesten? |
Re: Übersetzung C -> Delphi: Switch ohne break
Wenn ich mich nicht irre, gibt es sowas in Delphi nicht, das heißt,
du musst wohl oder übel den Code für 2 auch nochmal zu 1 kopieren ;) Wenns ganz viel Code ist, kannste es ja auch in ne funktion auslagern ;) |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
Hi,
Delphi-Quellcode:
case x of
0: begin tuwas_case0; end; 1, 2: begin tuwas_case1und2; if x = 2 then begin tuwas_case2; end; end; end; |
Re: Übersetzung C -> Delphi: Switch ohne break
Ich habe es jetzt einfach kopiert, es waren nur ein paar Zeilen. Aber danke für eure Vorschläge.
|
Re: Übersetzung C -> Delphi: Switch ohne break
hätt jetzt zu dem thema auch mal ne frage.
wir sollen einen getränkeautomaten mit case programmiern. das programm soweit hab ich fertig. lediglich eine fehlermeldung stört mich und diese bekomm ich trotz inet hilfen nicht weg. könntet ihr mir helfen?
Delphi-Quellcode:
(zur Getränke auswahl)dort sagt er mir
case edtGetr.text of
Zitat:
hoffe ihr könnt mir helfen =) |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
das weiß ich ja auch. aber wie gesagt. wenn ich edtGetr.text in zb integer umwandel gehts trotzdem nicht :D
|
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
Bzw. was "geht dann nicht"?? |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
Delphi-Quellcode:
Oder kommt eine Exception das "..." kein gültige Zahl ist?
case StrToInt(edtGetr.text) of
0: 1: end; |
Re: Übersetzung C -> Delphi: Switch ohne break
war auch nur nen beispielt..wollte eigentlich nen wort eingeben.
naja er gibt mir zb von Str nach Int aus I Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
|
Re: Übersetzung C -> Delphi: Switch ohne break
Erstell dir ein Array mit allen möglichen Wörtern, die in dem Edit vorkommen dürfen (für die du als ein Pendant in der Case-Anweisung hast).
Wenn du jetzt den Inhalt des Edits auswerten willst, dann suchst du mithilfe von ![]() Klar soweit? //Edit: Roter Kasten? Roooter Kaaasten? Hey! Ich rede mit dir! |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
hauptsächlich geht es mir ja darum,dass ich bei edtGetr.text nen Word eingeben kann..also kann ich nich den String auch irgendwie einfacher in ein Word umwandeln?ôo |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
Wenn du also in dein Edit "Hallo du" eingeben willst und mit case of behandeln.... dann vergiss es einfach ;) (oder verwende besagten Umweg) |
Re: Übersetzung C -> Delphi: Switch ohne break
warum auch einfach wenns umständlich geht -.-" wär ja schon längst fertig mit dem scheiß wenn ichs mit if else hätte machen dürfen -.-"
trotzdem danke für die hilfe |
Re: Übersetzung C -> Delphi: Switch ohne break
Vor einer halben Stunde hast du den entsprechenden Link bekommen. Stimmt, du hättest mit dem "Scheiß" schon fertig sein können... ;)
|
Re: Übersetzung C -> Delphi: Switch ohne break
der mir nicht hilft ja... ~.~
weil wie gesagt ich mach das nicht hobby mäßig und mit AnsiIndexText komm ich nicht klar..tut mir leid |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
Woran scheitert es denn? |
Re: Übersetzung C -> Delphi: Switch ohne break
hab halt ka wie ichs definiern soll, weil ich mit dem quelltext nich klar komm -.-" warum hört mir nie einer zu das das schulniveau ist? :wall:
|
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
Himmelherrgott, muss man euch Schülern denn alles vorkauen? Ihr tut ja fast so, als wäre es verboten, mal selbst das Hirn einzuschalten. Es gibt ![]() ![]() ![]() ![]() *durchschnauf'* |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
![]() selbst im Forum wird es oft genug verwendet > ![]() und da finde ich auf der ersten Suchseite ![]() |
Re: Übersetzung C -> Delphi: Switch ohne break
Zeig uns doch einfach mal Deinen Code, dann können wir evtl. erkennen, was Du vorhast und Dir Alternativen unterbreiten, bei denen der Compiler nicht meckert.
|
Re: Übersetzung C -> Delphi: Switch ohne break
Delphi-Quellcode:
viel spaß..ich geh meine kopfschmerzen auszockn....inzw wurde das eh mind. 5milliarden mal verändert...
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TForm1 = class(TForm) lblEinwurf: TLabel; lblRest: TLabel; edtEinwurf: TEdit; edtRest: TEdit; pnlAuswahl: TPanel; pnlUeberschrift: TPanel; pnlStatus: TPanel; btnEinwurf: TBitBtn; btnNeu: TBitBtn; lblGetr: TLabel; edtGetr: TEdit; lblCola: TLabel; lblFanta: TLabel; lblSprite: TLabel; lblWasser: TLabel; lblSaft: TLabel; btnGetr: TBitBtn; btnEnde: TBitBtn; procedure btnEinwurfClick(Sender: TObject); procedure btnEndeClick(Sender: TObject); procedure btnNeuClick(Sender: TObject); procedure btnGetrClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} var Einwurf:Real; procedure TForm1.btnEinwurfClick(Sender: TObject); begin Einwurf:=StrToFloat(edtEinwurf.Text); pnlStatus.Caption:=('Bitte wählen Sie ein Getränk aus, indem die die dafür vorgesehenen Zahl bei Getränk eingeben und mit OK bestätigen!'); end; procedure TForm1.btnEndeClick(Sender: TObject); begin close; end; procedure TForm1.btnNeuClick(Sender: TObject); begin edtEinwurf.Clear; edtRest.Clear; end; procedure TForm1.btnGetrClick(Sender: TObject); begin case StrToInt(edtGetr.text) of 1: begin edtRest.Text:=(einwurf-1.20); pnlStatus.Caption:='Danke für ihren Einkauf!'; end; 2: begin edtRest.Text:=(einwurf-1.20); pnlStatus.Caption:='Danke für ihren Einkauf!'; end; 3: begin edtRest.Text:=(einwurf-1.20); pnlStatus.Caption:='Danke für ihren Einkauf!'; end; 4: begin edtRest.Text:=(einwurf-1.00); pnlStatus.Caption:='Danke für ihren Einkauf!'; end; 5: begin edtRest.Text:=(einwurf-1.50); pnlStatus.Caption:='Danke für ihren Einkauf!'; end; else pnlStatus.Caption:='Sie haben zu wenig Geld eingeworfen!'; end; end; end. |
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
Zitat:
|
Re: Übersetzung C -> Delphi: Switch ohne break
Aha, der Fehler kommt nicht vom case, sondern von den Zeilen der Art
Zitat:
Delphi-Quellcode:
edtRest.Text := FloatToStr(einwurf-1.20);
|
Re: Übersetzung C -> Delphi: Switch ohne break
danke danke..sowas hab ich mir schon gedacht aber naja..
|
Re: Übersetzung C -> Delphi: Switch ohne break
Normalerweise markiert Delphi Dir aber auch die fehlerhafte Zeile, Du hast es Dir und uns also unnötig schwer gemacht :zwinker:
|
Re: Übersetzung C -> Delphi: Switch ohne break
[Senf dazugeb]
Also ich find: Dieser Thread hebt sich ab von den meisten anderen "Hausaufgaben"-Threads. Haru, du hast dir Mühe gegeben ! :thumb: Und das Listing ist für nen Neuling.... Hut ab ! Für nen Delphi-Anfänger ist halt ein "word" auf den ersten Blick auch ein "word". [/Senf dazugeb] Glückwunsch zum 1.(?) eigenen Programm ! :mrgreen: blauweiss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 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