Как я могу заставить приложение записывать отладочный текст в окно журнала событий в IDE Delphi (Borland Developer Studio 2006)?
Как изменить цвет текста?





OutputDebugString ('Привет, мир');
Я думаю, вам, возможно, придется добавить Windows в свой список «применений». Не уверен на 100% в этом ...
Насколько мне известно, цвет текста не может быть изменен: это особенность среды IDE Delphi, которая добавляет в это окно дополнительные сообщения для запуска / остановки потока, загрузки / выгрузки DLL с их собственным определенным цветом.
Да, вы можете использовать OutputDebugString.
Если вы хотите получить более мощные функции для контроля и управления выводом отладки, такие как фильтр выделения, вам следует использовать DebugView.
Примечание. DebugView не может записывать журнал отладки при запуске приложения в среде IDE Delphi.
procedure Write2EventLog(Source,Msg: string);
var h: THandle;
ss: array [0..0] of pchar;
begin
ss[0] := pchar(Msg);
h := RegisterEventSource(nil, // uses local computer
pchar(Source)); // source name
if h <> 0 then
ReportEvent(h, // event log handle
EVENTLOG_ERROR_TYPE, // event type
0, // category zero
0, // event identifier
nil, // no user security identifier
1, // one substitution string
0, // no data
@ss, // pointer to string array
nil); // pointer to data
DeregisterEventSource(h);
end;
Окно «Журнал событий» IDE Delphi не связано с журналом событий Windows. Я знаю, что сбивает с толку!
Непонятно, правильно, но все же полезно, поскольку поиск Google «записывает ошибки delphi в журнал событий Windows» возвращает это как первый результат поиска.
Помимо того, что было сказано (например, OutputDebugString и использование DebugView вместо встроенного средства просмотра журнала), вы можете изменить цвет сообщений в представлении журнала через Параметры. Самый простой способ попасть туда - щелкнуть правой кнопкой мыши на панели журнала и выбрать «Свойства» в контекстном меню. На открывшейся вкладке вы можете установить цвет, который будет использоваться для «Выходных строк отладки» из раздела «Цвета». Очевидно, это изменит цвет всех сообщений, отправляемых через OutputDebugString - это не позволит индивидуальную окраску. Для этого лучше использовать фильтры DebugView.
Используя dbgview, можно иметь цвета, фильтры и т. д.