AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Gibt es Hexen?

Ein Thema von idefix2 · begonnen am 14. Mai 2015 · letzter Beitrag vom 15. Mai 2015
Antwort Antwort
Seite 1 von 3  1 23   
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Gibt es Hexen?

  Alt 14. Mai 2015, 14:59
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?
Miniaturansicht angehängter Grafiken
hexen.jpg  
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 15:16
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.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 15:21
Mach es so, ist besser:
Delphi-Quellcode:
  if ... then
  begin
    if ... then
      exit;
  end;
Alles andere sind Modeerscheinungen, beim debugen rächt sich das.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 16:36
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.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.123 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 17:21
Auch wieder ein super Thread-Titel
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 17:28
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;
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#7

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 22:38
@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.

Geändert von idefix2 (14. Mai 2015 um 22:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.011 Beiträge
 
Delphi 12 Athens
 
#8

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 23:10
Man könnte ja mal im Debugger schauen, was für ein Code an der Stelle liegt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: Gibt es Hexen?

  Alt 14. Mai 2015, 23:55
@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.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: Gibt es Hexen?

  Alt 15. Mai 2015, 07:12
@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.

Geändert von Dejan Vu (15. Mai 2015 um 07:14 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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