Вверх ↑
Этот топик читают: Гость
Ответов: 704
Рейтинг: 7
#1: 2013-12-20 01:48:56 ЛС | профиль | цитата
Подскажите что здесь не так? На Вин ХП (7 не проверял) запуске этого происходит блокировка формы:
code_32640.txt
Воспроизвести так: нажимает кнопку, и при открытой форме дочерней выбираем вкладку 2, а потом закрываем дочернюю - получаем заблокированную основную форму...
карма: 0

0
файлы: 1code_32640.txt [456B] [264]
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26061
Рейтинг: 2120
#2: 2013-12-20 02:24:26 ЛС | профиль | цитата
Neo писал(а):
Подскажите что здесь не так?

Попробуй прменить динамическую форму с уничтожением

Add(MainForm,14330442,413,273)
{
MouseCapture=0
}
Add(Button,12156273,483,231)
{
Left=15
Top=25
link(onClick,14552398:##add,[(550,237)(550,272)])
}
Add(TabControl,16410121,483,322)
{
Left=105
Top=45
Tabs=#1:1|1:2|
Bitmaps=[]
link(onChange,3601862:doWork3,[(543,328)])
}
Add(ChildFormEx,14552398,560,266)
{
Mode=1
link(onClose,3583513:doDeferredEvent,[(599,272)(599,223)(473,223)(473,279)])
}
BEGIN_SDK
Add(EditMultiEx,3594294,21,21)
{
WorkCount=#5:##add|7:##clear|
EventCount=#7:onClose|
Point(##add)
Point(##clear)
link(##add,7416682:doVisible,[(60,27)(60,139)])
}
Add(MainForm,7416682,105,105)
{
Left=35
Top=105
Visible=1
Point(doVisible)
Point(Close)
link(Close,11198405:GetData,[])
}
Add(EventFromData,11198405,105,49)
{
link(onEvent,3594294:onClose,[(144,55)(144,27)])
}
END_SDK
Add(DeferredEvent,3583513,483,273)
{
link(onDeferredEvent,3601862:doWork2,[])
}
Add(HubEx,3601862,539,273)
{
link(onEvent,14552398:##clear,[])
}

карма: 22

0
Ответов: 704
Рейтинг: 7
#3: 2013-12-20 02:44:20 ЛС | профиль | цитата
nesco, спасибо, это интересное решение, но убирается и сама форма. хотелось бы чтоб она осталась при переключении вкладок. идея в том чтоб смотреть инфо на вкладках и в любой момент безболезненно закрыть окно. пока это и с EX окном так же отрабатывает.
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#4: 2013-12-20 03:02:36 ЛС | профиль | цитата
Neo писал(а):
хотелось бы чтоб она осталась при переключении вкладок

Похоже, что происходит какой-то глухой перехват сообщений контроллером страниц, и как от этого избавиться, сказать на скорую руку довольно сложно
карма: 22

0
Ответов: 704
Рейтинг: 7
#5: 2013-12-20 03:20:17 ЛС | профиль | цитата
Win7 с теми же граблями
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2013-12-20 03:21:11 ЛС | профиль | цитата
Вот так вроде работает, но подмаргивает

Add(MainForm,14330442,532,329)
{
MouseCapture=0
Point(Handle)
Point(onKillFocus)
Point(onMouseDown)
Point(doSetFocus)
}
Add(Button,12156273,392,266)
{
Left=15
Top=25
link(onClick,8901872:doWork2,[])
}
Add(TabControl,16410121,392,315)
{
Left=105
Top=45
Tabs=#1:1|1:2|
Bitmaps=[]
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,16394424:doWork2,[(431,328)(431,279)])
link(onMouseUp,3583513:doDeferredEvent,[])
}
Add(DeferredEvent,3583513,441,329)
{
link(onDeferredEvent,2609437:doEvent1,[])
}
Add(HubEx,8901872,504,266)
{
link(onEvent,16394424:doWork1,[])
}
Add(ChildForm,16394424,532,266)
{
}
BEGIN_SDK
Add(EditMulti,12671705,21,21)
{
WorkCount=2
link(doWork1,8288651:doVisible,[(67,27)(67,132)])
link(doWork2,8288651:doClose,[(60,34)(60,125)])
}
Add(MainForm,8288651,77,98)
{
Left=35
Top=105
Visible=1
Point(doVisible)
}
END_SDK
Add(Hub,2609437,483,329)
{
link(onEvent1,8901872:doWork3,[(508,335)])
link(onEvent2,14330442:doSetFocus,[(522,342)(522,363)])
}

карма: 22

0
Ответов: 704
Рейтинг: 7
#7: 2013-12-20 03:24:07 ЛС | профиль | цитата
nesco, и не только моргает - теперь и закрыть не выходит. При переключении вкладок "снова здравствуйте!" ))
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2013-12-20 03:48:26 ЛС | профиль | цитата
Вот так вроде у меня не моргает и закрывается все нормально.

Add(MainForm,14330442,588,322)
{
MouseCapture=0
Point(Handle)
Point(onKillFocus)
Point(onMouseDown)
Point(doSetFocus)
}
Add(Button,12156273,294,161)
{
Left=15
Top=25
link(onClick,1250014:doEvent,[])
}
Add(TabControl,16410121,329,322)
{
Left=105
Top=45
Tabs=#1:1|1:2|
Bitmaps=[]
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,8913840:doEvent1,[(368,335)(368,251)])
link(onMouseUp,3583513:doDeferredEvent,[])
}
Add(DeferredEvent,3583513,385,336)
{
link(onDeferredEvent,2609437:doEvent1,[])
}
Add(Hub,2609437,434,336)
{
OutCount=3
link(onEvent1,1716787:doWork2,[(459,342)(459,279)])
link(onEvent2,11293718:doEvent,[(466,349)(466,321)])
link(onEvent3,14330442:doSetFocus,[])
}
Add(SendMessage,16199774,588,266)
{
Message=4
link(Handle,11119975:Handle,[])
}
Add(Hub,8913840,413,245)
{
link(onEvent1,1716787:doWork1,[(438,251)(438,272)])
link(onEvent2,11119975:hide,[(445,258)(445,188)])
}
Add(ChanelToIndex,1716787,469,266)
{
link(onIndex,16199774:doSendMessage,[])
}
Add(ChildFormEx,11119975,588,161)
{
Mode=1
link(onEvent,11000450:doDeferredEvent,[])
}
BEGIN_SDK
Add(EditMultiEx,10053687,21,21)
{
WorkCount=#5:##add|7:##clear|7:visible|4:hide|
EventCount=#7:onEvent|
VarCount=#6:Handle|
Point(##add)
Point(##clear)
link(##add,16088983:doWork1,[(74,27)])
link(visible,16088983:doWork2,[])
link(hide,2328798:doWork1,[(88,48)(88,118)])
link(Handle,7403987:Handle,[(27,159)(160,159)])
}
Add(MainForm,7403987,154,84)
{
Left=35
Top=105
Visible=1
Point(doVisible)
Point(Close)
Point(Handle)
link(Close,12173419:GetData,[])
}
Add(ChanelToIndex,2328798,98,112)
{
link(onIndex,7403987:doVisible,[])
}
Add(HubEx,16088983,70,35)
{
Angle=1
link(onEvent,2328798:doWork2,[(74,125)])
}
Add(EventFromData,12173419,154,35)
{
link(onEvent,10053687:onEvent,[(193,41)(193,27)])
}
END_SDK
Add(Switch,4454115,385,98)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
Point(doOn)
}
Add(IndexToChanel,1250014,385,161)
{
Point(Index)
link(onEvent1,13330681:doEvent1,[])
link(Index,1457158:Var2,[])
}
Add(Hub,13330681,434,161)
{
link(onEvent1,11119975:##add,[])
link(onEvent2,4454115:doOn,[(459,174)(459,153)(375,153)(375,118)])
}
Add(DeferredEvent,11000450,644,161)
{
link(onDeferredEvent,15855940:doEvent1,[])
}
Add(Hub,15855940,700,161)
{
link(onEvent1,11119975:##clear,[(725,167)(725,153)(578,153)(578,174)])
link(onEvent2,4454115:doReset,[(732,174)(732,90)(375,90)(375,111)])
}
Add(IndexToChanel,11293718,511,315)
{
Point(Index)
link(onEvent2,11119975:visible,[(550,328)(550,181)])
link(Index,1457158:Var3,[(517,138)])
}
Add(GetDataEx,1457158,385,133)
{
link(Data,4454115:State,[])
}



Но че-то очень намучено все получилось
карма: 22

0
Ответов: 9906
Рейтинг: 351
#9: 2013-12-20 07:32:41 ЛС | профиль | цитата
Neo писал(а):
Воспроизвести так: нажимает кнопку, и при открытой форме дочерней выбираем вкладку 2, а потом закрываем дочернюю - получаем заблокированную основную форму...

У меня - НЕ ПОЛУЧАЮ заблокированную форму
Если попросту - все абсолютно нормально

Информация к размышлению

nesco, это уже второй случай реальной "нестыковки". Первый был у Tad-а -- чего-то там про календарь.
Повторюсь: у меня пакет с сайта, с апдейтом "по мере необходимости" ((kol-то свой, безусловно)).
Не все видать заапдейтил

Лучше вспомни, чего нажимал, лучше вспомни
Под подозрением Win и MainForm ....

карма: 9

0
Ответов: 16884
Рейтинг: 1239
#10: 2013-12-20 10:50:15 ЛС | профиль | цитата
Galkov писал(а):
У меня - НЕ ПОЛУЧАЮ заблокированную форму
У меня тоже -
Galkov писал(а):
все абсолютно нормально
Пакет с сайта+SVN, kol от Galkov-а.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#11: 2013-12-20 10:54:17 ЛС | профиль | цитата
Galkov писал(а):
У меня - НЕ ПОЛУЧАЮ заблокированную форму

Действительно, на kol-e от Galkov-а не получаю блокировки. Но зато в нем не работает вот это, случайно обнаружил. А вот на штатном это работает

Add(MainForm,2953706,105,77)
{
}
Add(Edit,15294687,182,112)
{
Left=55
Top=70
Width=260
Point(doAlign)
}
Add(Button,11266614,105,126)
{
Left=150
Top=115
TabOrder=-1
Data=Integer(2)
link(onClick,15294687:doAlign,[])
}

карма: 22

0
Ответов: 1535
Рейтинг: 176
#12: 2013-12-20 11:05:16 ЛС | профиль | цитата
Заодно посмотрите, как избавиться от этого. Вместе с пробелом на клавиатуре жмётся обычная кнопка в фокусе. По идее этого быть не должно. Говоря иначе, кнопка в фокусе должна реагировать на клавишу ввода (enter).
Add(MainForm,2953706,84,105)
{
Width=381
Height=182
}
Add(Button,5089122,140,105)
{
Left=30
Top=20
}
Add(Button,6173674,196,105)
{
Left=95
Top=20
}
Add(Button,4896515,252,105)
{
Left=160
Top=20
}
Add(Button,14019783,308,105)
{
Left=230
Top=20
}
Add(BitBtn,542955,140,175)
{
Left=30
Top=70
}
Add(BitBtn,15659587,196,175)
{
Left=95
Top=70
}
Add(BitBtn,15409200,252,175)
{
Left=160
Top=70
}
Add(BitBtn,16069076,308,175)
{
Left=230
Top=70
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#13: 2013-12-20 11:17:07 ЛС | профиль | цитата
ser_davkin писал(а):
По идее этого быть не должно

Увы, так и должно быть -- пробел нажимает активную кнопку
карма: 22

0
Ответов: 1535
Рейтинг: 176
#14: 2013-12-20 11:30:36 ЛС | профиль | цитата
Странно, раньше я этого не замечал, правда, не могу проверить в XP. Кнопка в фокусе реагировала на клавишу ввода, но не на пробел. Что-то я запутался.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 704
Рейтинг: 7
#15: 2013-12-20 12:34:25 ЛС | профиль | цитата
То есть устаревшая оболочка? А чем пользоваться чтоб нормально обновлять? Пробовал альтернативную сборку - одни ошибки в программах появляются... Вернулся на оригинал.
------------ Дoбавленo в 12.34:
ser_davkin, в пробеле что-то общее между энтером и левой клавишей мышки. Все верно работает.
карма: 0

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