1

Тема: Помилка при закриванні програми

Програмку написав, скомпілював та при виході з програми випливає повідомлення з такою помилкою:
Cannot change Visible in OnShow or OnHige
Після закриття повідомлення можна закрити програму.
Пробував перевести в гуглі ( Неможливо змінити видиме в OnShow або OnHige) та це нічого не дає,
бо не все переводиться.

Хто стикався з таким підскажіть як вирішити помилку????

2 Востаннє редагувалося HetmanNet (06.12.2015 21:02:55)

Re: Помилка при закриванні програми

Romanvolja написав:

Програмку написав, скомпілював та при виході з програми випливає повідомлення з такою помилкою:
Cannot change Visible in OnShow or OnHige
Після закриття повідомлення можна закрити програму.
Пробував перевести в гуглі ( Неможливо змінити видиме в OnShow або OnHige) та це нічого не дає,
бо не все переводиться.

Хто стикався з таким підскажіть як вирішити помилку????

По перше, бажано у заголовку теми на початку вказати [Delphi] бо ми не нострадамуси.
По друге, пробачте за грубість, але процитую:

HetmanNet написав:

Вангую.. вангую.. хуйню чую... коду не бачу.. тож хрін знає що передбачу...

Подякували: koala1

3

Re: Помилка при закриванні програми

Cannot change Visible in OnShow or OnHige

Це говорить о спробах показати контрол на формі, тоді, коли сама форма ще не готова до показу. Я часто такі викрутаси у чужому коді бачу.

Подякували: Romanvolja1

4 Востаннє редагувалося КиївОболонь (06.12.2015 23:35:08)

Re: Помилка при закриванні програми

Romanvolja написав:

OnHige

Випадково не OnHide?

5

Re: Помилка при закриванні програми

Romanvolja
Перевірте звертання до властивості Visible форми та компонентів.

Подякували: Romanvolja1

6

Re: Помилка при закриванні програми

КиївОболонь написав:
Romanvolja написав:

OnHige

Випадково не OnHide?

Так Ви праві, я помилився,  дякую.

Подякували: КиївОболонь1

7

Re: Помилка при закриванні програми

HetmanNet написав:
Romanvolja написав:

Програмку написав, скомпілював та при виході з програми випливає повідомлення з такою помилкою:
Cannot change Visible in OnShow or OnHige
Після закриття повідомлення можна закрити програму.
Пробував перевести в гуглі ( Неможливо змінити видиме в OnShow або OnHige) та це нічого не дає,
бо не все переводиться.

Хто стикався з таким підскажіть як вирішити помилку????

По перше, бажано у заголовку теми на початку вказати [Delphi] бо ми не нострадамуси.
По друге, пробачте за грубість, але процитую:

HetmanNet написав:

Вангую.. вангую.. хуйню чую... коду не бачу.. тож хрін знає що передбачу...

Тема створена в рубриці Pascal/Delphi....   (так що явно не йдеться про Java чи іншу мову)
Якби знав в якій частині коду помилка я б вказав, а кидати весь код з шести форм недоцільно, надто великий.

Хочеться бачити українців, культурою та вихованою нацією, так що в подальшому будьласка не вживайте таких слів. & Це Вам не личить.

8

Re: Помилка при закриванні програми

Romanvolja написав:

Програмку написав, скомпілював та при виході з програми випливає повідомлення з такою помилкою:
Cannot change Visible in OnShow or OnHige
Після закриття повідомлення можна закрити програму.
Пробував перевести в гуглі ( Неможливо змінити видиме в OnShow або OnHige) та це нічого не дає,
бо не все переводиться.

Хто стикався з таким підскажіть як вирішити помилку????

   Помилку знайшов дякуючи пораді Itari:

При відкритті додатку, щоби автоматично відкрити другу форму, я застосував таку процедуру:

procedure TForm1.FormActivate(Sender: TObject);
begin
   Form2.Show;
end;

А при закритті другої форми, щоби закрити програму я застосував наступну процедуру:

procedure TForm2.FormClose(Sender: TObject;var Action: TCloseAction);
begin
   Form1.Close;
end;

Через неправильно вибрану подію FormActivate зявляється повідомлення:
Cannot change Visible in OnShow or OnHige.

Хто підкаже, яку подію краще вибрати для першої процедури ???

І ще одне для закриття програми, що буде краще Close чи Halt

9

Re: Помилка при закриванні програми

Хто підкаже, яку подію краще вибрати для першої процедури ?

А коли саме треба показувати другу форму? коли головна форма з'являється на єкрані, чи коли на неї у процесі праці перемикае користувач фокус?

для закриття програми, що буде краще Close чи Halt

Halt це саме як викинути за допомогою Диспетчера завдань. Ну майже так... Тож ця команда для віконних ПЗ - скоріш варварство. Close саме найдійне буде, якщо у тебе не крутяться закляклі треади.

10

Re: Помилка при закриванні програми

Itari написав:

Хто підкаже, яку подію краще вибрати для першої процедури ?

А коли саме треба показувати другу форму? коли головна форма з'являється на єкрані, чи коли на неї у процесі праці перемикае користувач фокус?

для закриття програми, що буде краще Close чи Halt

Halt це саме як викинути за допомогою Диспетчера завдань. Ну майже так... Тож ця команда для віконних ПЗ - скоріш варварство. Close саме найдійне буде, якщо у тебе не крутяться закляклі треади.


Першу форму використовую при запуску програми, (як інформаційну) а друга і є сама програма. (при відкритті другої я першу приховую).
Потрібно щоби друга форма зявилася після того як зявиться перша форма.

11

Re: Помилка при закриванні програми

Я б на твоєму місці другу форму віпхав би з списку тих, що створюються автоматично (те, що формує Application.CreateForm(TForm2, Form2); у головному модулі).
А в OnShow Першої приписав би так:

procedure TForm1.FormShow(Sender: TObject);
begin
  with TForm2.Create(nil) do begin
    Show;
    BringToFront;//Тут я не впевен, можливо доведеться дещо інще робити щоб показати поверх
  end;
end; 

Друга форма же хай має таке:

procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
     CloseAction:=caFree;
end; 

12

Re: Помилка при закриванні програми

Зазвичай оту першу інформаційну форму ручками в DPR створюють і показують, а основна форма так і лишається нормальною основною формою. Пошукайте в інтернеті "delphi splash screen".

13

Re: Помилка при закриванні програми

Torbins написав:

Зазвичай оту першу інформаційну форму ручками в DPR створюють і показують, а основна форма так і лишається нормальною основною формою. Пошукайте в інтернеті "delphi splash screen".

Та й інформаційна форма в основному йде не як звичайна, а як AboutBox. А ще можна таймер поставити, щоб цей ебаутбокс сам через деякий час показався. Хоча доцільніше зробити кнопку (або пункт головного меню), яка б викликала цю додаткову форму

14 Востаннє редагувалося shabaranskij (19.12.2015 15:58:46)

Re: Помилка при закриванні програми

Application.Terminate;

Жорсткий спосіб закриття програми.

15

Re: Помилка при закриванні програми

shabaranskij написав:
Appliaction.Terminate;

Жорсткий спосіб закриття програми.

Тільки не Appliaction, а Application

16

Re: Помилка при закриванні програми

КиївОболонь написав:
shabaranskij написав:
Appliaction.Terminate;

Жорсткий спосіб закриття програми.

Тільки не Appliaction, а Application

дякую за виправлення. Я деколи  коли пишу повідомлення випадково можу поміняти букви місцями)))