Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #31  
Старый 21.02.2013, 08:56
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Да не нужен мне слип! Мне нало чтобы пользователь сам "сказал" второрй форме закончить работу! Как это сделать??
Ответить с цитированием
  #32  
Старый 21.02.2013, 10:42
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от lostbananan
Да не нужен мне слип! Мне нало чтобы пользователь сам "сказал" второрй форме закончить работу! Как это сделать??

Sleep нужен для того, что бы передать ресурсы другому приложению. Обрати внимание на значение, передаваемое в sleep - 0.1 сек. Фактически, это цикл, пока пользователь не чекнет галку.

ЗЫ. А если не понимаешь как работает многозадачная операционка, так что лезешь в программирование?
Ответить с цитированием
  #33  
Старый 21.02.2013, 22:19
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Может я чего-то и недопонимаю но код :
Код:
  with TForm2.Create(nil) do
    begin
       Show;
       Update;
       While not CheckBox1.Checked Do sleep(100);
     Free;
    end;
приводит к тому что приложение тупо зависает и ни чекбокс выбрать ничего нельзя сделать...
Что не так?
И как мне сделать чтобы из формы2 можно было выйти стандартно как в любом виндовс приложении. Заранее неизвестно сколько времени йформа2 будет активной, к тому же на форме два будут происходить всякие изменения !...
Тоесть форма 2 должнра быть полнофункциональным виндовз приложением! А при использованрии слиип - все приложение зависает!

Последний раз редактировалось lostbananan, 21.02.2013 в 22:23.
Ответить с цитированием
  #34  
Старый 21.02.2013, 22:21
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

ShowModal для кого сделан?

Объяснять как использовать?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #35  
Старый 21.02.2013, 22:27
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Т.е вместо show ShowModal использовать?
Ответить с цитированием
  #36  
Старый 21.02.2013, 22:30
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

да
и цикл со слипом больше не нужен будет.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #37  
Старый 21.02.2013, 22:35
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Если использовать такой код:
Код:
with TForm2.Create(nil) do
    begin
       ShowModal;
       Update;
{       While not CheckBox1.Checked Do sleep(100);}
     Free;
    end;
то вторая форма - ее практически невидно, просто приложение закрывается
Что и как здесь нетак?
Ответить с цитированием
  #38  
Старый 21.02.2013, 22:38
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Обратись в раздел "работа", пусть лучше за тебя сделают, у тебя чудеса какие-то творятся, элементарные вещи не реализуются.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #39  
Старый 21.02.2013, 22:43
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Да нет - я хочу сам написать... Писалд я на дельи в последний раз лет 10 назад многое подзабыл. Так все ж таки что неправильно в коде?
Кто знает что здесь нетак - помогите разобраться!

Последний раз редактировалось lostbananan, 21.02.2013 в 22:50.
Ответить с цитированием
  #40  
Старый 21.02.2013, 23:21
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Кто-нибудь помогите - подскажите!!!! ПОЖАЛУЙСТА!!!
Ответить с цитированием
  #41  
Старый 21.02.2013, 23:36
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

В конце-концов если сам не разбирусь или мне никто не подскажет обойду эту проблему так:
Код:
WinExec('ххх.exe',SW_SHOWNORMAL)
Ответить с цитированием
  #42  
Старый 22.02.2013, 07:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
да
и цикл со слипом больше не нужен будет.

Не, не прокатит, т.к. главная процедура обработки сообщений уже не существует. Тут как раз и проблема, что надо показать интерактивную форму, но уже нет процессора сообщений.

Если вариант скрывать главную форму и в ее обработчике OnClose модально показывать свою форму закрытия. В OnClose приложение все еще работает.
Ответить с цитированием
  #43  
Старый 22.02.2013, 08:29
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от lmikle
Если вариант скрывать главную форму и в ее обработчике OnClose модально показывать свою форму закрытия. В OnClose приложение все еще работает.
Тоже хотел предложить такой вариант, но хрен пойми что ТС хочет.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #44  
Старый 22.02.2013, 08:40
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

ты наверное меныя неправильно понял.
Главное окно закрылось и мне нужно чтобы второе окно - было нормлаьным приложением. ТАк и получилось
Ответить с цитированием
  #45  
Старый 22.02.2013, 09:00
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
program foo;
uses
  forms,
  form1 in '...', 
  form2 in '...';

begin
  with TForm1.create(nil) do
    try
      showmodal;
    finally
      free;
    end;

  with TForm2.create(nil) do
    try
      showmodal;
    finally
      free;
    end;
end.

Правда косячить будет при сворачивании окна ибо овнера у окон нет.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:15.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter