Jump to content

Recommended Posts

Posted

Проблема возникла в рабочем проекте.

Нажимаешь кнопку и меню отображается (всплывает снизу). В меню выбираешь какой-нибудь пункт, где вызывается код создания и отображения другой мобильной формы, а потом код скрытия меню текущего меню. Пока проблемы нет, но... закрываешь эту форму и возвращаешься на основную форму. Снова нажимаешь кнопку и меню уже не всплывает. Отладчик показывает, что строка UnimMenu1.Show выполняется.

 

Проект, воспроизводящий проблему, приложил. Но здесь проблема воспроизводится сразу, т.е. не нужно открывать и закрывать форму. Меню просто не отображается. После зарпуска приложения нажмите кнопку Войти. Потом последнюю кнопку на панели (см картинку). В появившемся окне нажмите Action1 и вы должны наблюдать проблему.

Обратите внимание, что форма fmMenu является унаследованной от TUnimFormParent. Возможно, что проблема из-за наследования. Может я неправильно создаю дочернюю форму?

procedure TMainmForm.UnimToolButton5Click(Sender: TObject);
begin
  fmMenu := TfmMenu.Create(UniApplication);
  fmMenu.Show;
end;

 

Screenshot_14.jpg

UniGUI_Touch_menu.zip

Posted

Проблема на картинке. Отображается затемняющая маска и внизу видно кусок меню. И всё, меню не всплывает.

Screenshot_15.jpg

Posted
2 hours ago, x11 said:

Проблема на картинке. Отображается затемняющая маска и внизу видно кусок меню. И всё, меню не всплывает.

Добрый вечер,

Спасибо за тестовый случай. Мы проверим...

Posted
2 hours ago, x11 said:

Проблема на картинке. Отображается затемняющая маска и внизу видно кусок меню. И всё, меню не всплывает.

Кажется, у меню Items, пустой список!?

Posted

странно, я же добавлял три пункта

ок, завтра перепроверю

но в рабочем проекте точно есть три пунка

Posted

Перепроверил. В тестовом примере проблему пока что не могу воспроизвести.

Буду пытаться искать причину в основном проекте :sad:

Posted
56 minutes ago, x11 said:

Буду пытаться искать причину в основном проекте :sad:

Добрый день,

В основном проекте, сколько меню (tunimmenu)?

Posted

На этой форме листинга объектов есть одно меню.

Ещё есть одно меню на другой форме - на форме редактирования объектов. Эта форма редактирования объектов вызывается из формы листинга объектов. Неужели это как-то связано?

Screenshot_24.jpg

Posted

добавил перед popupMenu.Show строку:

ShowMessage(popupMenu.Items.Count.ToString)

 

всегда, даже во время проблемы вижу 3.

экран не затемняется, просто ничего не происходит.

Posted
Just now, x11 said:

всегда, даже во время проблемы вижу 3.

экран не затемняется, просто ничего не происходит.

А если попробовать оставить только одно меню?

Posted

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

 

и что дальше?

если хотите, могу дать удаленный доступ к ПК

Posted

Добавлю.

Форма листинга и форма редактирования являются унаследованными, но от разных форм. Не взаимосвязанны.

Posted

Мне кажется, я воспроизвел проблему.

1. Нужно привязать все меню и ActionList`ы на всех формах к TUniImageListAdapter и к TUniNativeImageList.

2. Нужно создавать форму не с помощью функции, с помощью конструктора create

  fmSelect2 := TfmSelect2.Create(UniApplication);
  fmSelect2.ShowModalN;

 

я склоняюсь ко второму варианту

fmmSelect1 создается с помощью функции, а вот fmSelect2 с помощью конструктора и в этом разница

function fmmSelect1: TfmmSelect1;
begin
  Result := TfmmSelect1(UniMainModule.GetFormInstance(TfmmSelect1));
end;

проект приложил: чтобы воспроизвести проблему, нажмите Войти, а на главной форме нажмите самую последнюю кнопку без иконки и откроется проблемная форма с двумя кнопками: Action1 и Action2. Нажмите любую кнопку (либо Action1, либо Action2), откроется нижнее меню, в нижнем меню есть три пункта, именно второй (средний) пункт воспроизводит проблему :

procedure TfmMenu.Action2Execute(Sender: TObject);
begin
  inherited;
  UnimMenu1.Visible := False;
  fmSelect2 := TfmSelect2.Create(UniApplication);
  fmSelect2.ShowModalN;
end;

откроется fmSelect2 и потом на форме fmSelect2 внизу нажмите любой пункт меню и fmSelect2 закроется, вы снова увидите форму с двумя кнопками, а теперь ещё раз нажмите Action1 или Action2 и меню уже не появится.

 

я думаю, что вот эта проблема тоже связана с текущей - т.е. нужно знать как правильно выполнять наследование и создавать унаследованные формы

 

UniGUI_Touch_Menu2.zip

 

Posted

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

function fmmSearchResults: TfmmSearchResults;
begin
  Result := TfmmSearchResults(UniMainModule.GetFormInstance(TfmmSearchResults));
end;

 

но проблема всё равно не ушла :(

т.е. пока что точно не могу выявить и воспроизвести проблему

Posted
18 hours ago, x11 said:

Мне кажется, я воспроизвел проблему.

@Sherzod вы не смотрели пример с проблемой в меню?

Posted
20 minutes ago, x11 said:

вы не смотрели пример с проблемой в меню?

Простите, нет еще. Я буду смотреть.

  • 2 weeks later...
  • 4 weeks later...

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