Add(MainForm,14047676,343,147)
{
Width=576
Height=475
Point(onMouseWheel)
Point(Handle)
link(onActivate,1098179:doData,[(387,153)(387,195)(331,195)(331,237)])
link(onCreate,4438343:doEnum,[])
link(onMouseWheel,3842519:doEvent1,[(425,174)(425,286)])
}
Add(WinEnum,4438343,504,161)
{
link(onFindWindow,16417546:doStrCatDlm,[])
}
Add(Image,12279222,749,280)
{
Top=125
Width=560
Height=286
Align=5
}
Add(Hub,3842519,539,280)
{
link(onEvent1,8026749:doEvent,[])
link(onEvent2,11512912:doEvent,[(585,293)(585,356)])
}
Add(Label,11295395,791,350)
{
Top=411
Width=560
Height=25
Align=4
Font=[MS Sans Serif,12,0,0,1]
AutoSize=1
Alignment=2
}
Add(MathParse,11071173,700,350)
{
DataCount=0
MathStr="%0 + 1"
link(onResult,8651668:doStrCat,[])
}
Add(StrCat,8651668,742,350)
{
Str1="Timer: "
link(onStrCat,11295395:doText,[])
}
Add(ListBox,12831490,616,161)
{
Width=560
Height=125
Align=2
Font=[MS Sans Serif,12,0,0,1]
DataType=1
link(onClick,3412572:doSplit,[])
}
Add(ScreenShort,6248627,700,280)
{
link(onCapture,12279222:doLoad,[])
link(Handle,5053317:Var,[])
}
Add(StrCatDelim,16417546,567,161)
{
Delimiter="|"
link(onStrCatDlm,12831490:doAdd,[])
link(Str2,4438343:Handle,[(580,134)(440,134)(440,205)(510,205)])
}
Add(Debug,8026749,602,280)
{
WEName="1"
VDName=""
link(onEvent,6248627:doCapture,[])
}
Add(Debug,11512912,616,350)
{
WEName="2"
VDName=""
link(onEvent,11071173:doCalc,[])
}
Add(DoData,1098179,343,231)
{
link(Data,1435506:Var,[])
}
Add(Debug,1435506,343,196)
{
WEName=""
VDName="realHandle"
link(Data,14047676:Handle,[])
}
Add(Debug,5053317,700,224)
{
WEName=""
VDName="handle"
link(Data,4985132:Var,[])
}
Add(ConvertorEx,4985132,700,168)
{
Mode=1
}
Add(MultiStrData,3412572,658,168)
{
Char="|"
From=1
Count=1
link(onPart1,4985132:doConvert,[])
}
Этот топик читают: Гость
Ответов: 2415
Рейтинг: 691
|
|||
Gunta, нет это не как не связано с типом данных:
|
|||
карма: 11 |
|
Ответов: 897
Рейтинг: 190
|
|||
sla8a, а так уже одинаковый и вроде не зависает
Редактировалось 1 раз(а), последний 2025-05-12 21:32:54 |
|||
карма: 18 |
|
Ответов: 2415
Рейтинг: 691
|
|||
Gunta, это уже ближе! Но у меня WinEnum выдает две Form с "правильным" Handle и с "неправильным". С "правильным" все работает без вылетов. У тебя тоже два Form выдает?
Редактировалось 1 раз(а), последний 2025-05-12 21:41:30 |
|||
карма: 11 |
|
Ответов: 897
Рейтинг: 190
|
|||
sla8a писал(а): Но у меня WinEnum выдает две Form с "правильным" Handle и с "неправильным". С "правильным" все работает без вылетов. У тебя тоже два Form выдает?У меня тоже и обрати внимание на размер второй формы ![]() Редактировалось 2 раз(а), последний 2025-05-12 21:42:36 |
|||
карма: 18 |
|
Ответов: 2415
Рейтинг: 691
|
|||
Как по мне так WinEnum выдает не "правильные" данные. Form не одна из тех доступ к Handle которой может уронить программу. У меня в списке выданных WinEnum есть еще пару которые роняют сразу же. А с реальными окнами проблем нет. Нужна доработка doEnum у WinEnum.
|
|||
карма: 11 |
|
Ответов: 897
Рейтинг: 190
|
|||
Принудительно увеличил размер второй формы и удивился ещё больше
![]() |
|||
карма: 18 |
|
Ответов: 1129
Рейтинг: 80
|
|||
Gunta писал(а): Чёрное это онаКонсоль прячется, шпионит втихаря ![]() С 0-вой высотой скрин не делает. Увеличил размеры, переключился, пошли скрины, снова уменьшил до 0 и таймер остановился. Редактировалось 1 раз(а), последний 2025-05-12 22:08:30 |
|||
карма: 2 |
|
Ответов: 2415
Рейтинг: 691
|
|||
Ну вот к примеру проверка на ширину и высоту отсекает почти все:
![]() Нужно сделать нормальную проверку в doEnum и всего. Если сегодня не осилю и кто другой не починит, то завтра посмотрю на свежую голову. Редактировалось 2 раз(а), последний 2025-05-12 22:15:48 |
|||
карма: 11 |
|
Ответов: 1129
Рейтинг: 80
|
|||
sla8a писал(а): отсекает почти все:Поскольку ширина такая же как и у основной формы. Нужно и ширину и высоту > 0 |
|||
карма: 2 |
|
Ответов: 897
Рейтинг: 190
|
|||
У программ созданных в HiAsm
Свойство Caption одинаковое у обеих форм Но Class name у скрытой формы - obj_App |
|||
карма: 18 |
|
Ответов: 2415
Рейтинг: 691
|
|||
tom-it, точно! Совсем голова уже перед сном не соображает. Вот тестовая схема:
Наверно правильнее будет добавить еще одно свойство WinEnum которое будет отсекать окна которых нет на рабочем столе, как раз для таких случаев. Да и чтоб совместимость сохранилась. 3042, таймер то не причем:
Редактировалось 2 раз(а), последний 2025-05-12 22:47:28 |
|||
карма: 11 |
| ||
Голосовали: | 3042 |
Ответов: 1129
Рейтинг: 80
|
|||
sla8a писал(а): Наверно правильнее будет добавить еще одно свойство WinEnum которое будет отсекать окна которых нет на рабочем столе, как раз для таких случаев.Мало-ли для чего может понадобится такое окно. Взаимодействие посредством SendMesagge, к примеру. А вот в ScreenShort нет проверки. Мол, уважаемая BitBlt скопируй-ка мне супер скрин толщиной менее 1 пикселя ![]() procedure THIScreenShort._work_doCapture; ... GetWindowRect(wnd,r); // А ведь прямоугольник то бракованный ![]() //Bmp := NewBitmap(r.Right-r.Left,r.Bottom-r.Top); Bmp := NewDIBBitmap(r.Right-r.Left, r.Bottom-r.Top, pf32bit); end; BitBlt(Bmp.Canvas.Handle,0,0,Bmp.Width,Bmp.Height,DC,0,0,SRCCOPY); .... |
|||
карма: 2 |
|
Ответов: 1946
Рейтинг: 174
|
|||
tom-it, так тут речь про свойство шла, т.е. можно будет выбрать, выдавать ли такие невидимые окна. Хотя в WinEnum уже есть такое свойство (VisibleOnly), но оно, видимо, работает не полностью.
sla8a, если так, то буду очень рад. А то я уж думал, что придётся искать замену таймеру ![]() Редактировалось 1 раз(а), последний 2025-05-13 06:20:00 |
|||
карма: 9 |
|
Ответов: 1129
Рейтинг: 80
|
|||
3042 писал(а): так тут речь про свойство шлаТак я и не возражаю. Так, мысли в слух. Что помимо доработки WinEnum необходимо еще и ScreenShort поправить. Кто-ж его знает какой уровень бурности фантазии будет в последующих пользователей. Было нормальное окно, а потом чет в бошку перемкнуло и спрятали окно посредством нулевой толщины. Все, BitBlt уже нечего копировать ![]() --- Добавлено в 2025-05-13 06:34:22 3042 писал(а): Хотя в WinEnum уже есть такое свойство (VisibleOnly), но оно, видимо, работает не полностью.Если посмотреть свойства этой формы каким-то сканером окон, то окно видимое. Только толщина равна 0. Так что к VisibleOnly нет претензий ![]() Редактировалось 2 раз(а), последний 2025-05-13 06:44:38 |
|||
карма: 2 |
|
Ответов: 897
Рейтинг: 190
|
|||
Есть ещё окна, у которых высота и ширина нормальные, но они находятся за пределами экрана и их как бы не видно. Плюс окна размером с один пиксель.
|
|||
карма: 18 |
|