Jump to content

Tokay

uniGUI Subscriber
  • Posts

    839
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by Tokay

  1. I'm not sure it's worth protecting the password. Intruder can catch any hash and can successfully login later. SSL is better, all traffic can be encrypted.
  2. Eurekalog и Mad Except очень помогают в сложных случаях. Как поиска утечек, так и поиска проблемных мест. Тулы работают в любых условиях - стендэлон, isapi (dll), сервис, 32 и 64 бита. У нас софт (порядка миллиона строк) работать в весьма ответственных местах, без заметных сложностей, с Унигуем в качестве интерфейса. Указанные тулы помогают постоянно. Если действительно хочется решить проблемы, а не нагнетать, рекомендую разобраться с отладочными тулами. Так же есть удаленная отладка. Можно 'прицепиться' почти к любому бинарнику, как exe так и dll. Мы как-то в сложном случае, отлаживали удаленно в Канаде, за часа два примерно разобрались.
  3. I think that you can merge all your apps into the one (server) and separate them by parameters.
  4. I also need a help with this topic. I need a working example of PageSize Extension for UniDBGrid for latest UniGUI, thank you!
  5. I think that ROBOTS.TXT can help you.
  6. My project has 50 mb exe file too 47 Forms, and that's not all we need.
  7. Maybe UniServerModule>ServerLimits>SessionRestrict can help you?
  8. да, так и есть. видимо я случайно серверный таймер использовал. с TUniTimer всё отлично работает!
  9. топикстартеру: что именно вызывает затруднение? послать файл юзеру можно, например, с помощью UniSession.SendFile. прямо из потока, правда, не получится. но можно сделать какой-то флаг, что файл для посылки готов, его проверять по юзерскому таймеру (TUniTimer), и как файл 'созрел', кинуть его юзеру.
  10. I have opened the bug in tracker, and waiting for fixing: http://jira.fmsoft.net/servicedesk/customer/portal/4/FSD-726 as a temporary solution you can hide the button and do refresh with external control.
  11. Maybe tools like Eurekalog can help you.
  12. Okay, here's this module. Usage, forms, pas: procedure TUniForm14.UniFormClose(Sender: TObject; var Action: TCloseAction); begin JvFormStorage1.StoredValues.Values['Form14Width'].Value := Width; JvFormStorage1.StoredValues.Values['Form14Height'].Value := Height; SaveGridLayout; JvFormStorage1.SaveFormPlacement; end; procedure TUniForm14.UniFormCreate(Sender: TObject); begin JvFormStorage1.AppStorage := UniMainModule.AppRegistryStorage; JvFormStorage1.RestoreFormPlacement; Width := JvFormStorage1.StoredValues.Values['Form14Width'].Value; Height := JvFormStorage1.StoredValues.Values['Form14Height'].Value; LoadGridLayout; end; procedure TUniForm14.SaveGridLayout; var SaveLayout: TUniGridLayOut; begin SaveLayout := TUniGridLayOut.Create(nil); try SaveLayout.SaveLayout(JvFormStorage1, UniDBGrid1, 'Form14Grid1'); SaveLayout.SaveLayout(JvFormStorage1, UniDBGrid2, 'Form14Grid2'); finally FreeAndNil(SaveLayout); end; end; procedure TUniForm14.LoadGridLayout; var LoadLayout: TUniGridLayOut; begin LoadLayout := TUniGridLayOut.Create(nil); try LoadLayout.LoadLayout(JvFormStorage1, UniDBGrid1, 'Form14Grid1'); LoadLayout.LoadLayout(JvFormStorage1, UniDBGrid2, 'Form14Grid2'); finally FreeAndNil(LoadLayout); end; end; DFM: object JvFormStorage1: TJvFormStorage Active = False AppStoragePath = 'Form14Placement\' Options = [] StoredValues = < item Name = 'Form14Width' Value = 943 end item Name = 'Form14Height' Value = 688 end> Left = 559 Top = 164 end Usage, the MainModule, pas: procedure TUniMainModule.UniGUIMainModuleBeforeLogin(Sender: TObject; var Handled: boolean); begin if Handled then begin ..... AppRegistryStorage.Root := AppRegistryStorage.Root + '\' + UniMainModule.LoggedUserUID; end; end; DFM: object AppRegistryStorage: TJvAppRegistryStorage StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' Root = 'Software\ACME Software\UniGuiStorage' SubStorages = <> Left = 504 Top = 216 end SaveUniGrid.pas
  13. I have wrote such a class. But it has the dependence of the JVCL library. I don't know, is it good idea to piblish it. It can save and restore Width, Index, Visible and Expanded properties of each column in a TUniDBGrid. On the server side, store by user, in registry, db, xml or ini file.
  14. Да, о нем. Насколько я понял идею - то процессы запускаются на разных машинах. Иначе не имеет смысла
  15. Надежнее проверять на 10-20 юзеров, так как есть какое-то общее потребление ресурсов (памяти, и т п) а есть по-юзерно. На множестве юзеров будет точнее видно. Можно поставить балансировщик (HyperServer), посмотреть как пойдет на 2-3 машинах и докидывать их по мере надобности. Опять же - можно и памяти в одну добавить, если процессорного ресурса хватает. 32мя гигами оперативки на сервере мало кого сейчас можно удивить. Я частично связан с машинным обучением, там, бывает, вообще по 100+ гиг бывает нужно Что тут про 32 говорить.
  16. он предназначен именно для балансировки на несколько машин, всё верно. на такое количество пользователей скорее всего придется несколько ставить.
  17. Думаю, что обычного среднего компьютера достаточно. 2 ядра, 2 гига оперативки.
  18. Стас, в унигуе уже есть свой балансировщик. Как раз для таких случаев. Смотри HyperServer.
×
×
  • Create New...