Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Case (https://www.delphipraxis.net/136840-case.html)

Zeb22 8. Jul 2009 20:48


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 :(

jfheins 8. Jul 2009 20:53

Re: Case
 
[x] Du hast ein Problem
[*] Du möchtest Hilfe und hast deshalb erklärt, was passieren sollte, und was stattdessen passiert.

DSFreak 8. Jul 2009 20:55

Re: Case
 
:glaskugel: Versuche mal, die Variable zahl innerhalb der Prozedur zu deklarieren.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  zahl : Integer;
begin
  [...]
Ansonsten würde uns die Fehlermeldung o.ä. sicher weiterhelfen.

himitsu 8. Jul 2009 20:56

Re: Case
 
Zitat:

Läuft nicht, brauch Hilfe
Das ist keine Fehlerbeschreibung, im Sinne der DP-AGB :warn:

Was läuft nicht (möglichst genaue Fehlerbeschreibung),
wie soll es laufen
und was hast du schon alles versucht.

Jens Hartmann 8. Jul 2009 20:57

Re: Case
 
Hallo,

Delphi-Quellcode:
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;
Was hast Du den für eine Fehlermeldung. Eventuell das die Var. nicht existiert.

dann.. SO

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  zahl : integer;
begin

zahl := StrToInt(Edit1.Text);

...
[EDIT] Da war ja einer schneller, hab gar keinen roten Kasten gehabt :gruebel:


Gruß Jens

DSFreak 8. Jul 2009 20:58

Re: Case
 
Zitat:

Zitat von Jens Hartmann
Was hast Du den für eine Fehlermeldung. Eventuell das die Var. nicht existiert.

Die Variable existiert ja, nur global...

Sprint 8. Jul 2009 20:59

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.

Jens Hartmann 8. Jul 2009 21:00

Re: Case
 
Zitat:

Zitat von DSFreak
DIe Variable existiert ja, nur global...

Hab ich übersehen

Cyf 8. Jul 2009 22:40

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');

himitsu 9. Jul 2009 04:52

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.

R2009 9. Jul 2009 05:05

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

Zeb22 9. Jul 2009 07:25

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

mkinzler 9. Jul 2009 08:25

Re: Case
 
Und wie hast du es gelöst?

DP-Maintenance 9. Jul 2009 09:10

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.

Stormy 9. Jul 2009 09:17

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

Zeb22 9. Jul 2009 13:14

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.

himitsu 9. Jul 2009 13:30

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)

Zeb22 9. Jul 2009 14:10

Re: Case
 
Bei uns im Fach Techniklehre hat man uns gesagt, macht die Variablen ruhig alle Global, das schadet schon nichts :wink:

Stormy 9. Jul 2009 14:26

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 00:49 Uhr.

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