OberonCore
https://forum.oberoncore.ru/

Обработка клика мышки на линке (StdLinks)
https://forum.oberoncore.ru/viewtopic.php?f=23&t=2127
Страница 1 из 1

Автор:  Виталий [ Пятница, 27 Ноябрь, 2009 09:27 ]
Заголовок сообщения:  Обработка клика мышки на линке (StdLinks)

Доброго всем. В Делфи есть обработка событий и (или) сообщений.
Там я в классе прописываю процедуру обработчик определенного события.

Как в ББ такое сделать?

в часности я хочу чтоб при клике мышкой по ссылке некой в вьюшке выполнилась определенная процедура.

В какую сторону мне копать и что почитать?

Автор:  Евгений Темиргалеев [ Пятница, 27 Ноябрь, 2009 09:58 ]
Заголовок сообщения:  Re: Обработка клика мышки на линке (StdLinks)

Клики на вьюшках обрабатывают сами вьюшки. Пишите свою (Part III, 6 View Construction | Конструирование отображений) - обрабатываете.

Для StdLinks.Link надо только команду задать (руками ввести или программно). См. документацию модуля StdLinks, пример ObxLinks.
ObxLinks писал(а):
Код:
         str := "ObxLinks.Directory('";
         IF path # "" THEN str := str + path + "/" END;
         str := str + li.name + "')";
         v := StdLinks.dir.NewLink(str);
         f.WriteView(v);   (* insert left link view in text *)
         f.WriteString(li.name);
         v := StdLinks.dir.NewLink("");
         f.WriteView(v);   (* insert right link view in text *)

str тут - команда.

Автор:  Виталий [ Пятница, 27 Ноябрь, 2009 10:51 ]
Заголовок сообщения:  Re: Обработка клика мышки на линке (StdLinks)

Насчет чтива - понял Полезу щаз.
Цитата:
str тут - команда.

Так. Стоп! А я могу тут указать в строке какую процедуру вызывать м модуле?
Круто!!! Жутко удобно:

Но появился вопрос:
есть процедура:
Код:
PROCEDURE AReadFile* (IN Path:ARRAY OF CHAR);
VAR
 b:BYTE;
BEGIN
 StdLog.String(Path);
END AReadFile;

И есть линк
Код:
flink:=StdLinks.dir.NewLink("MFile.AReadFile('"+path+str+"')");

Процедура то выполняется но в СтдЛог вылезает +t�"㷻2.txt

Вопрос: Как мне перекодировать чтоб нормальные буквы были.

Автор:  Евгений Темиргалеев [ Пятница, 27 Ноябрь, 2009 12:23 ]
Заголовок сообщения:  Re: Обработка клика мышки на линке (StdLinks)

Виталий писал(а):
А я могу тут указать в строке какую процедуру вызывать м модуле?

Меню правили? Коммандеры использовали? Это один и тот же, базовый механизм.
Language Report писал(а):
Appendix D: Mandatory Requirements for Environment

3) Modules and at least their exported procedures (commands) and exported types must be retrievable dynamically...


Виталий писал(а):
Вопрос: Как мне перекодировать чтоб нормальные буквы были.
Отукда буквы берутся? Весь код покажите...

Автор:  Info21 [ Пятница, 27 Ноябрь, 2009 12:30 ]
Заголовок сообщения:  Re: Обработка клика мышки на линке (StdLinks)

Виталий писал(а):
Насчет чтива - понял Полезу щаз.
Цитата:
str тут - команда.

Так. Стоп! А я могу тут указать в строке какую процедуру вызывать м модуле?
Круто!!! Жутко удобно:
Можно даже несколько через точку с запятой.

Автор:  Виталий [ Пятница, 27 Ноябрь, 2009 14:06 ]
Заголовок сообщения:  Re: Обработка клика мышки на линке (StdLinks)

Евгений Темиргалеев писал(а):
Виталий писал(а):
А я могу тут указать в строке какую процедуру вызывать м модуле?

Меню правили? Коммандеры использовали? Это один и тот же, базовый механизм.
Language Report писал(а):
Appendix D: Mandatory Requirements for Environment

3) Modules and at least their exported procedures (commands) and exported types must be retrievable dynamically...


Виталий писал(а):
Вопрос: Как мне перекодировать чтоб нормальные буквы были.
Отукда буквы берутся? Весь код покажите...


Все я разобрался, это я вместо того чтоб кликнуть на коммандер зажав CTRL просто кликнул.
ББ у меня просто старый модуль не выгрузил, а там я неверно ARRAY OF CHAR прикрутил.

Цитата:
Можно даже несколько через точку с запятой.

Ага, понял. Это удобно...

Автор:  Евгений Темиргалеев [ Пятница, 27 Ноябрь, 2009 15:25 ]
Заголовок сообщения:  Re: Обработка клика мышки на линке (StdLinks)

Виталий писал(а):
Ага, понял. Это удобно...
Синтаксис строки-команды можно посмотреть в док-и StdInterpreter

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/