Ошибка cannot make a visible window modal

 
Fynjy
 
(2008-09-23 09:40)
[0]

Доброе утро! У меня есть форма с разными компанентами расположенными на двух панелях. Я сделал вот что: Вырезал эти  панели из формы, вставил в неё  PageControl, с двума листами на первый я поместил эти панели, а на второй фрейм, с кодом никаких изменений не проводил, что касается фрейма, то это пока просто набор компанентов(без описяния и реализации каких — либо процедур); Запускаю прогу вызываю это окно(модальное). но вылетает ошибка, что-то вроде: не может показать модально невидимое или недоступное окно, и Cannot  make a visible window modal. кто — нить подскажет что делать?


 
Сергей М. ©
 
(2008-09-23 09:43)
[1]


> что делать?

На момент вызова метода ShowModal свойство Visible этой формы должно быть равным False.


 
Fynjy
 
(2008-09-23 09:49)
[2]


> На момент вызова метода ShowModal свойство Visible этой
> формы должно быть равным False.

Форму теперь показывает, но только после сообщения об ошибке:
Cannot focus a disabled or invisible window!


 
Поросенок Винни-Пух ©
 
(2008-09-23 09:56)
[3]

не надо было ее делать MDIChild


 
Сергей М. ©
 
(2008-09-23 10:02)
[4]


> Fynjy

Форму со стилем fsMDIChild показать модально

нельзя

.


 
Fynjy
 
(2008-09-23 10:07)
[5]


> Форму со стилем fsMDIChild показать модально нельзя.

Да я  зняю, но она у меня fsNormal, но ошибка через раз все равно вываливает. И тут же вопрос как сделать fsMDIChild окно и чтоб без косяков?


 
Anatoly Podgoretsky ©
 
(2008-09-23 10:09)
[6]


> Cannot focus a disabled or invisible window!

Теперь ты пытаешься установить фокус на невидимое окно, а это не возможно.


 
Сергей М. ©
 
(2008-09-23 10:12)
[7]


> она у меня fsNormal

Cказка про белого бычка) ..

см. [1]


> как сделать fsMDIChild окно и чтоб без косяков?

см. [4]


 
Fynjy
 
(2008-09-23 10:19)
[8]


> см. [4]

да это я понимаю, но может её показать не модально, как — нить?


 
Рамиль ©
 
(2008-09-23 10:23)
[9]

fsMDIChild можно сделать для пользователя как бы модальным (только результат придется возвращать через SendMessage), задизейблив все остальные окна, но только обязательно через try finally, иначе рискуешь остаться с одним окном:)


 
Сергей М. ©
 
(2008-09-23 10:26)
[10]


> может её показать не модально, как — нить?

Немодально — это метод Show.

Но MDIChild-форма не требует вызова этого метода — она

всегда

немодально видима  после создания и скрыть ее нельзя.


 
Fynjy
 
(2008-09-23 10:35)
[11]

Спасибо всем!


 
Anatoly Podgoretsky ©
 
(2008-09-23 13:12)
[12]

> Рамиль  (23.09.2008 10:23:09)  [9]

с одним Зависшим окном:)


Че это?)

1 / 0 / 2

Регистрация: 03.10.2017

Сообщений: 140

1

05.04.2019, 22:11. Показов 2632. Ответов 12


Студворк — интернет-сервис помощи студентам

Здравствуйте, вылазит эта ошибка, я уже пробовал многое, но не помогло. Помогите пожалуйста, а то я уже готов сдаться и идти делать это на хтмл…

Кликните здесь для просмотра всего текста

 Комментарий модератора 
Ссылка удалена согласно правилам форума, п. 4.11

архив проекта — см. пост #7

Добавлено через 22 минуты
Извините что тип кидаю на сделайте, просто уже безвыходная ситуация.. и еще если не затруднит подскажите как можно исправить увеличение шрифта нормально ибо там текст съедает когда по фонту увеличиваешь..



0



5607 / 4381 / 1396

Регистрация: 14.04.2014

Сообщений: 19,585

Записей в блоге: 19

06.04.2019, 08:49

2

Лучший ответ Сообщение было отмечено eraplay как решение

Решение

вот про то как работать с формами
https://www.cyberforum.ru/blog… g4873.html

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

