Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 46 47 48 49 50 51 52 [53] 54 55   вперед  Ctrl
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
rgreat
var DS:=TDataSet.Create(nil);


Вопрос по оптимизации.
Если DataSet (в моем случае) TUniQuery уже настроен в design-time, то при его создании в run-time он будет создаваться уже настроенным, так сказать.

А если его создавать в коде UniQuery1 := TUniQuery.Create(self), то он (набор данных) будет создан со значениями по умолчанию, а потом, после создания его надо ещё и настроить: указать запрос, свойства разные и т.д. Ну т.е. в этом случае выполняется двойная работа.

У меня, например, при открытии формы добавления нужно создать и открыть 20-30 таблиц-справочников.
1 ноя 20, 14:00    [22224317]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
Gluck99
Member

Откуда: Оттуда
Сообщений: 1085
Меня сейчас больше интересует, можно ли как-то у одного и того же проекта задать компиляцию в дебаг-моде как stanalone, а в релиз-моде как windows-service? Или иными словами, как правильно дебажить результат, если он не стандартный windows executable = standalone server? Я так понимаю, что можно директивами компилятора поиграться. Это единственный путь или можно как-то проще? Кто как решает этот вопрос?
1 ноя 20, 14:18    [22224324]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
rgreat
Member

Откуда:
Сообщений: 6312
Gluck99
Меня сейчас больше интересует, можно ли как-то у одного и того же проекта задать компиляцию в дебаг-моде как stanalone, а в релиз-моде как windows-service? Или иными словами, как правильно дебажить результат, если он не стандартный windows executable = standalone server? Я так понимаю, что можно директивами компилятора поиграться. Это единственный путь или можно как-то проще? Кто как решает этот вопрос?

Можно. Делается через директивы условной компиляции.

Если интересно потом могу пример бросить 1 проект = StandAlone/ISAPI/Service через переключатели.

Сообщение было отредактировано: 1 ноя 20, 15:05
1 ноя 20, 15:08    [22224367]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
Все 3 варианта разом.
StanAlone, Service, ISAPI DLL.

20657580
1 ноя 20, 15:19    [22224373]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
Gluck99
Member

Откуда: Оттуда
Сообщений: 1085
X11
Все 3 варианта разом.
StanAlone, Service, ISAPI DLL.20657580
О, спасибо. А Дельфа не будет "исправлять" в фоновом режиме код проекта?
1 ноя 20, 17:20    [22224418]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3731
автор
К сожалению, в Delphi еще не научились помещать невизуальные компоненты не на форму.

не понял. а датамодули как же?
автор
Меня сейчас больше интересует, можно ли как-то у одного и того же проекта задать компиляцию в дебаг-моде как stanalone, а в релиз-моде как windows-service?

дефайнами можно сделать как угодно. впрочем, уже ответили
автор
О, спасибо. А Дельфа не будет "исправлять" в фоновом режиме код проекта?

бывает, нужно поглядывать

Сообщение было отредактировано: 1 ноя 20, 19:21
1 ноя 20, 19:25    [22224468]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
rgreat
Member

Откуда:
Сообщений: 6312
makhaon,

Датамодуль это не визуальная форма.
1 ноя 20, 22:44    [22224527]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
rgreat
Member

Откуда:
Сообщений: 6312
X11
Как подключить к словарю TunimDBLookupCombobox?

Массированное использование DataAware контролов - это стиль написания GUI динозаврами для динозавров.

Я из Data Aware контролов использую только таблицы. Да и то только когда мне лень делать красиво.
И если для юзера "и так сойдет".

Сообщение было отредактировано: 1 ноя 20, 22:45
1 ноя 20, 22:48    [22224529]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
rgreat
Member

Откуда:
Сообщений: 6312
X11
Вопрос по оптимизации.
Если DataSet (в моем случае) TUniQuery уже настроен в design-time, то при его создании в run-time он будет создаваться уже настроенным, так сказать.

По большому счету нет никакой разницы настриваешь ты что-то кодом в .pas или через дизайнер в .dfm.
Но руками в коде - гибкости гораздо больше.

