Dmitriy
-
Posts
17 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Posts posted by Dmitriy
-
-
Хотя если ставлю точку останова на if (timetostr(now) = '09:05:00') then
то она срабатывает, возможно время не удается уловить точное до секунды, не понимаю в общем )
-
Все равно не работает.
public
{ Public declarations }
property ConnString : string read FConnString;
Procedure Get_data_new(tm:tdatetime);Procedure TUniServerModule.Get_data_new(tm:tdatetime) ;
begin
// код
end;;
procedure TUniServerModule.UniThreadTimer1Timer(Sender: TObject);
begin
if (timetostr(now) = '08:38:00') then
Get_data_new(now);
if (timetostr(now) = '20:01:00') then
Get_data_new(now);
end;Все нужные компоненты на этом же модуле, но события по времени на длинную дистанцию все равно не работают ((
-
его использовать в Unimainmodule правильно?
-
Всем добрый день! Есть проблемка - не могу понять как правильно организовать вызов процедуры строго по времени (в 8:01 и 20:01). Сделал по старинке:
procedure TReport_proizvodstvo.UniTimer1Timer(Sender: TObject);
begin
if (timetostr(now) = '08:01:00') then
Get_data_new(now);
if (timetostr(now) = '20:01:00') then
Get_data_new(now);end;
Но опять же - это же должна быть открыта сессия в браузере, проблема в том, что иногда она срабатывает - иногда нет. Пробовал добавлять второй таймер чтобы пинал сессию
Но результат такой же.
Как вообще в принципе, правильно организовать вызов какой то процедуры, и чтобы она не зависела от сессии - а только от запущенного сервера.
В процедуре происходят всякие выборки из удаленной базы данных FiREBird, кладутся в MS SQL и отправляются кое какие данные в телеграмм бот и в эксель в папку определенную.
Заранее благодарю.
-
up, тоже интересна данная тема. Только задача проще, обновлять клиентский датасет с сервера, при определенных условиях, начал копать в сторону вэбсокетов, но пока не сильно продвинулся )
-
22 hours ago, Sherzod said:
Здравствуйте,
Вы также можете проанализировать этот демо пример:
\FMSoft\Framework\uniGUI\Demos\Desktop\FormNavigate
Огромное спасибо, это то что нужно!
-
Всем доброго здравия! Столкнулся с такой задачкой, имеется 10 компонентов UniEdit и необходимо чтобы после введения числового значения в UniEdit и нажатию Enter, фокус присваивался бы следующему элементу Edit (или указанному). Как это реализовать?
function keypress(sender, e, eOpts)
{
if (e.getKey() == 13 ) { ??
} -
uniAlignmentServer
Layout absolute
-
Добрый день! Очень понравился скин uni_mac_yosemite, он прям соответствует нашим корпоративным цветам, но есть одна неприятная особенность, все компоненты memo и другие текстовые редакторы, имеют 1 строку, и небольшой скрол, в общем все как на картинке. Может это можно каким- то скриптом пофиксить.?
Заранее благодарен.
версия 1.90.0.1530 complete.
-
3 minutes ago, Farshad Mohajeri said:
Global variables are shared among all sessions. You should move them inside public section of the MainModule.
http://www.unigui.com/doc/online_help/index.html?general-design-concept.htm
Oh, sorry, Thank you for explain )
-
-
8 minutes ago, Farshad Mohajeri said:
Hello,
Are you using HyperServer?
Hello, no i use standalone server and last version of Unigui Complete.
-
31 minutes ago, Sherzod said:
Уникален.
Возможно надо вызывать beforelogin и обнулять все переменные и все запросы в sql подчищать, может есть какие - то примеры реализации разграничения прав доступа к тем или иным элементам mainform в зависимости от пользователя?
Я только начал изучать Unigui, возможно не все нюансы еще постиг, приведу пример как я разграничиваю (пытаюсь) права:
UnimainModule
var
LoggedUser,Otdel,filename : string;
adminmode: boolean;-----------------------------------------------------
UniloginModule
procedure TUniLoginForm1.UniBitBtn1Click(Sender: TObject);
var
hash: string;
beginUniMainModule.q_pass.SQL.Clear;
UniMainModule.Q_pass.SQL.Add('select * from users where fio ='''+unicombobox1.Text+'''');
UniMainModule.Q_pass.Active:=true;adminmode:=false;
// режим входа для журнала заявок
// hash := THashSHA2.GetHashString(UniEdit1.Text,THashSHA2.TSHA2Version.SHA256);if UniMainModule.q_pass.FieldByName('pass').Value = UniEdit1.Text then
begin
if (UniMainModule.q_pass.FieldByName('Zayavki_org_adm').AsBoolean = true) then
adminmode:=true;Otdel:= UniMainModule.q_pass.FieldByName('otdel').AsString;
LoggedUser := UniComboBox1.Text;if UniCheckBox1.Checked then
begin
UniApplication.Cookies.SetCookie('_loginname', UniComboBox1.Text, Date + 30.0); // Expires 30 days from now
UniApplication.Cookies.SetCookie('_pwd', UniEdit1.Text, Date + 30.0);
end;ModalResult := mrOK;
end
else
ShowMessage('Введен неверный пароль');Main - главная форма
procedure TMainForm.UniFormCreate(Sender: TObject);
beginUniLabel1.Caption := LoggedUser;
if adminmode=true then
begin
admin.Visible:=true; // Пункты в UniMenuItems1
biot.visible:=true;//
end
else
admin.Visible:=false;----------------------------------------------------------------
Так же у меня есть PageControl в котором я создаю фремы, правильно - ли там проверять переменные из MainModule для активации\деактивации тех или иных контролов
либо это все надо делать в другом месте?
-
Такая же проблема сейчас, начинается новая сессия с другой машины под другим пользователем, но в итоге мы видим все доступные меню для первого пользователя (админа).
Если завершить сервер, зайти пользователем, то все прекрасно, все админки скрыты, но после этого и админ заходит как пользователь. Не могу никак понять в чем проблема. получается что MainModule не уникален для каждой сессии ?
-
-
Запуск процедуры по времени
in Russian
Posted
Спасибо - помогло. 👐