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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...