А если его создавать в коде UniQuery1 := TUniQuery.Create(self), то он (набор данных) будет создан со значениями по умолчанию, а потом, после создания его надо ещё и настроить: указать запрос, свойства разные и т.д. Ну т.е. в этом случае выполняется двойная работа.
Настраиваются в точности те же свойства, что и через дизайнер.
Разницы нет.

Но в датамодуле или на форме это приводит к визуальной каше. Да и поломать что-то случайно не в пример проще.

Если это делать в коде, то все надежней и более структурировано.

У меня, например, при открытии формы добавления нужно создать и открыть 20-30 таблиц-справочников.

Не вижу проблемы.
1 ноя 20, 22:56    [22224532]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
makhaon
автор
К сожалению, в Delphi еще не научились помещать невизуальные компоненты не на форму.

не понял. а датамодули как же?


неудобно
удобно было бы если бы это было все на одной форме, но в стороне, рядом, на специальной области

пока что разработчики додумались сделать кнопку "Скрыть невизуальные компоненты"
1 ноя 20, 23:01    [22224533]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
makhaon
автор
К сожалению, в Delphi еще не научились помещать невизуальные компоненты не на форму.

не понял. а датамодули как же?


Еще одна проблема, которая наблюдается даже в Delphi 10.3.3: если у DBAware-компоненты привязаны к TDataSource, а TDataSource лежит в DataModule, то связь иногда или часто теряется.
По крайней мере это я точно наблюдал у DevExpress. Там связь разрывается в том числе и между своими компонентами. Открываешь форму, а свойство ListSource или View (repository), см. на картинке, только что проверил.

С uniGUI уже не помню, есть такое или нету. Сейчас нет желания и там проверять.

В 10.4 не проверял.

К сообщению приложен файл. Размер - 51Kb
1 ноя 20, 23:06    [22224534]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
rgreat
Я из Data Aware контролов использую только таблицы.


Боже упаси, я тоже не использую DBAware-компоненты. Только обычные. Мои пишущие транзакции открываются только на момент записи данных в базу. К счастью, Firebird позволяет использовать механизм множественных транзакций.
А unimDBLookupCombobox использую только ради одной цели: как список, привязанный с НД свойством ListSource. Свойство DataSource у меня не заполнено.

Зачем список наполнять ручками, если можно указать 3 свойства?

Из других DBAware-компонентов я использую еще и сетку. И все.
1 ноя 20, 23:12    [22224536]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
rgreat
Member

Откуда:
Сообщений: 6312
X11
Зачем список наполнять ручками, если можно указать 3 свойства?

Лень заполнять руками - можно сделать процедуру и вызывать ее для разных справочников и комбобоксов.

Хотя там делов-то на 5 строчек.
1 ноя 20, 23:26    [22224539]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1613
X11
Еще одна проблема, которая наблюдается даже в Delphi 10.3.3: если у DBAware-компоненты привязаны к TDataSource, а TDataSource лежит в DataModule, то связь иногда или часто теряется.

У меня в D7 иногда бывало что теряется связь между FIBDatabase которая лежит на главной форме и FIBQuery которых понапихано в каждую форму и в датамодули. Т.к. потеря связи всплывает только при эксплуатации а форм несколько сотен, решил забить на этот механизм и присваивать связь в коде.

На главной форме сделал процедурку

procedure AssignDatabase(aForm : TForm);
var
  i: integer;
begin
  // косяки Delphi
  with aForm do begin
    for i := 0 to ComponentCount-1 do begin
      //
      if Components[i] is TpFIBQuery then begin
        (Components[i] as TpFIBQuery).Database := FrmMain.Database;
      end;//if
      //
      if Components[i] is TpFIBTransaction then begin
        (Components[i] as TpFIBTransaction).DefaultDatabase := FrmMain.Database;
      end;//id
      //
    end;//for
  end;//with
end;


а при создании других форм просто вызываю ее

procedure TFrmSkl.FormCreate(Sender: TObject);
begin
  AssignDatabase(self); // Косяки Delphi


и не стало проблем с этим.

