Вверх ↑
Этот топик читают: Гость
Ответов: 9
Рейтинг: 0
#1: 2016-08-02 07:22:09 ЛС | профиль | цитата
Доброго времени суток, форумчане. Прошу вашего совета, ввиду своей неинформированности. Есть ли в дочерней форме функция повторного открытия этой же дочерней формы? Собран определенный блок(дочерняя форма) с графическими элементами. На основной форме несколько кнопок-картинок. По нажатию одной кнопки-картинки изменяю параметр doVisible,дочерняя форма становиться видимой. Как сделать так, чтобы по нажатию другой кнопки повторно открылась эта же дочерняя форма?
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#2: 2016-08-02 08:12:46 ЛС | профиль | цитата
=Del=
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 9
Рейтинг: 0
#3: 2016-08-02 09:35:34 ЛС | профиль | цитата
=ОК=
карма: 1

0
Ответов: 8926
Рейтинг: 823
#4: 2016-08-02 09:36:17 ЛС | профиль | цитата
Crazy_Volt23, code_37555.txt
карма: 19

0
файлы: 1code_37555.txt [902B] [380]
Ответов: 9
Рейтинг: 0
#5: 2016-08-02 09:55:36 ЛС | профиль | цитата
Спасибо за пример. Нашел немного другой путь. В дочерней форме добавил точку ##add и по каждому нажатию кнопки оно открывается )
------------ Дoбавленo в 09.55:
Может подскажете, есть тема "всплыванию контекстного меню по нажатию ПКМ"? Видать старость приходит

карма: 1

0
Ответов: 16884
Рейтинг: 1239
#6: 2016-08-02 10:27:33 ЛС | профиль | цитата
code_37557.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37557.txt [278B] [306]
Разработчик
Ответов: 26160
Рейтинг: 2127
#7: 2016-08-02 10:31:43 ЛС | профиль | цитата
Crazy_Volt23 писал(а):
В дочерней форме добавил точку ##add и по каждому нажатию кнопки оно открывается

Оно не открывается, а создается новый экземпляр контейнера формы, а куда же тогда деваются старые контейнеры, они-то остаются висеть в памяти?
Дело в том, что закрытие формы крестиком не убирает форму из памяти, а просто делает ее невидимой. Если же хочется управлять именно контейнером формы, то после нажатия крестика, необходимо удалить экземпляры контейнера методом ##clear, и вот тогда уже новую форму можно создать методом ##add. А управление видимостью формы после закрытия, не трогая контейнеры, надо именно точкой doVisible и никак иначе.
карма: 22

0
Ответов: 9
Рейтинг: 0
#8: 2016-08-02 12:27:13 ЛС | профиль | цитата
А если по нажатию крестика отправить событие на ##clear?
------------ Дoбавленo в 12.26:
nesco, спасибо за такой ньюанс. И еще вопрос. Внутри контейнера стоит элемент "память". По умолчанию: формат:str, значение:пусто. При создании нового экземпляра контейнера возможно внести в элемент "память" значение из основной программы?

карма: 1

0
Разработчик
Ответов: 26160
Рейтинг: 2127
#9: 2016-08-02 13:49:05 ЛС | профиль | цитата
Crazy_Volt23 писал(а):
При создании нового экземпляра контейнера возможно внести в элемент "память" значение из основной программы?

А почему нет?

