![]() |
Unklare Syntax
Hallo,
das habe ich gerade gesehen ist für den Kompiler anscheinend 2 Deutig und er geht beidesmal in den Else Pfad:
Delphi-Quellcode:
Denn er liest es anscheinend auch mal so:
if form1.CheckPrimeArray.Checked then
if primearray.Lauf=0 then primearray.Lauf:=3 else primearray.Lauf:=0;
Delphi-Quellcode:
Ist das ein Fehler von mir, oder ist das ein wirklich uneindeutiges Beispiel einer schlechten Pascal-Syntax.
if form1.CheckPrimeArray.Checked then
if primearray.Lauf=0 then primearray.Lauf:=3 else primearray.Lauf:=0; Wie kriegt man das behoben? |
Re: Unklare Syntax
Naja, vielleicht ab und zu auch mal richtig ausschlafen?!? :-)
|
Re: Unklare Syntax
Hi,
Delphi-Quellcode:
Woher soll der Compiler auch wissen, was du meinst?
if form1.CheckPrimeArray.Checked then
if primearray.Lauf=0 then primearray.Lauf:=3 else primearray.Lauf:=0; Am besten immer Begin und End hinzufügen:
Delphi-Quellcode:
if form1.CheckPrimeArray.Checked then
begin if primearray.Lauf=0 then begin primearray.Lauf:=3 end; end else begin primearray.Lauf:=0; end; |
Re: Unklare Syntax
So sollte Delphi erkennen (macht es bei mir auch immer),
Delphi-Quellcode:
denn das ELSE gehört immer zum letzten Abfrage-Block.
if form1.CheckPrimeArray.Checked then
if primearray.Lauf=0 then primearray.Lauf:=3 else primearray.Lauf:=0; Das Einzige, was ich mir noch vorstellen könnte wäre das,
Code:
aber hierbei sollte man eh besser ein BEGIN-END einfügen.
if form1.CheckPrimeArray.Checked then
if primearray.Lauf=0 then primearray.Lauf:=3[b][color=#ff0000];[/color][/b] else primearray.Lauf:=0;
Delphi-Quellcode:
if form1.CheckPrimeArray.Checked then
begin if primearray.Lauf=0 then primearray.Lauf:=3; end else primearray.Lauf:=0; |
Re: Unklare Syntax
Zitat:
Ja beginn und end habe ich eingefügt, und es klappt. Zitat:
Delphi-Quellcode:
Das würde das komische Verhalten erklären.
if primearray.Lauf=0 then
Danke Tschüss |
Re: Unklare Syntax
Zitat:
|
Re: Unklare Syntax
Zitat:
|
Re: Unklare Syntax
Zitat:
|
Re: Unklare Syntax
Zitat:
|
Re: Unklare Syntax
Ich möchte euch bitten zurück zum thema zu kommen und nicht unsachlich zu werden. Ich möchte nur ungern den Thread wegen OT schließen..
|
Re: Unklare Syntax
Delphi-Quellcode:
Das funktioniert nicht - da meckert der Delphi-Compiler dann!
primearray.Lauf:=3;
else Den selben "Fehler" habe ich letztens auch gemacht! Mit dem Einrücken des Codes ist es für dich sicherlich klar, wie es funktionieren sollte, aber der Compiler weiß es ja nicht. Hab noch keinen gesehen, der auf das Codeeinrücken reagiert - wäre wohl auch sehr schlecht möglich :thumb: |
Re: Unklare Syntax
Hi,
Du kannst das Problem auch folgendermaßen lösen:
Delphi-Quellcode:
cu
if form1.CheckPrimeArray.Checked then
if primearray.Lauf=0 then primearray.Lauf:=3 else else primearray.Lauf:=0; |
Re: Unklare Syntax
Zitat:
![]() |
Re: Unklare Syntax
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 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