Вверх ↑
Этот топик читают: Гость
Ответов: 689
Рейтинг: 20
#31: 2006-06-30 14:00:33 ЛС | профиль | цитата
Ребят, давайте коснемся темы хоть чуть чуть. Нифига у меня не получается сделать как в "чистом" коде. Руки наверное кривые. Как только восстанавливаю все связи (слава богу теперь сделал так, чтобы форма висела все время проверки): все работает так как и должно работать, т.е. парралельно, но: на форме не виден ни один элемент. Поэтому несколько простых вопросов:

  • После чего должен обязательно выполняться Application, что-бы на дочерней форме было все видно?
  • Как, отказавшись от формы, вывести курсор Wait в начале работы по списку и убрать его в конце работы?
карма: 0

0
Ответов: 689
Рейтинг: 20
#32: 2006-07-01 13:35:56 ЛС | профиль | цитата
Galkov писал(а):
Дочерняя форма указана как модальная, но как модальная не работает

Доказательства. Поставь, пожалуйста, себе в труд ограничиться 10-ю элементами, демонстрирующими ЭТО.

Убрал все из своего же примера (всякие там циклы и прочее) - вот пример демонстрирующий 10-ю элементами что форма, обозначенная как модальная - как модальная не работает !
code_59

Я бы с удовольствием привел скриншот (не printscreen, а alt+printscreen) но правов нет
карма: 0

0
файлы: 1code_59.txt [1.3KB] [674]
Ответов: 8926
Рейтинг: 823
#33: 2006-07-01 13:39:56 ЛС | профиль | цитата
oldTV, а почему нужна отдельная форма, можно использовать сраницы? code_60
карма: 19

0
файлы: 1code_60.txt [3.6KB] [783]
Ответов: 689
Рейтинг: 20
#34: 2006-07-01 13:57:16 ЛС | профиль | цитата
Это неплохой вариант, я думаю... Спасибо Леонид. Но я не хотел бы, что-бы вторая страница с прогресс баром закрывала первую. Поэтому я сделал ее не в размер формы, а меньше, в тот размер, который был у моей страрой дочерней формы. И тут сразу стали видны закладки страниц. Почемуц они появляются тоже непонятно.

вот мой код (твой код с моей модификацией):
code_61
карма: 0

0
файлы: 1code_61.txt [3.6KB] [626]
Ответов: 8926
Рейтинг: 823
#35: 2006-07-01 14:08:41 ЛС | профиль | цитата
oldTV, выведите переключатель страниц за пределы формы с помощью отрицательных или очень больших положительных Left и Top.
карма: 19

0
Ответов: 689
Рейтинг: 20
#36: 2006-07-01 14:17:17 ЛС | профиль | цитата
Спасибо, Леонид: это точно нужно.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#37: 2006-07-01 14:38:53 ЛС | профиль | цитата
Леонид писал(а):
выведите переключатель страниц за пределы формы
"я балдею как ты ныряешь, зеленый..."
А нафига он там вообще

oldTV, это форма: code_62 модальная
карма: 9

0
файлы: 1code_62.txt [1.6KB] [700]
Ответов: 689
Рейтинг: 20
#38: 2006-07-01 14:50:33 ЛС | профиль | цитата
Спасибо за совет по поводу переключателя страниц, Galkov.

Да эта форма модальная, но она имеет кнопку Close. Я добавил элемент "Системное меню формы", где запрещаю выводить кнопку Close - и вот результат:
code_63
карма: 0

0
файлы: 1code_63.txt [2KB] [605]
Ответов: 3655
Рейтинг: 69
#39: 2006-07-01 14:57:15 ЛС | профиль | цитата
oldTV, А так не проще code_65
карма: 0

0
файлы: 1code_65.txt [1.7KB] [633]
Ответов: 689
Рейтинг: 20
#40: 2006-07-01 15:04:19 ЛС | профиль | цитата
Вроде де бы ничего сложного, но я добавил к этому коду немного своего и вот что из этого вышло.
Ты связал закрытие второй модальной формы напрямую, от условия до doClose. Я делаю это через WinTools (Операции над окнами Windows) и вот что из этого получается:
code_66
Да, модальная форма созданная таким элементом
Add(ChildFormEx,14349662,91,252)
{
}
BEGIN_SDK
Add(EditMultiEx,452557,3,3)
{
}
Add(MainForm,5465701,35,105)
{
Left=35
Top=105
}
END_SDK
закрывается, но она еще закрывает и основную форму. Вот и причина, почему я ее не использовал сразу. :shock:

[size=-2]------ Добавлено в 15:04
Вячеслав писал(а):
oldTV, А так не проще code_65

Нет, так не проще, я еще текст хочу вывести.

Вообще-то тема как то переметнулась от одной проблемы к другой. Я буду пробовать вариант Леонида (на работе, в понедельник), он мне кажется более безопасным, т.к. с формой у меня одни проблемы
карма: 0

0
файлы: 1code_66.txt [2.2KB] [710]
Ответов: 9906
Рейтинг: 351
#41: 2006-07-01 15:34:28 ЛС | профиль | цитата
oldTV писал(а):
но она еще закрывает и основную форму

