Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Debugging (https://www.delphipraxis.net/73928-debugging.html)

xZise 25. Jul 2006 19:38


Debugging
 
Ich habe die Delphi 7 PE und würde gerne ein Code debuggen, aber wenn ich F9 / auf den Pfeil drücke, dann zeigt er den Breakpoint so an, als würde er dort nie hinkommen, allerdings müsste er es... Gibt es eine mgölichkeit Debzugging in einer Datei zu verbieten, und wenn ja, wie kann ich das ausstellen, oder liegt es an einen Prozess der vielleicht noch läuft?

SirThornberry 25. Jul 2006 20:03

Re: Debugging
 
versuch mal ob es geht wenn du die Datei dem Projekt hinzufügst. Ansonsten dürfte der Effekt nur auftreten wenn du einen Haltepunkt in einer Funktion hast die nie aufgerufen wird.

faux 25. Jul 2006 20:10

Re: Debugging
 
Wird der Brakepoint als gültig angezeigt?

xZise 25. Jul 2006 20:18

Re: Debugging
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von SirThornberry
versuch mal ob es geht wenn du die Datei dem Projekt hinzufügst.

Sie ist schon in einem Projekt

Zitat:

Zitat von SirThornberry
Ansonsten dürfte der Effekt nur auftreten wenn du einen Haltepunkt in einer Funktion hast die nie aufgerufen wird.

>>> siehe Screenshot


Zitat:

Zitat von faux
Wird der Brakepoint als gültig angezeigt?

Ja & Nein
- Breakpoint setzten ==== gültig
- F9 (Start) ==== ungültig

Oder:

- F9 (Start) ==== noch nicht gesetzt
- BP setzen ==== ungültig

Khabarakh 25. Jul 2006 20:22

Re: Debugging
 
Wird die Variable sb vielleicht wegoptimiert?

faux 25. Jul 2006 20:25

Re: Debugging
 
Zitat:

Zitat von xZise
Zitat:

Zitat von faux
Wird der Brakepoint als gültig angezeigt?

Ja & Nein
- Breakpoint setzten ==== gültig
- F9 (Start) ==== ungültig

Oder:

- F9 (Start) ==== noch nicht gesetzt
- BP setzen ==== ungültig

Also nein, denn der Compiler überprüft erst beim Starten ob ein Haltepunkt gültig ist.
btw: TSpeedButton(Sender)??? Meinst du sb := TSpeedButton.Create(Sender); oder so?!
:wall: Das nennt man Casting...

Gib mal die ganze Prozedur als Code, vielleicht ist das alles begründbar. ;)

Grüße
Faux

xZise 25. Jul 2006 20:27

Re: Debugging
 
Das ist der Code von DOND ;)
Es hängt übrigends nicht von der Prozedur & Zeile ab ;)

Delphi-Quellcode:
procedure TForm1.SpeedButton52Click(Sender: TObject);
var
  sb: TSpeedButton;
  i: Integer;
  sum, f: Extended;
begin
  PlaySoundNew('SND_CLICK', SND_RESOURCE or SND_ASYNC);
  sb:=TSpeedButton(Sender);
  sb.Enabled:=False;
  if Label2.Caption='-' then begin
    Label2.Caption:=IntToStr(sb.Tag);
    KofferWert := Money[MoneyBag[sb.Tag]];
    GroupBox8.Visible:=False;
    GroupBox7.Visible:=True;
  end else begin
    TSpeedButton(FindComponent('SpeedButton'+IntToStr(MoneyBag[sb.Tag]))).Enabled:=False;
    Label7.Caption := FloatToStr(Money[MoneyBag[sb.Tag]]) + ' €';
    Label7.Visible := true;
    Application.ProcessMessages;
    sleep(500);
    Label7.Visible := false;
    if MoneyBag[sb.Tag]=26 then
      PlaySoundNew('SND_ARGH', SND_RESOURCE or SND_SYNC);
    if BagCount = 1 then begin
      if not DummyRound then begin
        Form2.NewScore := KofferWert;
        Form2.ShowModal;
      end;
      GroupBox7.Visible:=False;
      GroupBox5.Visible:=True;
    end else
      if not DummyRound and ((BagCount=20) or (BagCount=15) or (BagCount=11) or (BagCount=8) or (BagCount<=6)) then begin
        GroupBox4.Enabled:=False;
        GroupBox7.Visible:=False;
        GroupBox6.Visible:=True;
        PlaySoundNew('SND_RINGIN', SND_RESOURCE or SND_ASYNC);
        sum:=0;
        for i:=1 to 26 do
          if TSpeedButton(FindComponent('SpeedButton'+IntToStr(i))).Enabled then
            sum := sum + MONEY[i];

        f:=1;
        case BagCount of
          20: f:=6.0;
          15: f:=4.5;
          11: f:=3.5;
           8: f:=2.5;
           6: f:=2.0;
           5: f:=1.8;
           4: f:=1.6;
           3: f:=1.3;
        end;
        BankAngebot := Round(sum / (BagCount*f));
