Topic: Вопрос по Entry

Возможно ли организовать запись в грид таким образом, чтобы событие выхода (его в TableGrid1 на frmWork записывает кнопка Button1 на форме frmAddExit) было привязано к событию входа (его в TableGrid1 на frmWork записывает кнопка Button1 на форме frmAddEntry) и в итоге дата и время выхода были в той же строке грида, что и данные о входе, а не так как сейчас на прикрепленном рисунке?

Post's attachments

Attachment icon 2014-11-21_112421.jpg 101.53 kb, 305 downloads since 2014-11-21 

Не боги горшки лепят!

Re: Вопрос по Entry

В принципе, решение, наверное, такое: форму frmAddExit убираю вообще а Эдиты Дата и Время с неё переношу на frmAddEntry. Для кнопки Button1 на ней назначаю запись при выходе из программы. Т.е. при входе в форму записываются логин, дата и время входа, при выходе дозаписываются дата и время выхода и всё записывается в грид. Попробую так. Интересно, а в сети это будет работать?

Не боги горшки лепят!

Re: Вопрос по Entry

К сожалению без проекта, мне названия форм ни о чем не говорят smile


думаю можно создать вычисляемое поле, с условиями, чтобы выводить дату с тех полей, где она присутствует.

Dmitry.

Re: Вопрос по Entry

При таком скрипте:

var
   Timer: TTimer;
   iSeconds: integer;
//========= При входе =======================================
procedure frmChoice_OnShow (Sender: string; Action: string);
begin
     CopyFile('sqlite.db', 'backup/backup '+ FormatDateTime('dd-mm-yyyy', now)+'.db'); // запись резервного файла БД при входе
     Timer := TTimer.Create (frmChoice);
     Timer.Interval := 1000;
     Timer.Enabled := True;
     Timer.OnTimer := @OnTimer;
     frmChoice.user.Caption:=sUser; // запись логина в EditBox "user" на форме frmChoice
     frmChoice.cbUser.Text:=sUser; // запись логина в ComboBox на frmChoice
     frmAddEntry.TimeEntry.DateTime := now;  // определение текущего времени
     frmAddEntry.login.Text:=sUser; // запись логина в EditBox на frmAddWork
     frmAddEntry.GetUserName.Text:=GetUserName; // запись имени пользователя в EditBox на frmAddWork
end;
//========== При выходе =======================================
procedure frmChoice_OnClose (Sender: string; Action: string);
begin
     CopyFile('sqlite.db', 'backup/backup '+ FormatDateTime('dd-mm-yyyy', now)+'.db');  // запись резервного файла БД при выходе
     Timer.Free;
     frmAddExit.login.Text:=sUser; // запись логина в EditBox на frmAddExit
     frmAddExit.GetUserName.Text:=GetUserName; // запись имени пользователя в EditBox на frmAddExit
     frmAddEntry.timeExit.DateTime := now;  // определение текущего времени
     frmAddEntry.Button1.Click; // кнопка Button1 автоматически нажимается при выходе из frmChoice
     frmLogin.Close;
end;

Записывает в грид так, как на картинке. Но в таком случае не видно, кто сейчас находится в сети.

Post's attachments

Attachment icon 2014-11-21_211013.jpg 43.94 kb, 268 downloads since 2014-11-21 

Не боги горшки лепят!

Re: Вопрос по Entry

kunar80
а в чем вопрос? )

Dmitry.

6 (edited by kunar80 2014-11-21 20:30:54)

Re: Вопрос по Entry

Логин, Имя, дата и время записываются при входе, а время выхода - при выходе, НО В ЭТУ ЖЕ СТРОКУ.  Возможно? При том скрипте запись происходит при выходе.

Не боги горшки лепят!

Re: Вопрос по Entry

попробуйте так

var
   Timer: TTimer;
   iSeconds: integer;
//========= При входе =======================================
procedure frmChoice_OnShow (Sender: string; Action: string);
begin
     CopyFile('sqlite.db', 'backup/backup '+ FormatDateTime('dd-mm-yyyy', now)+'.db'); // запись резервного файла БД при входе
     Timer := TTimer.Create (frmChoice);
     Timer.Interval := 1000;
     Timer.Enabled := True;
     Timer.OnTimer := @OnTimer;
     frmChoice.user.Caption:=sUser; // запись логина в EditBox "user" на форме frmChoice
     frmChoice.cbUser.Text:=sUser; // запись логина в ComboBox на frmChoice
     frmAddEntry.TimeEntry.DateTime := now;  // определение текущего времени
     frmAddEntry.login.Text:=sUser; // запись логина в EditBox на frmAddWork
     frmAddEntry.GetUserName.Text:=GetUserName; // запись имени пользователя в EditBox на frmAddWork
     frmAddEntry.Button1.dbDoCloseForm := False; // отменяет закрытие окна при сохранении
     frmAddEntry.Button1.dbDontResetID := True; // так надо )

end;
//========== При выходе =======================================
procedure frmChoice_OnClose (Sender: string; Action: string);
begin
     CopyFile('sqlite.db', 'backup/backup '+ FormatDateTime('dd-mm-yyyy', now)+'.db');  // запись резервного файла БД при выходе
     Timer.Free;
     frmAddExit.login.Text:=sUser; // запись логина в EditBox на frmAddExit
     frmAddExit.GetUserName.Text:=GetUserName; // запись имени пользователя в EditBox на frmAddExit
     frmAddEntry.timeExit.DateTime := now;  // определение текущего времени
     frmAddEntry.Button1.Click; // кнопка Button1 автоматически нажимается при выходе из frmChoice
     frmLogin.Close;
end;
Dmitry.