Вверх ↑
Этот топик читают: Гость
Ответов: 302
Рейтинг: 1
#1: 2026-05-08 16:51:31 ЛС | профиль | цитата
Почему, если вызвать модальную дочернюю форму по проводу из другой модальной формы, то потом главная форма недоступна становится? Я конечно понимаю, что нужно по правильному бы все дочерние формы закрыть перед открытием того последнего окна, но мне нужно бы именно так, .. Непонятно да, сам перечитываю и не понимаю. См гифку ))))

Гиф



Add(MainForm,2953706,616,532)
{
Width=510
Height=362
Position=1
}
Add(Button,11205765,693,532)
{
Left=190
Top=140
Caption="нажми"
link(onClick,1245568:doWork1,[])
}
Add(ChildForm,1245568,742,532)
{
link(onEvent1,2376677:doWork1,[])
}
BEGIN_SDK
Add(EditMulti,2655893,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,3711324:doShowModal,[(81,27)(81,97)])
}
Add(MainForm,3711324,140,63)
{
Left=35
Top=105
Width=356
Height=289
Visible=1
Position=1
Point(doShowModal)
}
Add(ChildForm,11744649,196,140)
{
link(onEvent1,2655893:onEvent1,[(274,146)(274,27)])
}
BEGIN_SDK
Add(EditMulti,2395673,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,3537016:doShowModal,[(81,27)(81,97)])
}
Add(MainForm,3537016,140,63)
{
Left=35
Top=105
Width=339
Height=246
Visible=1
Position=1
Point(doShowModal)
}
Add(Button,11245833,238,119)
{
Left=195
Top=115
Width=95
Caption="Теперь сюда"
link(onClick,2395673:onEvent1,[(296,125)(296,27)])
}
END_SDK
Add(Button,2477239,70,140)
{
Left=60
Top=145
Width=155
Caption="теперь сюда"
link(onClick,11744649:doWork1,[])
}
END_SDK
Add(ChildForm,2376677,791,532)
{
}
BEGIN_SDK
Add(EditMulti,2028744,21,21)
{
WorkCount=1
Height=375
link(doWork1,1433516:doShowModal,[(81,27)(81,97)])
}
Add(MainForm,1433516,140,63)
{
Left=35
Top=105
Width=621
Height=462
Visible=1
Position=1
Point(doShowModal)
}
Add(VisualShape,2878883,140,140)
{
Left=15
Top=60
Width=740
Height=595
}
Add(Label,8469994,77,196)
{
Left=20
Top=30
Width=680
Caption="А теперь после закрытия этого окна главная форма будет недоступна"
}
END_SDK

карма: 1

0
Ответов: 2489
Рейтинг: 698
#2: 2026-05-11 00:40:52 ЛС | профиль | цитата
Тут ответ: Модальные окна блокируют основное окно

Редактировалось 1 раз(а), последний 2026-05-11 00:41:36
карма: 11

0
Ответов: 302
Рейтинг: 1
#3: 2026-05-11 03:22:33 ЛС | профиль | цитата
sla8a писал(а):
Тут ответ: Модальные окна блокируют основное окно

Спасибо, отлично!
Единственное что я от туда понял, что nesco пофиксил это на SVN. Но у меня не подключается этот SVN хоть убей... И с впн пробовал и так и сяк..

Может что нибудь можно сделать без SVN с этой долбаной проблемой модальности?

пс.
исправил это
function THIMainForm._onClose;
var i:integer;
p:PControl;
begin
Result := true;

if Accept and(ToIntegerEvent(_data_Close)<>0) then exit;
for i := 0 to Control.ChildCount-1 do
with Control.Children[i]{$ifndef F_P}^{$endif} do
if isForm then Perform(WM_CLOSE,0,1);
if CurForm <> nil then
PostMessage(CurForm.Handle,WM_ACTIVATE,WA_ACTIVE,0 );
CurForm := nil;

