Jump to content

StatusBar перкрывает сетку


x11

Recommended Posts

На фрейме лежат несколько панелей, в нижней панели лежит сетка DBGrid с пагинатором.

Так вот... получается так, что StatusBar перекрывает пагинатор.

Тестовый проект приложил.

Спасибо.

Screenshot_39.jpg

uniGUI_StatusBar.zip

Link to comment
Share on other sites

1 hour ago, x11 said:

На фрейме лежат несколько панелей, в нижней панели лежит сетка DBGrid с пагинатором.

Так вот... получается так, что StatusBar перекрывает пагинатор.

У Вас же "два" статусбара. Вторая, которая расположена на основной форме, перекрывает. Тестовый случай работает корректно.

Link to comment
Share on other sites

все верно, один для фрейма, другой - общий - для формы

много фреймов, у каждого - своя панель статуса, так и задумано

Link to comment
Share on other sites

1 hour ago, x11 said:

я считаю, что некорректно

А если высота фрейма больше основной, то как в этом случае!?

Как минимум у Вас должно быть выравнивание, например:

  UniFrame1 := TUniFrame1.Create(self);
  UniFrame1.Parent := self;
  UniFrame1.Align := alClient; //<-------
  UniFrame1.Show;

 

Link to comment
Share on other sites

А, ну да, вы правы.

Просто у меня фреймы наследуются от одного родителя, у которого по умолчанию указано alClient.

В любом случае, указание в коде не помогает.

Screenshot_7.jpg

Link to comment
Share on other sites

если переводить все на uniAlignmentClient, в том числе и uniPageControl, то теперь сетка "наезжает" на заголовок панели

http://prntscr.com/wd82pg

хотя внизу теперь ничего не наезжает

у нижней сетки высота и ширина 100%, хотя я и убирал эти значения, все равно сетка наезжает на заголовок панели, у самой панели: uniAlignmentClient + fit.

Screenshot_8.jpg

Link to comment
Share on other sites

 Всё оказалось сложнее, если убрать эту строку кода (что ниже), то все норм
 

const

constHeaderInsert               = 'header.insert';

...

pnl.JSInterface.JSCall(constHeaderInsert, [1, Nav.JSControl]);// 1 - за заголовком,Nav - DBNavigator

т.е. когда добавляешь навигатор, то есть проблема

Link to comment
Share on other sites

Хмм.

При использовании uniAlignmentServer, да, скорее всего проблема будет, при "выравнивании"....

Но при использовании uniAlignmentClient, проблем не должно быть. Вы должны использовать соответствующие лайоуты и аттрибуты...

Link to comment
Share on other sites

Хорошо, я сейчас пытаюсь экспериментировать. В этот пример, что в первом сообщении, я добавил UniDBNavigator и код

procedure TUniFrame1.UniFrameReady(Sender: TObject);
begin
  uniPanel2.JSInterface.JSCall('header.insert', [0, UniDBNavigator1.JSControl]);
end;

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

Link to comment
Share on other sites

8 hours ago, x11 said:

нет, я не знал, что нужно так делать, но всё равно это не решило проблему

вот тестовый проект

https://files.dp.ua/ru/NXaSx

Пока, попробуйте так:

procedure TUniFrame1.UniFrameReady(Sender: TObject);
begin
  // uniPanel2.JSInterface.JSCall('header.insert', [0, UniDBNavigator1.JSControl]);
  with UniPanel2.JSInterface do
  begin
    JSCallDefer('header.insert', [0, UniDBNavigator1.JSControl], 300);
    JSCallDefer('header.setHeight', [UniDBNavigator1.Height+12], 320);
  end;

end;

 

Link to comment
Share on other sites

работает частично, навигатор уже появляется, но наезжает на заголовок, если указать индекс 1 вместо 0, то заголовка совсем нет

procedure TUniFrame1.UniFrameReady(Sender: TObject);
begin
  with UniPanel2.JSInterface do
  begin
    JSCallDefer('header.insert', [0, UniDBNavigator1.JSControl], 300);
    JSCallDefer('header.setHeight', [UniDBNavigator1.Height+12], 320);
  end;

  with UniPanel2 do
    if TitleVisible then
      JSInterface.JSCode('var tm=new Ext.util.TextMetrics();'#1'.header.insert('+ (ToolButtons.Count+1).ToString +', {xtype:"tbspacer", width:'#1'.header.title.getWidth()-(tm.getWidth('#1'.getTitle())+10)});');

end;

а если добавить еще и код из соседней темы, то не работает совсем: Uncaught TypeError: O32.header is undefined

Screenshot_2.jpg

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...