Jump to content

Встроить UniDBNavigator в сетку uniDBGrid


x11

Recommended Posts

On 5/13/2020 at 8:55 PM, Sherzod said:

UniDBGrid1.PagingBarAuxControl

 

Вообще, было бы удобно, если бы компонента, используемая в свойстве PagingBarAuxControl автоматически перемещалась в заголовок в случае, когда paged отключается.

Link to comment
Share on other sites

7 minutes ago, x11 said:

Вообще, было бы удобно, если бы компонента, используемая в свойстве PagingBarAuxControl автоматически перемещалась в заголовок в случае, когда paged отключается.

procedure TMainForm.UniFormReady(Sender: TObject);
begin
  with UniDBGrid1 do
    if not WebOptions.Paged then
      if HeaderTitle<>'' then
        if Assigned(PagingBarAuxControl) then
          JSInterface.JSCall('header.insert', [0, PagingBarAuxControl.JSControl])

end;

 

  • Like 1
Link to comment
Share on other sites

Еще один вопрос вдогонку. А можно то же самое проделать и с панелью?

Т.е. как встроить навигатор в заголовок панели uniPanel?

 

Вот так не работает:

uniPanel1.JSInterface.JSCall('header.insert', [0, UniDBNavigator1]);

 

Link to comment
Share on other sites

  • 1 month later...
On 5/13/2020 at 8:55 PM, Sherzod said:

JSCall('pagingBar.add', [UniDBNavigator1.JSControl]);

 

проблема в том, что если форма в режиме uniAlignmentClient, то навигатор не отображается, в том числе и пагинатора тоже нет, пагинатор ищезает

 

Screenshot_1.jpg

Link to comment
Share on other sites

On 2/18/2021 at 12:53 AM, x11 said:

проблема в том, что если форма в режиме uniAlignmentClient, то навигатор не отображается, в том числе и пагинатора тоже нет, пагинатор ищезает

 

Screenshot_1.jpg

Здравствуйте,

Есть ли тестовый случай для проверки?

Link to comment
Share on other sites

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

Это я вот только свои темы нашел, связанные с проблемами при uniAlignmentClient:

http://forums.unigui.com/index.php?/topic/16004-vbox-элементы-налазят-друг-на-друга-при-unialignmentclient/

http://forums.unigui.com/index.php?/topic/15921-определить-координаты-и-размеры-окна-tuniform-при-unialignmentclient/

http://forums.unigui.com/index.php?/topic/14458-не-работает-tunimscrollbox/

http://forums.unigui.com/index.php?/topic/14720-прозрачность-формы/&tab=comments#comment-80098

http://forums.unigui.com/index.php?/topic/15905-property-tunidbgridpagingbarauxcontrol-not-work/&tab=comments#comment-87288

http://forums.unigui.com/index.php?/topic/15891-statusbar-перкрывает-сетку/

http://forums.unigui.com/index.php?/topic/15743-растянуть-компоненты-в-контейнере/&tab=comments#comment-86343

 

Я предоставлял примеры, которые вы обещали рассмотреть и проанализовать. И до сих пор тишина.

Например вот:

http://forums.unigui.com/index.php?/topic/14821-activecontrol/&do=findComment&comment=88477

http://forums.unigui.com/index.php?/topic/15982-unitabcontrol-не-раскрывается-на-весь-фрейм/

 

Link to comment
Share on other sites

23 hours ago, x11 said:
procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  with UniDBGrid1 do
    if WebOptions.Paged then
      UniDBNavigator1.JSInterface.JSAddListener('afterrender', 'function(me){'+
        JSName +'.pagingBar.add({xtype: "tbseparator"});'+
        'me.getRefItems().forEach(function(btn){'+ JSName +'.pagingBar.add(btn)})}'
      );

end;

 

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...
On 2/22/2021 at 11:29 AM, Sherzod said:
On 2/21/2021 at 11:43 AM, x11 said:

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  with UniDBGrid1 do
    if WebOptions.Paged then
      UniDBNavigator1.JSInterface.JSAddListener('afterrender', 'function(me){'+
        JSName +'.pagingBar.add({xtype: "tbseparator"});'+
        'me.getRefItems().forEach(function(btn){'+ JSName +'.pagingBar.add(btn)})}'
      );

end;

Разве он не выровнен по левому краю?

Link to comment
Share on other sites

1 hour ago, x11 said:

на картинке видно, что навигатор прилеплен к правому краю

На картинке, да ) 

Но в последнем решении  (выше), выравнивание по левому краю, возможно у Вас другой случай. 

Link to comment
Share on other sites

Ок, уточню еще.

Зависит ли от того, какой тип выравнивания у фрейма (uniAlignmentServer или uniAlignmentClient)?

Что должно быть в свойстве PagingBarAuxControl у сетки (пусто либо выбран навигатор)?

 

UPD.

Дело в том, что если я указываю uniAlignmentClient, то навигатора вообще нет на экране (http://prntscr.com/10oclaa ). А при uniAlignmentServer он центрируется по правому краю (http://prntscr.com/10ocmbp) и то только если его указать в свойстве PagingBarAuxControl. А если свойство PagingBarAuxControl оставить пустым, то просто посреди сетки, как при дизайне (http://prntscr.com/10ocmvv).

Link to comment
Share on other sites

4 minutes ago, x11 said:

Дело в том, что если я указываю uniAlignmentClient, то навигатора вообще нет на экране.

Но мы кажется с Вами уже решили эту задачу:

On 2/22/2021 at 11:29 AM, Sherzod said:

procedure TMainForm.UniFormCreate(Sender: TObject); begin with UniDBGrid1 do if WebOptions.Paged then UniDBNavigator1.JSInterface.JSAddListener('afterrender', 'function(me){'+ JSName +'.pagingBar.add({xtype: "tbseparator"});'+ 'me.getRefItems().forEach(function(btn){'+ JSName +'.pagingBar.add(btn)})}' ); end;

 

1 minute ago, x11 said:

к чему относиться? к  навигатору или к сетке?

В "последнем коде", относится к сетке.

Link to comment
Share on other sites

3 minutes ago, Sherzod said:

Но мы кажется с Вами уже решили эту задачу:

Простите меня еще раз. Я уже просто запутался.

К тому же по вашему коду непонятно, в каком состоянии должно быть свойство AligmentControl у фрейма (формы).

Еще нам, программистам (пользователям uniGUI) не всегда понятно, в каком событии строго нужно использовать тот или иной код: при создании формы или при показе. Нигде не поясняет и не обращает внимание.

Я, например, не знал, что ваш вышеуказанный код нужно использовать строго в onCreate и вы на это не обратили внгимание, потому что код до этого нужно было использовать строго в OnShow. Поэтому у меня такая путаница.

 

 

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...