Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / UniGui UniSession.Synchronize; / 25 сообщений из 48, страница 1 из 2
23.10.2020, 15:56
    #40011274
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
Доброго дня,

При динамическом создании объектов я вывожу прогрессбар но чтобы он "тикал" я использую функцию UniSession.Synchronize;

И вот в этот момент возникает ошибка вида

Код: pascal
1.
2.
3.
4.
5.
6.
7.
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class Exception with message 'Fatal Error: Control can not be created  with a nil Owner.'.
---------------------------
Break   Continue   Help   
---------------------------



Немножко кода
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
ShowProgress('Please Wait...');   //запускаем прогрессбар
UniSession.Synchronize;

perRecords:=perIBQuery.RecordCount-1 ;
for i:=0 to perRecords do
  begin
  UpdateProgress(i/perRecords, Format('%%%d Completed', [round(100/perRecords*i)]));
  UniSession.Synchronize;

  //создаем панельку в которой будем размещать кнопки и
  ParamString[i].Panel:=TUniPanel.Create(MainForm);
  ParamString[i].Panel.Parent:= MainForm;
  ParamString[i].Panel.Left:=10;
  ParamString[i].Panel.Top:=i*30+30;
  ParamString[i].Panel.Width:=650;
  ParamString[i].Panel.Height:=25;
  ParamString[i].Panel.Name:='panel'+inttostr(i);
  ParamString[i].Panel.Visible:=false;  //скрываем чтобы быстрее грузилось
....
perIBQuery.next;
end;



И вот проблема, когда я запускаю одну сессию, т.е. делаю только я запрос на сервер, то все хорошо, а вот если в этот же момент кто будет делать тоже запрос на сервер, то сразу становится все плохо..

А если убрать из цикла UniSession.Synchronize; то ошибок не будет.

В чем проблема?
...
Рейтинг: 0 / 0
23.10.2020, 16:00
    #40011277
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
Глупость спрошу, но демки смотрел?

http://prime.fmsoft.net/demo/desktop/mdemo65.dll

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
// ProgressBar = Form Controls
unit FormControlsProgressBar;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, uniGUITypes, uniGUIAbstractClasses,
  uniGUIClasses, uniGUIFrame, uniButton, uniLabel, uniProgressBar,
  uniGUIBaseClasses, uniPanel, uniTimer;

type
  TUniFormControlsProgressBar = class(TUniFrame)
    UniContainerPanel1: TUniContainerPanel;
    UniProgressBar1: TUniProgressBar;
    UniLabel1: TUniLabel;
    UniButton1: TUniButton;
    UniTimer1: TUniTimer;
    procedure UniTimer1Timer(Sender: TObject);
    procedure UniButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}



procedure TUniFormControlsProgressBar.UniButton1Click(Sender: TObject);
begin
  UniTimer1.Enabled := True;
end;

procedure TUniFormControlsProgressBar.UniTimer1Timer(Sender: TObject);
begin
   UniProgressBar1.Position := UniProgressBar1.Position + Random(10);
   UniLabel1.Caption := '% '+IntToStr(UniProgressBar1.Position);
   if UniProgressBar1.Position = UniProgressBar1.Max then
      UniLabel1.Caption := 'Loading Complete'
end;

initialization
  RegisterClass(TUniFormControlsProgressBar);

end.

...
Рейтинг: 0 / 0
23.10.2020, 17:59
    #40011338
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
wadman,

демки смотрел. с них и делал это прогрессбар. но я так понимаю там при динамическом создании объекта другие правила.
...
Рейтинг: 0 / 0
23.10.2020, 19:13
    #40011369
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
FIL23
Код: pascal
1.
'Fatal Error: Control can not be created  with a nil Owner.'.

Какое слово здесь не понятно?
...
Рейтинг: 0 / 0
23.10.2020, 20:27
    #40011409
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
FIL23
при динамическом создании объекта другие правила.

Абсолютно те же.
...
Рейтинг: 0 / 0
23.10.2020, 21:16
    #40011420
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
_Vasilisk_
FIL23
Код: pascal
1.
'Fatal Error: Control can not be created  with a nil Owner.'.

Какое слово здесь не понятно?


Ну так owner есть , куда он делся?
...
Рейтинг: 0 / 0
24.10.2020, 15:25
    #40011547
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
Наоборот всё надо делать.
При динамическом создании компонент надо "замораживать" форму.
...
Рейтинг: 0 / 0
24.10.2020, 15:27
    #40011548
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
см\Demos\Desktop\Dynamic
...
Рейтинг: 0 / 0
24.10.2020, 15:43
    #40011552
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
self.SuspendLayouts;
...
...
self.ResumeLayouts;
...
Рейтинг: 0 / 0
26.10.2020, 09:49
    #40011782
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
Я вот чего не понимаю, у унигуи отличный форум, демки ну просто на каждый чих и народ один фиг отказывается хотя бы открыть документацию и посмотреть демки. Я хз как к этому относится, я не великий программист, но при знакомстве с новым компонентом открываю и смотрю КАЖДУЮ демку, что она делает и как.
...
Рейтинг: 0 / 0
26.10.2020, 11:26
    #40011809
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
демок много, но они все очень очень простые, ни ничего сложного, комплексного
справка слабая, особенно для мобильных проектов
много приходится делать вручную с помощью методов JSCode, JSCall, JSAddListener т.к. у exJS свойства и методы есть, но их нету в uniGUI.
...
Рейтинг: 0 / 0
26.10.2020, 11:30
    #40011811
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
Например, есть компонента unimDBLookupCombobox с поддержкой замечательного режима RemoteQuery, т.е. когда заполняется компонента только по запросу, но этот режим не работает ключевых значений, т.е. нельзя использовать ключ+значение, а только значение.
Есть компоненты unimSelect, которая в exJS поддерживает и editable и multiselect, но из коробки этого нет и приходится это все дописывать ручками самому. Я не знаю почему авторы упорно не хотят допилить, ведь это же не сложно вроде бы.
...
Рейтинг: 0 / 0
26.10.2020, 13:52
    #40011869
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
и вот таких примеров масса
http://forums.unigui.com/index.php?/topic/15375-possible-tunimform-titlebutton-to-set-badgetext/
Код: pascal
1.
2.
3.
4.
5.
6.
procedure TMainmForm.UnimFormReady(Sender: TObject);
begin
  with Self do
    WebForm.JSInterface.JSCall('setBadgeText', ['7'], TitleButtons[0].JSMenuItem);

