Страница 1 из 1

Вывод лога

Добавлено: 04 фев 2010, 19:25
ex3em
К сожалению не нашёл в хелпах и по форуму информацию, а вопрос простой: После импорта данных нужно вывести окно с логом, какие функции есть для этого? Хотелось бы вывести информацию в окошко, как это делается в Галактике при выборе пункта (Сервис->Информация->О лицензии)

Если можно с пример кода ))

Я новичек, сильно не браните ))

Добавлено: 04 фев 2010, 19:51
m0p3e
IMHO, проще всего функционал из ЗП:

Код: Выделить всё

begin
 IntInit; 
 ClearLogFile;
.........
 Displ('что-то пишем');
.........
 ShowErrors; //Будет показано окно, если был хотя бы раз был вызван Displ
 ExitProc;
end;

Добавлено: 04 фев 2010, 19:56
ex3em
Большое спасибо m0p3e - то что надо :cool:

Добавлено: 08 фев 2010, 16:00
Screw
А чтобы процедурные скобки IntInit|ExitProc не развалились случайно, делаем раз:

Код: Выделить всё

#include Contexts.vih
...
begin
  var CS: IContextSession;
  var CL: ContextList;
  // это называется "захват прикладного контекста"
  if CL.Add(CS, 'IntInit') {
    //выводим в лог
    Displ(...); 
    ...
    // отображаем лог на экране
    ShowErrors; 
  }
end;
Для простоты использования функционала прикладники родят вот такое (InttInitSession.vpp):

Код: Выделить всё

//******************************************************************************
//                                                      (с) корпорация Галактика
// Галактика 8.1 - Заработная плата
// Код захвата контекста "IntInit" (базовый зарплатный), аналог процедурных
// скобок IntInit|ExitProc
//******************************************************************************

//------------------------------------------------------------------------------
//  Для захвата контекста достаточно подключить данный vpp-файл в свой
//    интерфейс.
//
//  Пример.
//    ...
//    #include Contexts.vih // Обработка контекстов
//    ...
//    Interface ...
//    ...
//    #include IntInitSession.vpp // Захват контекста 'IntInit'
//    ...
//------------------------------------------------------------------------------

var IntInitSession: IContextSession;

function CaptureIntInitContext: boolean;
{
  var CL: ContextList;
  InitContextSessionOwner;
  Result := CL.Add(IntInitSession, 'IntInit');
}

HandleEvent
  cmInit:
  {
    if not CaptureIntInitContext
      abort;
  }

  cmOnVipLoad:
  {
    if not CaptureIntInitContext
      abort;
  }
end;
И включают vpp-шку перед интерфейсным HandleEvent-ом.

Добавлено: 09 фев 2010, 18:50
ex3em
Screw

Большое спасибо, теперь точно знаю как пользоваться логом )