Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2013, 22:49   #1
DrugWash
 
Регистрация: 12.04.2011
Сообщений: 8
По умолчанию Не могу понять ка вызвать метод

Добрый вечер,

Господа гуру в Дельфи, помогите разобраться.
Есть прога, к ней нужно прикрутить логирование данных как в файл так и в MEMO. Нашел в принципе не плохой dunit который умеет это длеать. Там вроде все понятно, как писать в файл это просто, но есть наследник от базового класса, который умеет писать в TString но не могу понять инициализировать и вызвать так чтобы писалось сразу и в файл и добавлялось в мемо. Помогите кто чем может.

Исходник uLog.pas вложил.
Вложения
Тип файла: txt uLog.txt (10.9 Кб, 134 просмотров)
DrugWash вне форума Ответить с цитированием
Старый 25.08.2013, 20:39   #2
DrugWash
 
Регистрация: 12.04.2011
Сообщений: 8
По умолчанию

Мыслей нет ни у кого?
DrugWash вне форума Ответить с цитированием
Старый 25.08.2013, 21:25   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Ваши пробы в тестовом или "боевом" проекте выложите, а то непонятно, что требуется и как Вы этого добивались. Если логирование в файл есть, и в TStrings, то сделать и туда и туда можно написанием собственной функции, что-то вроде (пишу от фонаря, без оглядки на тот юнит, просто говорящими именами пользуюсь)
Код:
procedure MyLog(Msg: String);
var 
  logfile: TLOGFILE_class;
  logstr: TLOGSTRINGS_class;
begin
  logfile := TLOGFILE_class.Create();
  logstr := TLOGSTRINGS_class.Create();
  logfile.Log(Msg);
  logstr.Log(Msg);
  logfile.Free();
  logstr.Free();
end;
phomm вне форума Ответить с цитированием
Старый 25.08.2013, 21:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
к ней нужно прикрутить логирование данных как в файл так и в MEMO.
Логируй сразу в Мемо. В конце программы при завершении выполни Memo.Lines.SaveToFie(Имя файла и путь).
Ну иди можешь это сохранение сразу после записи выполнять.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2013, 21:42   #5
DrugWash
 
Регистрация: 12.04.2011
Сообщений: 8
По умолчанию

Спасибо всем за ответы.

phomm
1. procedure MyLog(Msg: String); - это самое простое что можно сделать. Вопрос немного в другом.


Stilet
Цитата:
Логируй сразу в Мемо.
2. Вот это и не получается на основании на основании юнита который я выложил в первом посте. Что-то где-то не догоняю с наследованием
DrugWash вне форума Ответить с цитированием
Старый 25.08.2013, 21:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Тебе этот юнит зачем? Ты с его помошью хочешь с делать логирование? Так он тебе и не нужен. покажи код своей проги, где нужно логгировать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2013, 21:54   #7
DrugWash
 
Регистрация: 12.04.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тебе этот юнит зачем? Ты с его помошью хочешь с делать логирование? Так он тебе и не нужен. покажи код своей проги, где нужно логгировать.
Хочется чтобы было красиво и сайфною

Код простой:
1. Вызвали форму - Записали
2. Выполнили команду - записали
3. Вышли - записали.
DrugWash вне форума Ответить с цитированием
Старый 25.08.2013, 22:04   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну так тебе совсем не нужен этот юнит.
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    procedure Log(msg:string);
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  Log('Зашли');
end;

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
 Log('Вышли');
end;

procedure TForm1.Log(msg: string);
begin
  with Memo1.Lines do begin
    Append(msg);
    SaveToFile(DateTimeToStr(now)+'  qqq');
  end;
end;

end.
И все.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2013, 22:39   #9
DrugWash
 
Регистрация: 12.04.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну так тебе совсем не нужен этот юнит.
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    procedure Log(msg:string);
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  Log('Зашли');
end;

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
 Log('Вышли');
end;

procedure TForm1.Log(msg: string);
begin
  with Memo1.Lines do begin
    Append(msg);
    SaveToFile(DateTimeToStr(now)+'  qqq');
  end;
end;

end.
И все.
Спасибо - это понятно, но все же по юниту кто что скажет?
DrugWash вне форума Ответить с цитированием
Старый 26.08.2013, 06:58   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Ну, кинь пробу проекта, и покажи в нём - вот тут я пытаюсь сделать то и то, так и так, ожидаю то и то, а получаю это и это.
Кому надо только по одному модулю гадать, как записать задачу, которая ещё и выражена недостаточно конкретно.
Пример я тебе привёл, я бы сам так делал, имея на руках некий готовый модуль, т.е. если в модуле чего нет, что мне нужно (а именно совмещение функционала 2 элементов из модуля), то я напишу простенькую обёртку. Если ты её написал (раз ты мне ответил соответствующе) и она тебя устраивает - то в чём проблема (её ты не озвучил в том ответе), не пойму.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вызвать метод Аманда Помощь студентам 6 16.09.2012 12:33
Передаю в элемент списка объект и не могу вызвать метод этого объекта. Len_a Общие вопросы C/C++ 1 21.12.2011 13:15
Как вызвать перекрытый метод из предка. shude Visual C++ 1 10.02.2011 19:22
Как вызвать метод из другого класса в C# KobolD Помощь студентам 6 25.06.2010 14:12
вызвать метод класса, находящегося в другом модуле zalum Общие вопросы Delphi 4 06.05.2009 08:47