if isMain then
begin
Result := false;
_hi_OnEvent(_event_onClose);
// EventOff;
end
else
begin
p := FParent;
{$ifndef SUPER_PARENT}
while not p.isForm do p := p.Parent;
{$endif}
if p.ModalForm <> Control then
Control.Hide
else Control.ModalResult := -1;
end;
SavePosition;
Showed := False;
end;

на это
function THIMainForm._onClose;
var i:integer;
//p:PControl;
begin
Result := true;

if Accept and(ToIntegerEvent(_data_Close)‹›0) then exit;
for i := 0 to Control.ChildCount-1 do
with Control.Children[i]{$ifndef F_P}^{$endif} do
if isForm then Perform(WM_CLOSE,0,1);
if CurForm ‹› nil then
PostMessage(CurForm.Handle,WM_ACTIVATE,WA_ACTIVE,0 );
CurForm := nil;

if isMain then
begin
Result := false;
_hi_OnEvent(_event_onClose);
// EventOff;
end
else
begin
//Fix 09.11.2025 sla8a
if Control.Modal then
Control.ModalResult := -1
else
Control.Hide;
//p := FParent;
//{$ifndef SUPER_PARENT}
//while not p.isForm do p := p.Parent;
//{$endif}
//if p.ModalForm ‹› Control then
// Control.Hide
//else Control.ModalResult := -1;
end;
SavePosition;
Showed := False;
end;




И теперь у меняя ваще схема не стартует)))



Всё, разобрался)) Надо было поменять только последнее на это:
    begin
//Fix 09.11.2025 sla8a
if Control.Modal then
Control.ModalResult := -1
else
Control.Hide;
end;

а не всю function THIMainForm._onClose

Редактировалось 3 раз(а), последний 2026-05-11 04:12:48
карма: 1

0
Разработчик
Ответов: 26355
Рейтинг: 2151
#4: 2026-05-11 13:40:53 ЛС | профиль | цитата
Все файлы SVN пакета есть на зеркале SVN по ссылке в этом посте -- https://forum.hiasm.com/post/310440. Актуальность этой ссылки будет действовать до 3-го июня.

Редактировалось 1 раз(а), последний 2026-05-11 13:41:55
карма: 23

0
Ответов: 302
Рейтинг: 1
#5: 2026-05-11 15:43:21 ЛС | профиль | цитата
nesco писал(а):
Все файлы SVN пакета есть на зеркале SVN по ссылке в этом посте -- https://forum.hiasm.com/post/310440. Актуальность этой ссылки будет действовать до 3-го июня.

Спасибо.
Нужно просто ctrl-c ctrl-v в папку с Hiasm?
карма: 1

0
Разработчик
Ответов: 26355
Рейтинг: 2151
#6: 2026-05-12 03:14:17 ЛС | профиль | цитата
Gitarist писал(а):
Нужно просто ctrl-c ctrl-v в папку с Hiasm?

Да, просто копируешь поверх. Но так можно делать не для всех файлов. Некоторые требуют замены еще нескольких модулей. Но вроде как последних таких пока что еще не было. Я, к примеру, использую для таких целей TC в режиме синхронизации каталогов. Он показывает файлы с отличием.
карма: 23

0
Разработчик
Ответов: 26355
Рейтинг: 2151
#7: 2026-06-29 15:47:10 ЛС | профиль | цитата
Поднят новый SVN для пакета Delphi. Это мой личный SVN, созданный на площадке SourceForgе -- https://svn.code.sf.net/u/nesco-sochi/hipacks/%20nesco-sochi-hipacks/delphi
За пробел в пути не обессудьте, это не моя ошибка, это такая генерация пути площадкой.
Есть уже некоторые обновления на SVN. Теперь все обновления я буду делать только на этом SVN, тк оригинальный ниоткуда не доступен. Увы, но обновлять компоненты из самого HiAsm-a не получится, тк путь к SVN вшит в сам HiAsm, по крайней мере, я нигде его больше не нашел, только там. Если кто знает как его изменить, то отпишитесь.

