AGB  ·  Datenschutz  ·  Impressum  







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

Inkompatble Typen???

Ein Thema von Sankar · begonnen am 9. Nov 2006 · letzter Beitrag vom 9. Nov 2006
Antwort Antwort
Sankar

Registriert seit: 9. Nov 2006
Ort: Biberach
8 Beiträge
 
Delphi 2005 Architect
 
#1

Inkompatble Typen???

  Alt 9. Nov 2006, 16:47
Hallo leute,

Ich bin neu hier und habe mir gedacht das ihr mir vielleicht bei meinem kleinem Problem helfen könnt .

Delphi-Quellcode:
procedure TForm1.Btn_ausfuehrenClick(Sender: TObject);
 var monat,tage,jahr:integer;
  Jzahl:integer;
begin
  monat:=strtoint(Edt_monat.text);
  jahr:=strtoint(Edt_jahr.text);
  Edt_tage.text:=inttostr(tage);


 case monat of

  1,3,5,7,8,10,12:tage:= 31;
  4,6,9,11:tage:=30;


  end;

  If ((Jzahl mod 4) = 0) then
    begin
      case monat of
        2:tage:=29;
     end
      end

     else

      begin
       If (((Jzahl mod 100)= 0 and (Jzahl mod 400)) <> 0) then



         begin
          case monat of
           2:tage:=28;
            end
             end

      else

        begin
         case monat of
          2:tage:=29;
           end;

end;
end;
end;

end.
In dieser Zeile
     If (((Jzahl mod 100)= 0 and (Jzahl mod 400)) <> 0) then bekomm ich folgende Fehlermeldung: E2008 Inkompatible Typen

Meine Frage ist nun wo ist der Fehler? Ich find irgendwie keinen und versteh auch nicht warum er Inkompatible Typen als Fehlermeldung bringt. Schon mal Danke für eure hilfe!!

mfg Sankar
Kevin
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Inkompatble Typen???

  Alt 9. Nov 2006, 16:51
du hast einfach nur die Klammern falsch gesetzt bzw. fehlen welche. Einfach mal so klammern dass, das "and" einzeln steht
if ((Bedigung1) and (Bedingung2)) then denn bei dir steht im Moment
if (Bedingung1 and Bedingung2) then Somit wird wirkt das "and" auf die Bits der beiden Bedingungen was nicht geht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Sankar

Registriert seit: 9. Nov 2006
Ort: Biberach
8 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Inkompatble Typen???

  Alt 9. Nov 2006, 17:07
Oh stimmt ja Vielen Dank!!

Mal noch eine andere Frage.

Delphi-Quellcode:
begin
  monat:=strtoint(Edt_monat.text);
  jahr:=strtoint(Edt_jahr.text);
  Edt_tage.text:=inttostr(tage);


 case monat of

  1,3,5,7,8,10,12:tage:= 31;
  4,6,9,11:tage:=30;
  end;
Warum verlangt Delphi dort ein "end;", wenn dadurch doch die Prozedure zu früh beendet wird und somit man 2 klicks auf den Button braucht damit er das Ergebnis ausrechnet? Lass ich das "end;" weg so bringt er mir die Fehlermeldung: @ erwartet, aber If erhalten in Zeile 49.

Zeile49:
 If ((Jzahl mod 4) = 0) then zusätzlich noch folgende fehlermeldungen:
zeile77:E2026 Konstantenausdruck erwartet
zeile78:E2018 Record,Objekt oder Klassentyp erforderlich
zeile80:E2029 END, erwartet aber Dateiende gefunden

Zeile 77 und 78 steht jeweils ein "end;" und zeile 80 steht nichts dain zeile 79 "end." steht.
Werde daraus absolut nicht schlau. Hoffe du kannstm ir da weiterhelfen.

mfg Sankar
Kevin
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Inkompatble Typen???

  Alt 9. Nov 2006, 17:14
Hallo,

tja, wenn du das anständig formatieren würdest ..

Delphi-Quellcode:
procedure Test;
begin
  case bla of
    1:
      begin
      end; { 1 }  
    2:
      begin
      end; { 2 } 
  end; { case bla of }
end; { Test }
Du siehst, ein case will auch ein end haben.
Die begin/end bei den case-Zweigen schreibe ich übrigens immer,
weil oft nicht nur eine Code-Zeile reinkommt, sondern die Sache erweitert wird.

Dein Code für Tage im Monat würde ich übrigens auslagern,
den brauchst du vielleicht noch an anderen Stellen.

Delphi-Quellcode:
function DaysOfMonth (theYear, theMonth: Word): Byte;
begin
  Result:= 0;
  case theMonth of
    4,6,9,11 : Result:= 30;
    1,3,5,7,8,10,12: Result:= 31;
    2:
      begin
        if (theYear mod 4=0) and ((theYear mod 100<>0) or (theYear mod 400=0))
          then Result:= 29 { leap year }
          else Result:= 28;
      end;
  end; { case theMonth of }
end; { DaysOfMonth  }

Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Inkompatble Typen???

  Alt 9. Nov 2006, 17:14
Poste mal die ganze Funktion
[Edit: habs übersehen]
Markus Kinzler
  Mit Zitat antworten Zitat
Sankar

Registriert seit: 9. Nov 2006
Ort: Biberach
8 Beiträge
 
Delphi 2005 Architect
 
#6

Re: Inkompatble Typen???

  Alt 9. Nov 2006, 17:30
Vielen Dank!!!! Werde in Zukunft auf saubere Formatierung achten !!

mfg Sankar
Kevin
  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 03:58 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