AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ordinaltyp bei case of

Ein Thema von manialf · begonnen am 23. Sep 2006 · letzter Beitrag vom 24. Sep 2006
Antwort Antwort
manialf

Registriert seit: 23. Sep 2006
3 Beiträge
 
#1

Ordinaltyp bei case of

  Alt 23. Sep 2006, 19:28
Hallo,

ich habe jetzt seit 2 Wochen Info und wir sollen eine Ampel programmieren. ich bin jetzt soweit:
Problem: In der zeile case zustand of kommt die Meldung Ordinaltyp benötigt. keine Ahnung wie das geht. Hoffe auf eure Hilfe...

Delphi-Quellcode:
implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
halt;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

w:= 390;
h:= 510;

setbounds((screen.Width-w)div 2,(screen.Height-h)div 2,w,h)

end;

procedure TForm1.Button1Click(Sender: TObject);
begin

case 'zustandof

1: begin
   Sh_red.Brush.Color :=clRed;
   Sh_yellow.Brush.Color :=clWhite;
   Sh_lime.Brush.Color:=clWhite;
    end;

2: begin
   Sh_red.Brush.Color :=clRed;
   Sh_yellow.Brush.Color :=clYellow;
   Sh_lime.Brush.Color:=clWhite;
    end;

3: begin
   Sh_red.Brush.Color :=clWhite;
   Sh_yellow.Brush.Color :=clWhite;
   Sh_lime.Brush.Color:=clLime;
    end;

4: begin
   Sh_red.Brush.Color :=clWhite;
   Sh_yellow.Brush.Color :=clYellow;
   Sh_lime.Brush.Color:=clLime;
    end;

end;

if zustand >4 then zustand := 1;

end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Ordinaltyp bei case of

  Alt 23. Sep 2006, 19:31
Hallo,

ich vermute das "zustand" eine Integer-Variable ist.

durch die zwei anführungszeichen machst du einen String

richtig muss es heissen:
case zustand of
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#3

Re: Ordinaltyp bei case of

  Alt 23. Sep 2006, 19:32
Hallo, nimm die '' raus, dann klappts, Case muß Ordinal sein, kein String.

Edit: Ups, da war einer schneller
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#4

Re: Ordinaltyp bei case of

  Alt 23. Sep 2006, 19:33
Nach case muss eine Integervariable oder eine Charvariable übergeben werden. Oder wie willst du sonst prüfen?
Mach also einfach die '' von zustand weg.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Ordinaltyp bei case of

  Alt 23. Sep 2006, 19:45
Zitat von Balu der Bär:
Nach case muss eine Integervariable oder eine Charvariable übergeben werden.
Oder ein Enumeration Type, Word, etc. Schreib doch lieber gleich Ordinaltyp wie der Compiler...
  Mit Zitat antworten Zitat
manialf

Registriert seit: 23. Sep 2006
3 Beiträge
 
#6

Re: Ordinaltyp bei case of

  Alt 24. Sep 2006, 00:52
Vielen vielen Dank für die Hilfe.

Ich habe das ganze geändert, aber wenn ich das Projekt starte und auf Button 1 klickt passiert überhaupt nichts.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Ordinaltyp bei case of

  Alt 24. Sep 2006, 00:55
Hi

Zitat von manialf:
Ich habe das ganze geändert, aber wenn ich das Projekt starte und auf Button 1 klickt passiert überhaupt nichts.
Kann es sein, dass der Fall Eintritt, bei dem zustand > 4 ist? Da du diesen dann nach der case-Anweisung auf 1 setzt, passiert natürlich nichts. Schreibe also das hier vor die case-Anweisung:

if zustand > 4 then zustand := 1;
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Ordinaltyp bei case of

  Alt 24. Sep 2006, 00:56
Wird zustand überhaupt irgendwo zugewiesen?
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Ordinaltyp bei case of

  Alt 24. Sep 2006, 09:33
Du solltest im OnCreate der Form der Variable "zustand" einen bestimmten Wert zu weisen, z. B. 1

Die Abfrage:
if zustand >4 then zustand := 1; wird dir nicht viel bringen, da deine Ampel nach Zustand = 4 wieder auf Zustand = 1 springen muss.
Bei deiner If-Abfrage würd dies erst bei Zustand = 5 oder höher passieren.

du solltest:
if zustand = 4 then zustand := 1; schreiben.

Wenn du diese Hinweise befolgst, dann dürf deine Ampel auch ampeln
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
manialf

Registriert seit: 23. Sep 2006
3 Beiträge
 
#10

Re: Ordinaltyp bei case of

  Alt 24. Sep 2006, 12:53
Wow . das ist echt klasse hier So viele schnelle Hilfe. Vielen Danke ich probiers aus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 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