Редактировалось 1 раз(а), последний 2026-06-29 15:53:09
карма: 23

0
Ответов: 239
Рейтинг: 7
#8: 2026-06-30 08:40:19 ЛС | профиль | цитата
nesco, Хотел исходник посмотреть, да уже не достать https://forum.hiasm.com/topic/60471/0

Когда меняю на папку https://svn.code.sf.net/u/nesco-sochi/hipacks/%20nesco-sochi-hipacks/ у меня после обновление информации ситуация нормализуется. Но когда хочу обновить ругается на ошибку 502. Может путь поменять на этот адрес до packs?

Вроде бы в SVN файлы лежали в папках с названиями пакетов

Редактировалось 4 раз(а), последний 2026-06-30 09:06:46
карма: 1
Сообщество Hiasm в VK https://vk.com/club_hiasm (компоненты, статьи, схемы).
0
Ответов: 1126
Рейтинг: 224
#9: 2026-06-30 10:50:48 ЛС | профиль | цитата
strannik_nebes писал(а):
Когда меняю на папку https://svn.code.sf.net/u/nesco-sochi/hipacks/%20nesco-sochi-hipacks/ у меня после обновление информации ситуация нормализуется. Но когда хочу обновить ругается на ошибку 502. Может путь поменять на этот адрес до packs?

Вроде бы в SVN файлы лежали в папках с названиями пакетов


У меня вроде подключается и даже скачивает, но только в отдельную папку. c:\HiAsm\Elements\hipacks\ nesco-sochi-hipacks\delphi\

А должно в c:\HiAsm\Elements\Delphi\
карма: 20