и 100500 раз повторю — для тех кому лень переименовать компоненты из Form1 Form2 в MainForm UserDialogForm и т.п. — в аду стоит отдельный котел.
ну никто не должен за вас разбираться, что должно вводиться и где находится Edit1 и что написано на Button5…



2



eraplay

Че это?)

1 / 0 / 2

Регистрация: 03.10.2017

Сообщений: 140

06.04.2019, 13:15

 [ТС]

3

Цитата
Сообщение от krapotkin
Посмотреть сообщение

вот про то как работать с формами
https://www.cyberforum.ru/blog… g4873.html

какая у вас среда разработки? я делаю на рад-е. Если это имеет значение..

Цитата
Сообщение от krapotkin
Посмотреть сообщение

а вопрос про увеличенные шрифты не так прост
в общем случае ответ ясен — делайте побольше элементы, чтобы текст входил

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

Цитата
Сообщение от krapotkin
Посмотреть сообщение

а если что-то конкретное — задавайте конкретные вопросы

Хотел добавить анимацию на панели, но я плохой программист((

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
i:=i+1;
{if form3.Visible=true then
begin
timer1.Enabled:=false;
end; }
if i=1 then
begin
  panel1.BevelOuter:=bvLowered;
end;
if i=2 then
begin
  form3.Show;
end
else
panel1.BevelOuter:=bvRaised;
timer1.Enabled:=false;
end;

естественно в онклик панели таймер енэйблед.

Цитата
Сообщение от krapotkin
Посмотреть сообщение

и 100500 раз повторю — для тех кому лень переименовать компоненты из Form1 Form2 в MainForm UserDialogForm и т.п. — в аду стоит отдельный котел.

ой извините пожалуйста, я вчера просто слишком уставший был и забыл… там форма 2 загрузочный экран, форма1 мэйнформ, остальные страницы с текстом. едиты это шрифт, кнопка это назад, а панельки переход на страницы.. вродь все прост..
и да. я же создавал через рад(форму) как может быть ошибка в созданий формы… я уже убрал все шоумодалыы и поставил прост шоу. И плохо то что у нас разные часовые пояса ибо вы единственный кто ответил.. И Спасибо вам огромное



0



5607 / 4381 / 1396

Регистрация: 14.04.2014

Сообщений: 19,585

Записей в блоге: 19

06.04.2019, 18:40

4

Цитата
Сообщение от eraplay
Посмотреть сообщение

var i:integer;
begin
i:=i+1;

подтяните знания про области видимости переменных
переменная i — локальная, следовательно создается заново каждый раз при входе в процедуру
мало того, в ней изначально какой-то мусор, к которому вы добавляете единичку.
если хотите, чтобы значение переменной сохранялось, сделайте ее полем формы
и уж точно не I назовите, ага?



1



Че это?)

1 / 0 / 2

Регистрация: 03.10.2017

Сообщений: 140

07.04.2019, 00:22

 [ТС]

5

Спасибо за ответ и полезный совет, я об этом даже не думал… но я уже решил проблему создав отдельную процедуру слип и вставляя его меж строк.

Добавлено через 29 секунд
А насчет основной проблмы пока не понятно



0



Нарушитель

8722 / 4706 / 1086

Регистрация: 12.03.2015

Сообщений: 22,103

07.04.2019, 01:32

6

Сначала хотел скачать проект и посмотреть, но потом почитал коменты и кааааааааааааак передууууууумал!…
———
Про котёл — категорически согласен. Первое, что делаю после того, как кладу компонент на форму — переименовываю его. Это уже на автомате, рефлекс, как у собаки Павлова.



0



Модератор

8685 / 5734 / 2306

Регистрация: 21.01.2014

Сообщений: 24,572

Записей в блоге: 3

07.04.2019, 19:15

7

Цитата
Сообщение от Verevkin
Посмотреть сообщение

и кааааааааааааак передууууууумал!

И многие другие передумают это качать
1. Неизвестно откуда (хотя Правила форума однозначно указывают на то, что архивы проектов надо загружать на форум)
2. Неизвестно сколько Мб… eraplay, сравните размер своего архива (ссылку на который я удалил, как нарушение правил) и размер того, который перезалил я, выкинув из него всякую шнягу… Есть разница?



1



Че это?)