Add(MainForm,2953706,119,105)
{
Position=1
}
Add(ChildFormEx,8710127,322,168)
{
Mode=1
link(onClose,10565427:doTimer,[])
}
BEGIN_SDK
Add(EditMultiEx,11574497,21,21)
{
WorkCount=#5:##add|7:##clear|
EventCount=#7:onClose|
Point(##add)
Point(##clear)
link(##add,8627521:doValue,[(60,27)(60,104)])
}
Add(MainForm,2526859,182,98)
{
Left=35
Top=105
Position=2
Point(Close)
link(Close,14226534:GetData,[])
}
Add(Memory,8627521,105,98)
{
link(onData,2526859:doCaption,[])
}
Add(EventFromData,14226534,182,49)
{
link(onEvent,12998570:doEvent1,[])
}
Add(Hub,12998570,238,49)
{
link(onEvent1,14226534:doData,[(263,55)(263,41)(172,41)(172,55)])
link(onEvent2,11574497:onClose,[(270,62)(270,27)])
}
END_SDK
Add(Button,3066294,119,168)
{
Left=25
Top=15
TabOrder=-1
link(onClick,8820294:doText,[])
}
Add(VisualStrings,8820294,182,168)
{
Lines=#12:Test Caption|
Width=95
Point(doText)
Point(onText)
link(onText,8710127:##add,[])
}
Add(Timer,10565427,378,168)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,8710127:##clear,[(417,174)(417,209)(312,209)(312,181)])
}

карма: 22

0
Ответов: 9
Рейтинг: 0
#10: 2016-08-02 14:19:44 ЛС | профиль | цитата
nesco,Благодарю за помощь.
------------ Дoбавленo в 14.19:
При нажатии крестика закрываются все созданные экземпляры контейнера. Возможно ли выборное закрытие контейнеров?

карма: 1

0
Разработчик
Ответов: 26160
Рейтинг: 2127
#11: 2016-08-02 14:30:33 ЛС | профиль | цитата
Crazy_Volt23 писал(а):
Возможно ли выборное закрытие контейнеров?

Не закрытие, а удаление.
Да, возможно, если использовать ##delete вместо ##clear c индексом нужного контейнера в потоке. Только мне не совсем понятна задача с использование кучи однотипных форм. Хотя мозги пользователей могут додуматься до чего угодно Если же хотите использовать несколько разных форм, то лучше тогда копать в сторону полиморфных форм.
карма: 22

0
Ответов: 9
Рейтинг: 0
#12: 2016-08-02 14:57:29 ЛС | профиль | цитата
Ну фантазия у всех работает, вопрос лишь в векторе напрвленности На такую платформу, как HiAsm, фантазия нужна много шире и нервы много крепче.
карма: 1

0
Ответов: 497
Рейтинг: 16
#13: 2016-08-03 00:35:29 ЛС | профиль | цитата
Crazy_Volt23,
Crazy_Volt23 писал(а):
На такую платформу, как HiAsm, фантазия нужна много шире и нервы много крепче.
я бы поспорил. когда на Delphi(да на любой хоть на MVC+ хоть блокнот) проект просто огромный и на ровном месте ошибки то тут пожалуй нервы нужны стальные иначе здравствуй психушка да и фантазия в HiAsm сводится до продуманного алгоритма, она вся упакована в квадратики автором элемента а нам только сложить части пазла которые в совокупности дадут тот алгоритм который был изначально задуман нами.(имхо) Потому рекомендую открыть рот положить туда пару учебником и хорошо мелкими порциями жевать и все это закреплять хелов вордами того что выучил. а HiAsm это больше для мелких задач. Но хотя можно и на HiAsm учить язык. Особенно мне понравилась идея Inline pack если его доработать и научить не готовые пас-ы складывать а прямо имена кубиком то это бы был неплохой набор для изучения . это как кубики с буквами для детей складываешь на них а потом плавно переход в тетрадку но это только мысли в слух
карма: 1
        ]  
0
Ответов: 9
Рейтинг: 0
#14: 2016-08-05 16:46:34 ЛС | профиль | цитата
RAWY_EX, отчасти вы правы. Каждый большой проект стоит хороших сил и фантазии. Самое интересное для программирования-объяснить свои "хотелки" устройству-железке, которая работает по своему алфавиту. HiAsm это полноценное объектно-ориентированное программирование, когда складываешь из кубиков пазл. Конечно, в проекте есть лишние параметры, которые не нужны в определенном проекте, но это много быстрее, чем писать на ассемблере миллионные BEGIN и END, сходя с ума от машинной логики Даже в университете, когда изучали основы программирования и разбирали карты Карно, глаза на лоб лезли от "логичной" логики
карма: 1

0
Ответов: 9
Рейтинг: 0
#15: 2016-08-08 13:25:12 ЛС | профиль | цитата
Все-таки стал ковырять полиморфные формы. Пытаюсь передать цвет, но возможно не так понял метод отправки. В МТ-потоке на точку ##add отправляю индекс и цвет. перед кнопкой-картинкой разветвляю мт-поток и беру часть с информацией о цвете и на color этой кнопки. Подскажите, где ошибаюсь.
карма: 1

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