0
Ответов: 239
Рейтинг: 7
#10: 2026-06-30 11:13:42 ЛС | профиль | цитата
30.06.2026_11:12:44.782 I: Выбран репозиторий: https://svn.code.sf.net/u/nesco-sochi/hipacks/ nesco-sochi-hipacks/Delphi
30.06.2026_11:12:44.784 W: Принудительно останавливаем все выполнемые операции!
30.06.2026_11:12:44.784 I: Перебазируем рабочую копию (relocate).
30.06.2026_11:12:44.794 I: Запрашиваем информацию о репозитории.
30.06.2026_11:12:44.850 E: svn: E155024: Invalid source URL prefix: 'https://svn.code.sf.net/u/nesco-sochi/hipacks' (does not overlap target's URL 'http://svn.hiasm.com/packs')
30.06.2026_11:12:46.332 W: Ревизия репозитория не получена.
30.06.2026_11:12:46.357 E: svn: warning: W170000: URL 'https://svn.code.sf.net/u/nesco-sochi/hipacks/%20nesco-sochi-hipacks/Delphi' non-existent in revision 17
30.06.2026_11:12:46.358 E: svn: E200009: Could not display info for all targets because some targets don't exist

Если убрать Delphi в пути:
30.06.2026_11:12:00.094 I: Выбран репозиторий: https://svn.code.sf.net/u/nesco-sochi/hipacks/ nesco-sochi-hipacks/
30.06.2026_11:12:00.097 I: Запрашиваем статус рабочей копии.
30.06.2026_11:12:00.111 I: Запрашиваем информацию о репозитории.
30.06.2026_11:12:00.557 I: Запрашиваем информацию о рабочей копии.
30.06.2026_11:12:00.606 I: Ревизия рабочей копии: 2431
30.06.2026_11:12:02.147 I: Ревизия репозитория: 17
30.06.2026_11:12:07.407 I: Запускаем процесс обновления рабочей копии (update).
30.06.2026_11:12:07.456 I: Updating 'Elements':
30.06.2026_11:12:07.488 E: svn: E170013: Unable to connect to a repository at URL 'http://svn.hiasm.com/packs'
30.06.2026_11:12:07.488 E: svn: E175002: Unexpected HTTP status 502 'Bad Gateway' on '/packs'

--- Добавлено в 2026-06-30 11:19:55

пробел удаляется в пути, где _nesco-sochi

Редактировалось 2 раз(а), последний 2026-06-30 11:19:55
карма: 1
Сообщество Hiasm в VK https://vk.com/club_hiasm (компоненты, статьи, схемы).
0
Ответов: 1126
Рейтинг: 224
#11: 2026-06-30 11:27:54 ЛС | профиль | цитата
strannik_nebes, удали базу .svn (сделай предварительно копию на всякий случай)

карма: 20

0
Разработчик
Ответов: 26355
Рейтинг: 2151
#12: 2026-06-30 13:48:25 ЛС | профиль | цитата
Для целевой папки %HiAsm%/Elements надо выбирать путь к репозиторию без /delphi. Но тк пакет у меня только один, то в качестве целевой папки лучше выбирать %HiAsm%/Elements/Delphi и полный путь к репозиторию. Gunta отметил правильно, что надо удалить предыдущий .svn для правильной привязки. Потом надо просто сделать привязку chekout-ом конкретной папки с учетом вышесказанного. Но я не пользуюсь HiSvn оболочкой subversion, потому не знаю, есть ли там команда chekout, я пользуюсь TortoiseSVN, там такая команда есть.
Да и обновлять свой SVN надо либо оболочкой HiSvn, либо через TortoiseSVN, тк обновление через сам HiAsm недоступно из-за описанной выше причины.
Но я вообще-то рекомендовал бы использовать зеркальную папку не в основной папке %HiAsm%/Elements, а где либо в архивах. Но для этого надо использовать TortoiseSVN. тк она показывает, какие файлы изменены в ревизии, которые потом переносятся в основу (а старые возможно же сохранить на случай, если что-то пойдет не так).

Редактировалось 4 раз(а), последний 2026-06-30 14:11:45
карма: 23

1
Голосовали:strannik_nebes
Ответов: 239
Рейтинг: 7
#13: 2026-07-07 08:35:22 ЛС | профиль | цитата
После обновления на 19 ревизию вылезла ошибка

Borland Delphi  Version 12.0  Copyright (c) 1983,98 Inprise Corporation

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hiInlineCode_6001950.pas(21) Hint: Variable 'i' is declared but never used in 'ThiInlineCode_6001950.doSetOnChange'

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hiVBoxLayout.pas(10) Hint: Overriding virtual method 'THIVBoxLayout.Sort' has a lower visibility than base class 'TWinLayout'

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hiHBoxLayout.pas(10) Hint: Overriding virtual method 'THIHBoxLayout.Sort' has a lower visibility than base class 'TWinLayout'

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hiInlineCode_60017B0.pas(10) Hint: Private symbol 'VP' declared but never used

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hiHilightMemo.pas(68) Warning: Method '_Get' hides virtual method of base type 'THIWinList'

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hiMTStrTbl.pas(1026) Error: Undeclared identifier: 'US_STOPDRAG'

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hiMTStrTbl.pas(1063) Error: Undeclared identifier: 'US_STOPDRAG'

C:\_WORK\_SOFT\HiAsm 4 AltBuild copy\Elements\delphi\code\hivoltage_126BE00.pas(13) Fatal: Could not compile used unit 'hiMTStrTbl.pas'
Сжатие кода...
Сборка завершена.

карма: 1
Сообщество Hiasm в VK https://vk.com/club_hiasm (компоненты, статьи, схемы).
0
Разработчик
Ответов: 26355
Рейтинг: 2151
#14: 2026-07-07 15:54:37 ЛС | профиль | цитата
Ошибка, связанная с hiMTStrTbl.pas, зависит от Share.pas, Просто я забыл его обновить. Остальное там предупреждения, а не ошибки. Текущая ревизия SVN -- 20, с обновленным Share.pas

--- Добавлено в 2026-07-07 16:29:47

Удалил предупреждение из HilightMemo. Текущая ревизия -- 21

Редактировалось 1 раз(а), последний 2026-07-07 16:29:47
карма: 23

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