![]() |
Case
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, math, jpeg, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; zahl:integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin zahl := StrToInt(Edit1.Text); case zahl OF 1 : zahl := Showmessage('Sehr gut'); 2 : zahl := Showmessage('Gut'); 3 : zahl := Showmessage('Befriedigend'); 4 : zahl := Showmessage('Ausreichend'); 5 : zahl := Showmessage('Mangelhaft'); 6 : zahl := Showmessage('Ungenügend'); ELSE zahl := Showmessage('Diesen Notenwert gibt es nicht.'); end; end. Läuft nicht, brauch Hilfe :( |
Re: Case
[x] Du hast ein Problem
[*] Du möchtest Hilfe und hast deshalb erklärt, was passieren sollte, und was stattdessen passiert. |
Re: Case
:glaskugel: Versuche mal, die Variable zahl innerhalb der Prozedur zu deklarieren.
Delphi-Quellcode:
Ansonsten würde uns die Fehlermeldung o.ä. sicher weiterhelfen.
procedure TForm1.Button1Click(Sender: TObject);
var zahl : Integer; begin [...] |
Re: Case
Zitat:
Was läuft nicht (möglichst genaue Fehlerbeschreibung), wie soll es laufen und was hast du schon alles versucht. |
Re: Case
Hallo,
Delphi-Quellcode:
Was hast Du den für eine Fehlermeldung. Eventuell das die Var. nicht existiert.
procedure TForm1.Button1Click(Sender: TObject);
begin zahl := StrToInt(Edit1.Text); case zahl OF 1 : zahl := Showmessage('Sehr gut'); 2 : zahl := Showmessage('Gut'); 3 : zahl := Showmessage('Befriedigend'); 4 : zahl := Showmessage('Ausreichend'); 5 : zahl := Showmessage('Mangelhaft'); 6 : zahl := Showmessage('Ungenügend'); ELSE zahl := Showmessage('Diesen Notenwert gibt es nicht.'); end; dann.. SO
Delphi-Quellcode:
[EDIT] Da war ja einer schneller, hab gar keinen roten Kasten gehabt :gruebel:
procedure TForm1.Button1Click(Sender: TObject);
var zahl : integer; begin zahl := StrToInt(Edit1.Text); ... Gruß Jens |
Re: Case
Zitat:
|
Re: Case
Delphi-Quellcode:
case Zahl of
1: ShowMessage('Sehr gut'); 2: ShowMessage('Gut'); {...} 6: ShowMessage('Ungenügend'); else ShowMessage('Diesen Notenwert gibt es nicht.'); end; Du musst jetzt mal langsam lernen, das du dir bei Problemen selber hilfst. Die IDE/Editor zeigt dir ja an wo der Fehler ist. Markiere z.B. case im Editor und drücke F1. Wenn du dir die Beispiele in der Hilfe anschaust, dann würdest du bestimmt selber draufkommen, was du falsch gemacht hast. |
Re: Case
Zitat:
|
Re: Case
Um es noch mal konkreter zu formulieren.. was macht dich daran stutzig?
Delphi-Quellcode:
procedure ShowMessage(const Msg: string);
zahl := Showmessage('Sehr gut'); |
Re: Case
Also wenn das so ist, dann müßte der Compiler eine aussagekräftige Fehlermeldung rauswerfen und diese hättest du uns gleich am Anfang geben sollen, da hierdurch alle möglichen Vermutungen gleich durch eine Lösung hätten ersetzt werden können.
|
Re: Case
Hi Zeb22,
ich hab den Eindruck du hast gar kein Interesse daran dass dein Problem gelöst wird. Hier gabs soviele Anregungen warum äusserst du dich nicht dazu? Sollte das problem gelöst sein so sags bitte. Vile Grüsse |
Re: Case
oh Sorry. Ich bin so in meinen Prüfungsvorbereitungen drin das ich vollkomm vergessen habe das ich das Problem bereits gelöst bekommen habe. Dennoch vielen Dank, es ist immer wieder schön hier zu posten und zu erleben wie engagiert die Leute hier posten.
Beim nächsten Mal werde ich mich auf jeden fall besser verhalten als bei diesen Thema. :-D |
Re: Case
Und wie hast du es gelöst?
|
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
|
Re: Case
Er wird sicher das "zahl :=" im Case-Block entfernt haben da ShowMessage keinen Rückgabewert hat und es so nicht funktionieren konnte. Ausserdem hat er ein end; vergessen gehabt.
Gruß Stormy |
Re: Case
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, math, jpeg, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; zahl:integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin zahl := StrToInt(Edit1.Text); case zahl OF 1 : Showmessage('Sehr gut'); 2 : Showmessage('Gut'); 3 : Showmessage('Befriedigend'); 4 : Showmessage('Ausreichend'); 5 : Showmessage('Mangelhaft'); 6 : Showmessage('Ungenügend'); ELSE Showmessage('Diesen Notenwert gibt es nicht.'); end; end; end. Ich hab mir das Leben schwer gemacht, im Grunde ist das ja so einfach. Die Var Zahl die ich oben Konventiert habe, sucht sich im Case dann einfach die Anweisung raus, wenn ich z.b eine 3 ins Edit Feld eingebe kommt die Showmessage Box = Befriedigend u.s.w Das wars, Vielen Dank für eure Beiträge. Ich muß mir mal angewöhnen einfach mal 10 minuten intensiv darüber nachzudenken, dann komm ich auch selber darauf. |
Re: Case
dazu kommt aber noch etwas:
- Warum ist Zahl global definiert? Wo es doch nur lokal benötigt wird - und selbst wenn du es unbedingt gloabl definieren willst ... ist dir schonmal der passende Abschnitt in der Form aufgefallen? (die Beiden mit den Kommentaren) |
Re: Case
Bei uns im Fach Techniklehre hat man uns gesagt, macht die Variablen ruhig alle Global, das schadet schon nichts :wink:
|
Re: Case
Das mag noch für kleine Prjekte zutreffen aber spätestens wenn du es mal mit umfangreicheren Code zu tun hast wirst du es vermeiden alles Global zu deklarieren!
Gruß Stormy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 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