//        if BankAngebot > 100 then
//          BankAngebot := BankAngebot div 100 * 100;
        Label1.Caption := FloatToStr(BankAngebot);
      end;
  end;
end;

faux 25. Jul 2006 20:32

Re: Debugging
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich kann in Zeile 8 einen haltepunkt setzten und er wird auch ausgeführt, also der Debugger hält an.

Grüße
Faux

xZise 25. Jul 2006 20:34

Re: Debugging
 
Funktioniert das auch mit dem ganzen Code (siehe Link oben.) ?

faux 25. Jul 2006 20:36

Re: Debugging
 
Zitat:

Zitat von xZise
Funktioniert das auch mit dem ganzen Code (siehe Link oben.) ?

Nein. :lol:

SirThornberry 25. Jul 2006 20:40

Re: Debugging
 
im Projekt gehts nicht weil die Debuginformationen in den Projektoptionen nicht aktiviert sind.

faux 25. Jul 2006 20:42

Re: Debugging
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von SirThornberry
im Projekt gehts nicht weil die Debuginformationen in den Projektoptionen nicht aktiviert sind.

Jup, bin ich auch gerade draufgekommen.

Grüße
Faux

xZise 25. Jul 2006 20:48

Re: Debugging
 
Liste der Anhänge anzeigen (Anzahl: 1)
Problem ist nur, dass da nichts anderes markiert ist, als normalerweise!

SirThornberry 25. Jul 2006 20:51

Re: Debugging
 
Hä? normalerweise ist ÜBERALL etwas ausgewählt AUßER beim DCU-Debugging.
Auf deinem Screenshot sowie auf dem vom Faux ist aber gar nix gewählt. Du musst wie ich bereits geschrieben habe die DebugInformationen anhaken. Und wenn du es wie üblich willst musst du ALLES AUßER DCU-Debugging anhaken.

faux 25. Jul 2006 20:53

Re: Debugging
 
Zitat:

Zitat von SirThornberry
Hä? normalerweise ist ÜBERALL etwas ausgewählt AUßER beim DCU-Debugging.
Auf deinem Screenshot sowie auf dem vom Fax ist aber gar nix gewählt. Du musst wie ich bereits geschrieben habe die DebugInformationen anhaken. Und wenn du es wie üblich willst musst du ALLES AUßer DCU-Debugging anhaken.

Hilft seltsamerweise auch nichts...

Grüße
Faux

SirThornberry 25. Jul 2006 20:56

Re: Debugging
 
bei mir schon. Hast du eventuell nur kompliert und vergessen ein Build auszführen? Du musst das Projekt neu bauen lassen. Beim compilieren werden doch sonst nur die bereits "gebauten" Elemente ohne Debuginformationen zusammengesetzt. Durch das "bauen" werden die DCU's neu erzeugt mit entsprechenden Projektoptionen.

faux 25. Jul 2006 21:00

Re: Debugging
 
Jup jetzt gehts. ;)

btw: Wie meinst du Build neu ausführen? Ich habe einfach die dcu-Files gelöscht...

Grüße
Faux

SirThornberry 25. Jul 2006 21:03

Re: Debugging
 
bei der englischen Version gibt es unter dem Menüpunkt "Project" den Eintrag "Compile PROJEKTNAME" und "Build PROJEKTNAME". Und dort musst du eben das "Build" wählen damit die DCU's neu erzeugt werden.

faux 25. Jul 2006 21:07

Re: Debugging
 
Zitat:

Zitat von SirThornberry
bei der englischen Version gibt es unter dem Menüpunkt "Project" den Eintrag "Compile PROJEKTNAME" und "Build PROJEKTNAME". Und dort musst du eben das "Build" wählen damit die DCU's neu erzeugt werden.

Hätte ich gemacht, es hat sich aber nichts getan. :?

Grüße
Faux

xZise 25. Jul 2006 21:08

Re: Debugging
 
Danke ;) Es funktioniert ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 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