end;
...
Рейтинг: 0 / 0
26.10.2020, 14:11
    #40011878
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
X11,

Код: pascal
1.
with Self do
...
Рейтинг: 0 / 0
26.10.2020, 18:29
    #40011980
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
??
...
Рейтинг: 0 / 0
26.10.2020, 19:06
    #40011990
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
X11,

Зачем нужна конструкция "with Self do"?
...
Рейтинг: 0 / 0
26.10.2020, 19:32
    #40012001
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
а я тут при чем?
...
Рейтинг: 0 / 0
26.10.2020, 20:26
    #40012014
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
rgreat
X11,

Зачем нужна конструкция "with Self do"?

Не классовые хэлперы ли там? https://stackoverflow.com/questions/37351215/how-to-access-a-private-field-from-a-class-helper-in-delphi-10-1-berlin
...
Рейтинг: 0 / 0
28.10.2020, 10:19
    #40012492
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
X11,

авторЯ не знаю почему авторы упорно не хотят допилить, ведь это же не сложно вроде бы.
нельзя объять необъятное. у них огромный фронт работ при достаточно увы скромном числе персонала. впрочем, это почти у всех так.
...
Рейтинг: 0 / 0
28.10.2020, 11:26
    #40012538
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
Мне кажется там вообще один Фаршад реально пишет, люди которые сидят на саппорте в форуме фактически не являются разработчиками. Фаршад просто предложил им бесплатную лицензию за то чтобы они отвечали на вопросы в форуме.
...
Рейтинг: 0 / 0
28.10.2020, 13:23
    #40012599
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
makhaon
X11,

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

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

они много времени уделяют десктопной версии, а мобильная очень слабо развита: нет компонентов, нет свойств, методов и т.д.
...
Рейтинг: 0 / 0
28.10.2020, 13:25
    #40012601
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
X11,

Я предупреждал. Лучше работать с десктопной.
...
Рейтинг: 0 / 0
28.10.2020, 14:12
    #40012623
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
Вообще не понимаю нафига страдать веб мобильной версией если уже есть fgx native которые сделает реально нативное приложение под Android и скоро под iOS
...
Рейтинг: 0 / 0
28.10.2020, 15:18
    #40012664
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
rgreat
X11,

Я предупреждал. Лучше работать с десктопной.


десктопную сложно адаптировать под мобильную, мало того, я открыл мобильную большую форму на стареньком смартфоне HTC (пусть и топовом в свое время) и все тормозит, форма открівается секунд 5.... боюсь представить, сколько бы открывалась адаптированная десктопная форма...

далее, я не настолько в вебе умен, чтобы адаптировать десктопную форму под мобильную

далее, в десктопной форме можно использовать дб-сетку со встроенными фильтрами и сортировкой и цветовой дифференциацией штанов ячеек, и сетку нельзя адаптировать в ListView для мобильных экранов
...
Рейтинг: 0 / 0
28.10.2020, 15:31
    #40012673
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UniGui UniSession.Synchronize;
энди
Вообще не понимаю нафига страдать веб мобильной версией если уже есть fgx native которые сделает реально нативное приложение под Android и скоро под iOS

Есть и ++ и --

1. Потому что не надо прогибаться под правила Гугла и Эпл в их магазинах. А ессли у кого-то китайский смартфон, то там и гугла нет. Ну и платить им тоже не придется, хоть там и не так и много. Потом начинается... там политика конфиденциальности, там политика еще какой-то херни, там обязательные еще какие-то требования, через полгода что-то поменяется в политиках и твое приложение выкинут, заблокируют. Не надо рассказывать, что приложение можно установить без магазина, пользователи не настолько умны.

2. uniGUI дает не только фронт, но и бэк. Что значительно упрощает разработку.

3. Вы пробовали отладку на Андроид? Сущий кошмар. Такое впечатление, что сигнал от смартфона идет не по USB, а по dile-up связи.

4. Производителей смартфонов + версий Android + версий UI-оболочек - это целый зоопарк = нужно при себе иметь кучу этих смартфонов с разными версиями Андроида на случай проблемы. В вебе - не так много браузеров, по пальцам можно пересчитать.

5. uniGUI - гибридное приложение, т.е. и для десктопа тоже, а FGX - только мобильное.

Полюс в FMX в том, что частично можно отлаживать приложение на винде и без тормозов. Но в FGX нет поддержки винды.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / UniGui UniSession.Synchronize; / 25 сообщений из 48, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]