Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизВедение лога Найти похожие ветки
← →
MZG (2008-04-30 10:33) [0]Как реализовать ведение лога?
Покажите примеры пожалуйста
← →
Ega23 © (2008-04-30 10:38) [1]
procedure Log(const s : string);
var
f : TextFile;
fn : string;
begin
fn := ChangeFileExt(Application.ExeName, ".log");
AssignFile(f, fn);
if not FileExists(fn) then Rewrite(f) else Append(f);
try
writeln(f, s);
finally
CloseFile(f);
end;
end;
← →
MZG (2008-04-30 10:40) [2]Спасибо!!!!!
← →
MZG (2008-04-30 12:34) [3]С примером разобрался!
Только не понятно как использовать в таймере?
У меня программа следит за подключением к инету.
Если соединение установлено, то пишет в лог.
Если соединение разорвано, то тоже пишет в лог что отсутствует.
В таймере то и дело пишет "фиксированные" значение.
Подскажите пожалуйста
← →
MZG (2008-04-30 13:05) [4]алё? :)
← →
Ega23 © (2008-04-30 13:18) [5]if not Connected then Log(DatetimeToStr(Now) + " : connection lost");
← →
MZG (2008-04-30 13:20) [6]Что имеется в виду под
Connected
???
← →
Palladin © (2008-04-30 13:21) [7]А что имеется ввиду "У меня программа следит за подключением к инету" ???
← →
Ega23 © (2008-04-30 13:22) [8]
> MZG (30.04.08 13:20) [6]
Я же не знаю, что там у тебя на таймере происходит.
← →
MZG (2008-04-30 13:26) [9]Вот кусок
procedure TForm1.Timer1Timer(Sender: TObject);
var url: string;
begin
url:="http://www.yandex.ru";
if CheckUrl(url)then
begin
// OperBegin := Now;
timer3.Enabled:= true;
timer2.Enabled:= true;
label1.Visible:= false;
edit1.Enabled:= true;
label2.Visible:= true end else
begin
timer3.Enabled:= false;
timer2.Enabled:= false;
label2.Visible:= false;
edit1.Enabled:= false;
label1.Visible:= true;
end;
end;
p.s. timer2, timer3 - специально для визуализации т.к. для эффекта
← →
Ega23 © (2008-04-30 13:33) [10]За такую мнемонику - убивать надо.
Теперь по существу:
1. Заводим глобальную переменную (поле формы, можно воспользоваться Timer1.Tag)
2. Изначально инициализируем её как False
3. В теле таймера: если CheckUrl(url)<> переменной, то состояние изменилось.
4. Если состояние изменилось, то пишем в лог (connected или disconnected)
5. Запоминаем текущее состояние.
Как-то так.
← →
MZG (2008-04-30 13:41) [11]может быть так?
procedure TForm1.Timer1Timer(Sender: TObject);
var url: string;
begin
ok:= timer1.Tag;
if not checkurl(url) then
begin
timer1.Tag:=1;
Log(DatetimeToStr(Now) + " : Disconnect");
end else
timer1.Tag:=0;
Log(DatetimeToStr(Now) + " : Connected");
end;
← →
Ega23 © (2008-04-30 13:47) [12]
> может быть так?
Нет, не так. Так у тебя обязательно будет запись в логе на каждую сработку таймера. А нужно - при изменении состояния.
Подумай ещё немного.
Даю наводку: ok у тебя нигде не используется.
← →
MZG (2008-04-30 13:52) [13]То есть не должен использоваться или вообще не используется? Чета не пойму наводку. Поясни :)
← →
Ega23 © (2008-04-30 13:53) [14]
> То есть не должен использоваться или вообще не используется?
> Чета не пойму наводку. Поясни :)
Подумай.
← →
MZG (2008-04-30 13:57) [15]Хорошо!
1. Создаем глобальную переменную
var i: integer;
2. свойство Enabled компонента Timer1 установлено в false
3. при запуске формы идет проверка на. Если свойство tag таймера установлено в 0 (ноль), то пишем в лог что все ок, иначе если tag имеет 1 (единицу), то пишем в лог что все плохо....
так?
← →
{RASkov} © (2008-04-30 13:59) [16]> [15] MZG (30.04.08 13:57)
> так?
Еще думай :)
← →
Ega23 © (2008-04-30 14:01) [17]
> так?
проверь. :)
З.Ы. Блин, вот тебе не стыдно? Я тебе в [10] весь алгоритм описал, мне что, ещё и код за тебя наваять???
← →
MZG (2008-04-30 14:02) [18]не получается :((((((
← →
{RASkov} © (2008-04-30 14:04) [19]например поле формы: OldState: Integer;
.................
Timer.Tag:=ORD(Connected);
if OldState<>Timer.Tag then begin
...
OldState:=Timer.Tag;
end;
← →
Ega23 © (2008-04-30 14:32) [20]
> не получается :((((((
Могу посоветовать только поменять профессию...
← →
Сергей М. © (2008-04-30 14:37) [21]
> программа следит за подключением к инету
CheckUrl - эта ф-ция даже судя по названию не имеет ничего общего со слежением за подключенностью к инету.
← →
Ega23 © (2008-04-30 14:38) [22]
> CheckUrl - эта ф-ция даже судя по названию не имеет ничего
> общего со слежением за подключенностью к инету.
Это уже не важно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.064 c