1 / 0 / 2

Регистрация: 03.10.2017

Сообщений: 140

10.04.2019, 01:37

 [ТС]

8

да, но 10мб разве играют роли?



0



пофигист широкого профиля

4681 / 3117 / 857

Регистрация: 15.07.2013

Сообщений: 17,967

10.04.2019, 02:32

9

Цитата
Сообщение от eraplay
Посмотреть сообщение

да, но 10мб разве играют роли?

Мегабайты сами по себе никакой роли не играют. Но архив проекта крайне желательно освободить от мусора. Вы же просите бесплатной помощи.



0



Че это?)

1 / 0 / 2

Регистрация: 03.10.2017

Сообщений: 140

10.04.2019, 02:37

 [ТС]

10

Цитата
Сообщение от northener
Посмотреть сообщение

Мегабайты сами по себе никакой роли не играют. Но архив проекта крайне желательно освободить от мусора. Вы же просите бесплатной помощи.

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



0



пофигист широкого профиля

4681 / 3117 / 857

Регистрация: 15.07.2013

Сообщений: 17,967

10.04.2019, 02:49

11

eraplay, лично я понимаю вашу ситуацию. И ни в чём вас не упрекаю. Но возникает вопрос — а нафига вам это нужно?



0



Че это?)

1 / 0 / 2

Регистрация: 03.10.2017

Сообщений: 140

10.04.2019, 03:55

 [ТС]

12

А нафига нужно вообще помогать? Я часто сижу на форумах, в темах которых я разбираюсь, и отвечаю всем кому могу, но у вас тут своя.. странная атмосфера. Я не упрекаю вас,



0



5607 / 4381 / 1396

Регистрация: 14.04.2014

Сообщений: 19,585

Записей в блоге: 19

10.04.2019, 05:05

13

ответ на вопрос темы «Cannot make a visible window modal» дан в первом же посте
а далее мы все позволили себе немного просто потрындеть…
так что атмосфера и нам кажется немного странной )



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

10.04.2019, 05:05

13

Someone showed me that there was just one small key that I didn’t do. The code:

Note that ResultForm may be declared as an global variable of TResultForm or as a local variable. Not yet sure if a difference arrises later though.

procedure TMainForm.Button1Click(Sender: TObject);
begin
  ResultsForm := TResultForm.Create(self);
  try
    ResultsForm.ShowModal;
  finally
    ResultsForm.Free;
  end;
end;

for dynamically creating a new form is sound but one should take care to note that the dynamically created form MUST HAVE ITS VISIBILITY SET TO FALSE. Else an error like:

‘Cannot make a visible window modal.’

will appear.

Probably seems very logical, hopefully nobody else makes this same stupid mistake!

Error message on opening a file with results

Your request has caused the following error : Cannot make a visible window modal , followed by

Your request has caused the following error : Attempt to read or write protected memory This is often an indication that other memory is corrupt.

Solution

  1. Close Diamonds (use Task Manager if necessary)
  2. Using Windows Explorer, go to the location where the file you want to open, is saved
  3. Delete the folder {myfilename}_bsr. Replace {myfilename} withe the real file name
  4. Open the file again

Опытный
**

Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2

Код

procedure TfrmBooks.Button7Click(Sender: TObject);
var
  result: integer;
begin
  try
    frmSearchBook := TfrmSearchBook.Create(Application);
    frmSearchBook.ShowModal;
  finally
    frmSearchBook.Free;
  end;
end;

frmSearchBook.Visible := false; это я просто поставил, когда он мне эту ошибку вывел, так то полностью код показан выше. Фишка в том, что у меня много других окон, которые я показываю по данному принципу и все работает, вот на этом заглохло. Может быть это из-за того что на всех компонентах при загрузке (кроме CheckBox’ов) стоит Enabled := false?

Добавлено через 1 минуту и 50 секунд
Все понятно, случайно на форме поставил Enabled := false.  smile

Понравилась статья? Поделить с друзьями:
  • Ошибка can not be run twice казаки 3
  • Ошибка can шины опель астра
  • Ошибка cannot locate the dvd rom
  • Ошибка call of duty black ops 887a005
  • Ошибка can mercedes