![]() |
[FMX] Debugausgaben
Moin,
Wie erzeugt man in Feueraffen-Anwendungen Debugausgaben? OutputDebugString gibts da ja scheinbar nicht. |
AW: [FMX] Debugausgaben
Mit DebugPrint(), das funktioniert wie die Format-Funktion.
|
AW: [FMX] Debugausgaben
Ahh, Danke :thumb:
|
AW: [FMX] Debugausgaben
Ich bekomm da keine Ausgabe ins Ereignisprotokoll. :?
Delphi-Quellcode:
oder
DebugPrint('text1', 'text2')
Delphi-Quellcode:
müsste doch funktionieren?
DebugPrint('text', '%d', [i])
Delphi-Quellcode:
.
uses DebugUtils
Muss man evtl. noch was einstellen? |
AW: [FMX] Debugausgaben
Was meinst Du mit Ereignisprotokoll? Doch nicht das von der Delphi IDE?
|
AW: [FMX] Debugausgaben
Ja, von der IDE. Da wo sonst OutputDebugString landet.
|
AW: [FMX] Debugausgaben
So eine Redirection funktioniert m.E. nicht, Du musst Dir das in der Mac Console ansehen.
|
AW: [FMX] Debugausgaben
Wieso nicht?
Genauso wie OutputDebugString in Windows abgefangen und dort angezeigt wird, könnte man es doch vermutlich auch im Mac wegfangen und der dort installierte Debugserver schickt es dann zur DelphiIDE. Mangels Mac hatte ich es nicht ausproiert, aber Debuggen sollte man die Macanwendung doch auch können? Wäre ja blöde, wenn man das Teil vom Windows aus debuggen kann, aber für diese "Debugausgaben" dann doch direkt in den Mac gucken muß. |
AW: [FMX] Debugausgaben
Das wäre toll. Das müsste dann PAServer und Client machen. Leider sagt die "Dokumentation" nichts darüber. Obwohl über TCP bestimmt leicht zu realisieren.
|
AW: [FMX] Debugausgaben
Hmm. Auf dem Mac ist auch nix zu sehen. (evtl will man das Prog ja gar nicht auf dem Mac)
Hängt das evtl mit den "Conditions" zusammen, also der erste Parameter von DebugPrint? Das steht in DebugUtils: /// Conditionally outputs a formatted string to the debugging output. The condition /// is controlled by the environment variable <code>DEBUG_CLASS</code>. |
AW: [FMX] Debugausgaben
Keine Idee was man bei "Cond"(1.Parameter) übergibt?
|
AW: [FMX] Debugausgaben
Wahrscheinlich die Bedingung wann die Ausgabe angezeigt werden soll. Also wenn du "true" schreibst sollte es immer ausgegeben werden.
(Soweit meine Theorie) |
AW: [FMX] Debugausgaben
Nee, leider nicht.
Das müssen irgendwelche strings sein die in DEBUG_CLASS definiert sind. Allerding finde ich diese Umgebungsvariable nicht. |
AW: [FMX] Debugausgaben
Die setzt Du in der .plist Deiner Anwendung oder in ~/.MacOSX/environment.plist (Reboot). Ein * kann als Wildcard verwendet werden.
Code:
<key>LSEnvironment</key>
<dict> <key>DEBUG_CLASS</key> <string>MeinString1:MeinString2</string> </dict> |
AW: [FMX] Debugausgaben
Zitat:
~/.MacOSX/environment.plist find ich nicht. Ich brauch das aber auf Windows. Hätte erwartet dass man das in den Dephi-Projekteinstellungen macht.:roll: |
AW: [FMX] Debugausgaben
Zitat:
Zitat:
Eine Kurzbeschreibung findet sich in ![]() Allerdings wird mit XCode das überall beschriebene PropertyListEditor seit einiger Zeit scheinbar nicht mehr mitinstalliert. |
AW: [FMX] Debugausgaben
Zitat:
Für Mac: Ich nehme an dass du mit "plist der Anwendung" diese info.plist in der Anwendung meinst(Paketinhalt). Die wird jedesmal neu erzeugt, also müssten das doch Projekteinstellungen sein.(es ist keine IOS-App) Sowas global zu setzen macht für mich iregendwie keinen Sinn. |
AW: [FMX] Debugausgaben
DEBUG_CLASS ist eine ganz normale Environment-Variable. Allerdings musst Du ein anderes Trennzeichen als unter X verwenden, ich denke Semikolon anstelle von Doppelpunkt.
|
AW: [FMX] Debugausgaben
Kein Wunder dass das auf meinem Mac nicht funktioniert:
![]() Unter Windows ists auch nutzlos da WriteLn verwendet wird. :roll: |
AW: [FMX] Debugausgaben
Hast Du auch 10.7 Lion? Lustisch, gell.
|
AW: [FMX] Debugausgaben
Ja, 10.7 :|
Hab mir das jetzt selbst gebastelt, hoffe das geht auch bei IOS. Den Kram mit Umgebungsvariablen brauch ich nicht.
Delphi-Quellcode:
unit Debug;
interface uses {$IFDEF MSWINDOWS} Winapi.Windows, {$ENDIF} System.SysUtils; procedure DebugPrint(Text: string); overload; procedure DebugPrint(Fmt: string; const Args: array of const); overload; implementation procedure DebugPrint(Text: string); begin {$IFDEF DEBUG} {$IFDEF MSWINDOWS} OutputDebugString(PChar(Text)); {$ENDIF} {$IFDEF MACOS} WriteLn(Text); {$ENDIF} {$ENDIF DEBUG} end; procedure DebugPrint(Fmt: string; const Args: array of const); begin {$IFDEF DEBUG} {$IFDEF MSWINDOWS} OutputDebugString(PChar(Format(Fmt, Args))); {$ENDIF} {$IFDEF MACOS} Writeln(Format(Fmt, Args)); {$ENDIF} {$ENDIF DEBUG} end; end. |
AW: [FMX] Debugausgaben
Bei IOS musst Du dann wohl NSLog(NSString()) verwenden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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