OberonCore
https://forum.oberoncore.ru/

Как вставить контрол в конкретную View?
https://forum.oberoncore.ru/viewtopic.php?f=24&t=2238
Страница 1 из 1

Автор:  Виталий [ Понедельник, 18 Январь, 2010 12:20 ]
Заголовок сообщения:  Как вставить контрол в конкретную View?

Всем доброго.
Хочу сделать разделение управления и данных
Есть две вьюшки. В первой предполагаю кинуть контролы, текстовое поле (поля), кнопки...
Во вторую по клику на кнопки будут выводиться данные (из БД).
как писать данные во вьюшку я понял.
А вот как мне вставить контрол в конкретную вьюшку?
Нашел только StdCmds.PasteView; но тут не указано в какую конкретно вьюху вставлять.

Есть ли способы указать что мол такой то контрол вставляется в такую-то View?

Автор:  Valery Solovey [ Понедельник, 18 Январь, 2010 13:18 ]
Заголовок сообщения:  Re: Как вставить контрол в конкретную View?

Я как-то с этим не работал, поэтому точного ответа дать не могу.

Однако:
1. данные вставляют в модель.
2. отображение всего лишь показывает часть модели.

Поэтому вопрос должен быть не "как вставить в", а "достаточно ли подготовлено отображение".

Автор:  Иван Кузьмицкий [ Понедельник, 18 Январь, 2010 13:29 ]
Заголовок сообщения:  Re: Как вставить контрол в конкретную View?

Надо использовать либо стандартный контейнер типа FormViews.View, либо делать свою View. В первом случае вставка тривиальна (с помощью модели, конечно), а во втором случае надо реализовать свой метод Restore.

Автор:  Виталий [ Понедельник, 18 Январь, 2010 14:14 ]
Заголовок сообщения:  Re: Как вставить контрол в конкретную View?

Иван, можно маленький примерчик для понимания, или ссылку на описание такого с примерами?

Автор:  Александр Ильин [ Понедельник, 18 Январь, 2010 14:14 ]
Заголовок сообщения:  Re: Как вставить контрол в конкретную View?

Виталий писал(а):
Нашел только StdCmds.PasteView
Controllers.EditMsg.op = Controllers.paste; .view = вставляемый view. Обрабатывается в HandleCtrlMsg целевого (куда вставляете) view.

Автор:  Иван Кузьмицкий [ Понедельник, 18 Январь, 2010 17:10 ]
Заголовок сообщения:  Re: Как вставить контрол в конкретную View?

Пример по использованию модели контейнера FormViews.View:

Код:
MODULE TestForm;

   IMPORT StdCmds, Ports, Views, Controls, FormGen,  FormViews, FormModels;

   PROCEDURE Do*;
      VAR p: Controls.Prop; v: Views.View;  m: FormModels.Model;
   BEGIN
      FormGen.Empty; StdCmds.SetMaskMode;
      NEW(p);
      p.link := 'TestForm.Do';
      p.label := 'Press me';
      v := Controls.dir.NewPushButton(p);
      m := FormViews.FocusModel();
      m.Insert(v, 40*Ports.mm, 30*Ports.mm, 60*Ports.mm, 37*Ports.mm);
   END Do;

END TestForm.


^Q TestForm.Do

Ну а пример создания собственного контейнера - да хоть ObxTwins, что ли...

Автор:  Виталий [ Вторник, 19 Январь, 2010 13:38 ]
Заголовок сообщения:  Re: Как вставить контрол в конкретную View?

Цитата:
Иван Кузьмицкий

О-о-о... Теперь понял. Спасибо. Чето я метод Insert упустил извиду.

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