Это глюк WinTools. Мне всегда казалось, что doClose должен посылать WM_CLOSE, а не WM_QUIT
И никакого отношения к формам не имеет.
Это о надежности, кстати

А если запретить закрытие модальной формы, то проще, на самом деле так: code_67 , и никакого отношения к желанию дополнительно вывести текст не имеет.
Хотя, запрет досрочного прекращения "... чего то очень длинного" - это новое, конечно, слово в пользовательском интерфейсе.

oldTV писал(а):
т.к. с формой у меня одни проблемы

форма-то чем провинилась
карма: 9

0
файлы: 1code_67.txt [1.4KB] [691]
Ответов: 3655
Рейтинг: 69
#42: 2006-07-01 16:16:50 ЛС | профиль | цитата
oldTV, Сделай конкретную постановку задачи.
То тебе ненадо Close то какой то текст надо вы вести Куда вывести code_68
карма: 0

0
файлы: 1code_68.txt [1.7KB] [655]
Ответов: 689
Рейтинг: 20
#43: 2006-07-01 19:11:52 ЛС | профиль | цитата
Вячеслав, все нормально, извини что сразу не пояснил.
Я хочу это:
после нажатия на кнопку отобразить дочернюю форму с имеющейся на ней прогресс баром и показывать пополнение таблицы строк. Для отладки и теста составил вот такое приложеньице: [url=www.hiasm.hexshock.com/xf/load.php?a=3853]code_45[/url]. Эту проблему разрешил Dilma и Tad, вот в этом коде. code_70 , он полностью меня устраивает: Dilma рекомендует [url=www.hiasm.hexshock.com/wiki.php?wiki=Application]Application[/url] и в коде используется цикл. Но у меня, на большом проекте не работает. Я стал разбираться почему и обнаружил небольшой глучок с модальностью. Сейчас Galkov подсказал как этот глючок убрать: использовать вот такую модальную форму
Add(ChildFormEx,14349662,91,252)
{
}
BEGIN_SDK
Add(EditMultiEx,452557,3,3)
{
}
Add(MainForm,5465701,35,105)
{
Left=35
Top=105
}
END_SDK
, отказаться от WinTools, и запрещать только системное меню формы, а не все подряд. В свою очередь Леонид предложил вообще отказаться от формы и использовать панели. Это тоже интересное решение и я его попробую в понедельник.
Это было первое что я хочу. Вот второе:

  • После чего должен обязательно выполняться Application, что-бы на дочерней форме было все видно?
  • Как, отказавшись от формы, вывести курсор Wait в начале работы по списку и убрать его в конце работы?

Предлагаемое тобой решение, в коде code_49, я не стал использовать потому что:
Использование потоков в таких случаях спасет ситуацию, но оно не будет эффективным. Например, ваша программа открывает большой файл и, зная, что на это уйдет некоторое время, вы выводите табличку с надписью: "Ждите...". Однако надпись может и не успеть отрисоваться, тогда и нужно вызвать один раз метод doProcessMessages, а затем спокойно открывать файл. Совершенно очевидно, что использование отдельного потока в данном примере только усложнит программу и увеличит время для загрузки файла.
Вот у меня такая точно ситуация: программа проверяет большой список компьютеров, попросту их пингует, результаты пинга записывает в таблицу строк. Когда компьютеров мало - этот процесс проходит быстро, а когда много (я поэтому и проверяю на работе, по большому, 100 позиционнуму списку) процесс идет медленно, т.к. время затраченное компонентом на получение отрицательного результата (т.е. когда компа нет в сети, он выключен к примеру) значительное и притормаживает весь процесс). Вот поэтому мне кажется использование Application предпочтительнее чем потоки, предложенные тобой.

По поводу вины формы, извините, моя лирика. Ни в чем она не провинялась. Просто не могу никак заставить с этой формой корректно работать приложение, вот и злюсь. Проект большой и те куски кода, которые описаны выше - это не мое приложение, а только малая толика. Вроде бы восстанавливаю все связи - как и в "чистом" коде (который работает, я уже говорил, так как надо) все равно форма в моем приложении не отображается. Вернее не отображается все, кроме заголовка формы. Не виден бар, текст на форме, кнопка "Отмена". А ведь это последнее из крупных недоработок. Остальные недоработки мелкие, они позволят выпустить приложение и с ними (ну например нет реакции если ничего не ввести в поле "Время между проверками"). Я начал этот вопрос еще в старом форуме поднимать, но не добил...
карма: 0

0
файлы: 1code_70.txt [3.5KB] [565]
Ответов: 9906
Рейтинг: 351
#44: 2006-07-01 19:22:57 ЛС | профиль | цитата
oldTV писал(а):
Я стал разбираться почему и обнаружил небольшой глучок с модальностью

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

0
Ответов: 689
Рейтинг: 20
#45: 2006-07-01 19:26:33 ЛС | профиль | цитата
А как это называется? Поясни, если не трудно. Я в следующий раз выберу нужные слова. Даже не так: каждый раз, когда другие будут про это же спрашивать и я буду отвечать теми словами, которым ты меня научишь.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)