AGB  ·  Datenschutz  ·  Impressum  







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

Debugger Krise

Ein Thema von EWeiss · begonnen am 9. Mai 2011 · letzter Beitrag vom 10. Mai 2011
 
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Debugger Krise

  Alt 10. Mai 2011, 00:45
Ich kenne nur ein Phenomän, wenn Delphi die for-Schleife optimiert und der Debugger nicht darauf achtet. Wobei lediglich die Darstellung falsch ist, intern aber alles korrekt abläuft.

Sehe ich das schon richtig, dass die Zeile unter dem if ausgeführt wird, ob wohl 62 nicht gleich 0 ist?!
Das ist mein Problem!

Noch zwei pics da kann man sehen das beide IntI und IntA den wert 1 haben.
Wenn du oben dann vergleichst wirst du sehen das er trotzdem die Note löscht obwohl vorhanden.

Was soll ich denn jetzt machen.. grrrr
Optimierung habe ich ausgeschaltet alle DCU's glöscht und komplett neu Kompiliert.
Damit ich die Values verfolgen kann.

EDIT:
Hab es mal mit Packed Record versucht.. bringt auch nix.

Hier ist die Funktion vielleicht gibt es da ein problem denke aber nicht!
Delphi-Quellcode:
procedure TMidiTracker.ImpMidiFile(MidiFile: Widestring);
var
  FileInfo: TMIDIFileInfo;
  IntI: Integer;
  IntA: Integer;

begin
  if not ReadMIDIFile(MidiFile, FileInfo) then
  begin
    MessageBox(Self.Handle, 'Not a valid MIDI file.', 'Confirm', MB_OK);
    exit;
  end;

  for IntI := 1 to FileInfo.Tracks do
  begin
    for IntA := 0 to FileInfo.NoteCounter[IntI] -1 do
    begin
      if FileInfo.MIDINotes[IntI, byte(FileInfo.MIDINotes[IntA])].NoteNo = 0 then
        Grid[IntI - 1, IntA] := -1;

      if FileInfo.MIDINotes[IntI, (byte(FileInfo.MIDINotes[IntA]))].NoteNo > 0 then
      begin
        if FileInfo.MIDINotes[IntI, (byte(FileInfo.MIDINotes[IntA]))].Length = 12 then
          Grid[(IntI - 1), IntA] := (127 - FileInfo.MIDINotes[IntI, (byte(FileInfo.MIDINotes[IntA]))].NoteNo) + basenote;

        if FileInfo.MIDINotes[IntI, byte(FileInfo.MIDINotes[IntA])].Length > 12 then
          Grid[(IntI - 1), IntA] := 1000 + (127 - FileInfo.MIDINotes[IntI, (byte(FileInfo.MIDINotes[IntA]))].NoteNo + basenote);
      end;

      InstGrid[(IntI - 1), IntA] := FileInfo.MIDINotes[IntI, (byte(FileInfo.MIDINotes[IntA]))].Instrument;
    end;
  end;
  DrawGrid(self.Handle);

end;
gruss

Geändert von EWeiss (11. Jul 2019 um 15:39 Uhr)
  Mit Zitat antworten Zitat
 


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 20:57 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