Einzelnen Beitrag anzeigen

Benutzerbild von Lemmy1
Lemmy1

Registriert seit: 28. Nov 2004
Ort: Ismaning
184 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [BDS 2006] Debugger Visualizer

  Alt 31. Okt 2006, 11:35
Zitat von Alfi001:
Zitat von Lemmy1:
a) so etwas finden auch andere praktisch
Ich finde gerade das bessere darstellen von Stringlisten extrem praktisch!

Läuft das auch unter D2005? Der Screenshot zeigt ja D2006 (oder ist es Turbo)?

Sehr sinnvoll wäre auch, wenn man die Stringliste noch in eine Datei speichern könnte.

Ciao,
Ralf
Ausprobiert habe ich es nicht unter Delphi 2005. Die OpenTools API ist bekanntermaßen der fehlerbehaftetste (schreibt man das so?) Teil von Delphi, somit müsste das einfach mal jemand ausprobieren.

Mit dem Speichern in eine Datei hast Du sicher recht. Dazu werde ich mir mal was überlegen. Außerdem möchte ich ein besseres Control zur Darstellung verwenden (mit Sortierung, Darstellung vom angehängten Objekt etc)

Ich bin auch noch am überlegen, welche Datentypen man sonst noch direkt unterstützen könnte. Dazu fällt mir ein:
  • TStringList (gibt's bereits rudimentär)
  • TObjectList (wobei man dann auf ein Objekt doppelklicken könnte...dadurch würde dies im Visualizer selbst erscheinen)
  • string (gibt's auch schon und hat den Vorteil, dass es multi-line kann). Wäre vielleicht auch noch praktisch, wenn man den String XML interpretiert darstellen könnte
  • DataSet?
  • ADO RecordSet?

Hat jemand sonst noch gute Ideen dazu?


Ein weiteres Problem ist, dass ich nur die "Evaluate" Funktion verwenden kann, um an die Daten zu kommen. Das mache im Moment so:
  • Eingegeben Ausdruck erst einmal direkt auswerten. Bei Fehler --> sofort abbrechen
  • Ausdruck einklammern und ClassName anhängen. '(' + Expression + ').ClassName'. Bei Fehler --> kein Objekt --> String direkt anzeigen. Wenn kein Fehler --> Objektklasse prüfen (bisher wird nur TStringList erkannt)
  • Für TStringList: Via '(' + Expression + ').Count' erhalte ich die Länge und via '(' + Expression + ')[XX]' erhalte ich die Elemente.

Das funktioniert prinzipiell auch ganz gut, hat aber ein großes Performanceproblem. Ich hab auch mal "CommaText" ausprobiert, aber das wird leider rausoptimiert wenn man es nicht verwendet...auch blöd Mir ist aber aufgefallen, dass man via "Evaluate" auch an private Variablen ran kommt (und sowas kann ja nicht rausoptimiert werden). So könnte man an alle Elemente auf einmal kommen und sollte keine Performanceprobleme mehr haben (theoretisch ) Werd damit noch ein Bisschen rumspielen, weil die aktuelle Performance schrottig ist.

Hat sowas schon einmal jemand gemacht? Vielleicht übersehe ich ja eine simple Sache...?
Daniel
www.nemu.com - The N64 Emulator
  Mit Zitat antworten Zitat