Сообщение было отредактировано: 2 ноя 20, 05:45
2 ноя 20, 05:50    [22224582]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
да, приходится такой костыль использовать
2 ноя 20, 10:53    [22224660]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3731
автор
Но в датамодуле или на форме это приводит к визуальной каше.

Для уменьшения каши есть несколько экспертов, которые позволяют сортировать невизуальные компоненты как угодно фактически одним кликом.

автор
Да и поломать что-то случайно не в пример проще.

автор
Еще одна проблема, которая наблюдается даже в Delphi 10.3.3: если у DBAware-компоненты привязаны к TDataSource, а TDataSource лежит в DataModule, то связь иногда или часто теряется. По крайней мере это я точно наблюдал у DevExpress.

автор
У меня в D7 иногда бывало что теряется связь между FIBDatabase которая лежит на главной форме и FIBQuery которых понапихано в каждую форму и в датамодули. Т.к. потеря связи всплывает только при эксплуатации а форм несколько сотен, решил забить на этот механизм и присваивать связь в коде.

вы, господа, принципиально отказываетесь от систем контроля версий кода? :) у меня связь терялась, несколько раз бывало, при копипасте. git сразу обнаружил
2 ноя 20, 11:26    [22224679]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
alekcvp
Member

Откуда:
Сообщений: 2494
X11

удобно было бы если бы это было все на одной форме, но в стороне, рядом, на специальной области
Такое было в Delphi.Net, почему они это на основу не перенесли - я хз, было удобно.
2 ноя 20, 11:55    [22224700]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
makhaon,

дело в том, что связь теряется ПОСТОЯННО
при чем тут git?
2 ноя 20, 12:17    [22224718]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3731
alekcvp,

с отдельным местом под компоненты согласен. наверно так было бы удобнее. создавайте тикет, может проголосуют.
2 ноя 20, 12:17    [22224719]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
alekcvp
X11

удобно было бы если бы это было все на одной форме, но в стороне, рядом, на специальной области
Такое было в Delphi.Net, почему они это на основу не перенесли - я хз, было удобно.


Я об этом пишу, уже много лет, неужели разработчики IDE такие слепые и несообразительные, что не могут взять идею на вооружение? и даже выкинуть её :(
2 ноя 20, 12:18    [22224720]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
Cobalt747
Member

Откуда:
Сообщений: 2221
Ставлю на то, что в модуле формы в Interface не был указан модуль, из которого использовался объект.
там компонент скопипастили, сюда вставили, а в uses не добавили
2 ноя 20, 18:17    [22225187]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
Gluck99
Member

Откуда: Оттуда
Сообщений: 1085
Первый раз слышу о том, что теряются связки между компонентами. У меня такого не было.
Единственный раз, когда такое было - это когда я использовал фреймы. В итоге выяснилось, что IDE не всегда обновляет данные на той форме, где лежит фрейм. Т.е. я меняю что-то в модуле фрейма, а во всех других местах, где лежит контейнер с формой, ничего не происходит (хотя чаще все-таки происходит). Ну и отваливались связки постоянно, особенно с датасорц-комопнентами.
2 ноя 20, 19:29    [22225244]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
Cobalt747
Ставлю на то, что в модуле формы в Interface не был указан модуль, из которого использовался объект.
там компонент скопипастили, сюда вставили, а в uses не добавили


а как же я тогда выбираю привязку, если нет модуля в uses?
3 ноя 20, 13:24    [22225640]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
http://www.unigui.com/doc/online_help/index.html?deploying-as-a-service.htm
Deploying standalone app as a Linux service


http://ubuntu.fmprime.com:8077/

Сообщение было отредактировано: 3 ноя 20, 13:23
3 ноя 20, 13:27    [22225645]     Ответить | Цитировать Сообщить модератору
 Re: Применение UniGui  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
А кто-то смог подружить uniGUI сетку и uniDAC набор данных в режиме бесконечной прокрутки?
3 ноя 20, 13:51    [22225664]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 46 47 48 49 50 51 52 [53] 54 55   вперед  Ctrl
Все форумы / Delphi Ответить