Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Gibt es Hexen? (https://www.delphipraxis.net/185090-gibt-es-hexen.html)

idefix2 14. Mai 2015 13:59

Gibt es Hexen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie kommt das Programm da in den then-Zweig hinein?
Das gibt es doch überhaupt nicht :?:

Habt ihr eine Idee, wo ich da nach dem Fehler suchen könnte?

idefix2 14. Mai 2015 14:16

AW: Gibt es Hexen?
 
Problem gelöst - Das Verhalten des Delphi Debuggers ist da ein ganz klein wenig verwirrend: er führt das, was im then Zweig steht, gar nicht aus, tut aber so, als wäre das, was im THEN Zweig steht, die aktuelle Anweisung - der Programmfehler war an einer anderen Stelle.

Popov 14. Mai 2015 14:21

AW: Gibt es Hexen?
 
Mach es so, ist besser:
Delphi-Quellcode:
  if ... then
  begin
    if ... then
      exit;
  end;
Alles andere sind Modeerscheinungen, beim debugen rächt sich das.

Dejan Vu 14. Mai 2015 15:36

AW: Gibt es Hexen?
 
Oder einfach so (das ist sogar nicht nur besser, sondern besserer!):
Delphi-Quellcode:
if ... then
  if ... then
Alles andere sind lächerliche Versuche der Tastaturmafia, uns zu überflüssigem Tippen zu verleiten, um den Tastaturumsatz anzukurbeln.

Mavarik 14. Mai 2015 16:21

AW: Gibt es Hexen?
 
Auch wieder ein super Thread-Titel

Popov 14. Mai 2015 16:28

AW: Gibt es Hexen?
 
Damit glaubt jeder wieder an Hexen:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  TTimer(Sender).Interval := 10;
  Left := Left + (Random(5) - 2);
  Top := Top + (Random(5) - 2);
end;

idefix2 14. Mai 2015 21:38

AW: Gibt es Hexen?
 
@Popov
Es ist völlig egal, wie du es schreibst, der Debugger springt immer in die Zeile mit dem Exit, auch wenn die Bedingung nicht erfüllt ist. Ich habe jetzt extra alle Zeilenumbruch-Varianten ausprobiert.


@Dejan Vu
Wenn das erste if einen else Zweig hat und das zweite nicht, geht es ohne begin ... end gar nicht.

himitsu 14. Mai 2015 22:10

AW: Gibt es Hexen?
 
Man könnte ja mal im Debugger schauen, was für ein Code an der Stelle liegt. :stupid:

Popov 14. Mai 2015 22:55

AW: Gibt es Hexen?
 
Zitat:

Zitat von idefix2 (Beitrag 1301600)
@Popov
Es ist völlig egal, wie du es schreibst, der Debugger springt immer in die Zeile mit dem Exit, auch wenn die Bedingung nicht erfüllt ist. Ich habe jetzt extra alle Zeilenumbruch-Varianten ausprobiert.

Ob es hier so ist oder nicht, ist irrelevant. Sowas rächt sich gelegentlich.

Was den Vergleich angeht, so konnte ich dein Problem ein mal reproduzieren. Ich hab es genauso wie du geschrieben, nur wusste ich nicht ob er nun in der then oder exit Ziele ist. Also habe ich die Ausführung noch mal unterbrochen, es auf zwei Zeilen verteilt und wieder gestartet. Das zweite mal hat es nicht geklappt. Selbst nachdem ich es wieder rückgängig gemacht habe. Ich hab es dann noch ein Dutzend mal gestartet, es ging jedes mal durch.

Dejan Vu 15. Mai 2015 06:12

AW: Gibt es Hexen?
 
Zitat:

Zitat von idefix2 (Beitrag 1301600)
@Dejan Vu
Wenn das erste if einen else Zweig hat und das zweite nicht, geht es ohne begin ... end gar nicht.

Klar geht das
Delphi-Quellcode:
if foo then
  if bar then
    doBar()
  else
else
  doFoo();
Nicht, damit das hier zu einem Glaubenskrieg für/wider überflüssiger Umschließung mit begin/end führt. Was für den Einzelnen besser lesbar ist, steht auf einem anderen Blatt. Nur ein 'begin/end' für eine Zeile einzuführen halte ich und ca. 50% der Entwickler für überflüssig und die anderen 50% nicht. Beide haben ihre Gründe. Man gewöhnt sich an beide Lesarten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Seite 1 von 3  1 23      

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