Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
 
 23:38 Geo
 
 
Во Флориде и в Королевстве сейчас  23:53[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 3126—3117 | 3116—3107 | 3106—3097 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 315


№ 3116   13-03-2007 07:56 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3115« (Илья Ермаков)
___________________________
Ах, ну да - забыл... Еще можно надпись прямо там на форме и откомпилировать :-)


№ 3115   13-03-2007 07:52 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3106« (Как слышно? Приём!)
___________________________

>>>Если Вам всё просто и понятно в ББ, то нормальным людям :) непривычно.
Хе, только вот детишки 9-классники у меня уже на третьем занятии формочки с кнопочками делали без каких-либо проблем... При этом никакого ООП или событийки, и программный код совершенно чистый, не знающий ничего о прицепленном к нему ГУЕ...
Что касается Дельфы, то из-за "разврата" с ООП, мгновенно формирующейся у самоучек привычкой лабать код в обработчиках, непонятного для новичка ГУЕ-вого кода я бы к ней школьников вообще не подпускал... :-)

>Сделать бы лазейку - западёнку в ББ в виде проекта
>"сунь дельфист пальчик - там сидит зайчик".
>Или это мост от Маниловки до Санкт-Питербурга?
Да вот Вы не первый...
http://forum.oberoncore.ru/viewtopic.php?t=374 - вон сколько копий переломано...
У кого есть время и желание, пущай делают... Никаких принципиальных загвоздок там нет, за единым вопросом - ну а на фига козе баян? Вы в этой ветке на последнюю страничку зайдите - там пара студентов-новичков выссказалась. Общая мысль: "после Дельфы сильнейшая ломка стереотипов. В основном трудно поверить, ЧТО ОНО РЕАЛЬНО ТАК ПРОСТО И УДОБНО МОЖЕТ РАБОТАТЬ".

>Сходив по Вашей ссылке на форуме ББ правильный ли я сделал вывод,
>что если так приспичило создать мини-Дельфи в ББ (или мини Lazarus)
>в плане бросания кнопок, текстовых боксов, картинок и гридов(?),
>то в своём проекте реально создать панель инструментов и их бросать
>для компоновки простого GUI. (Есть соответствующие обработчики).
Так они так бросаются прекрасно... Через меню, правда. Можно поставить тулбар из коллекции Хельмута Зинна (http://www.zinnamturm.de/) и настроить кнопки для кидания.
Можно слепить свой диалог-"палитру", повесив на него команды вставки контролов... Все же прозрачно, все делается единообразно, Блэкбокс - сам себе скриптовой язык.

>Другое дело - привязывание простейших событий Click, MouseDown
>к тексту программы. Или тут тоже есть решения?
Что вы имеете в виду?

Вообще в Блэкбоксе есть подразделение графических объектов.

Есть просто отображение Views.View - самый общий класс.
Мы пишем тип-расширение View, реализовываем в нем по минимуму процедуру Restore, которая рисует то, что нужно - и уже получаем пассивный графический объект, который можно всовывать куда угодно - на форму, в текст, всюду.
Если нужно обрабатывать сообщения, то реализуем один или несколько из методов HandleCtrlMsg, HandlePropMsg, HandleViewMsg, HandleModelMsg. Через эти обработчики отображение подключается к шинам сообщений и может обрабатывать самые разные сообщения, селектором типа WITH.

Есть, однако, и специализированные виды графических объектов (здесь, кстати, используется наследование реализации. Иделогия Framework допускает наличие нескольких базовых расширяемых конкретных типов). Controls.Control - это потомок Views.View, предназначенный для быстрого построения элементов управления. Там реализована логика автосвязывания с переменными в коде программы. Все стандартные элементы управления - кнопки, переключатели и т.п. - это потомки Control, они подключаются прямо к переменным и процедурам модулей, что очень удобно. Также контрол привязывается к процедуре-стражу (Guard), которая периодически опрашивается средой на предмет состояния контрола (активен-неактивен и т.п. - это позволяет описывать смену состояний декларативно, в одном месте, практически логическим предикатом, в то время как в Дельфе нужно следить, чтобы всюду по коду правильно переключалось Enabled и т.п.). Еше у контрола есть Notifier, который вызывается при некоторых событиях типа нажатия-отпускания кнопки мыши. Для расширенной обработки сообщений стандартная схема контролов не предназанчена, ее назначение - быстрое построение форм. Нужно более сложное поведение - нужно переопределять обработчики сообщений View.

>И частный - как с гридами? Что-то не пойму есть ли они? Или я плохо искал?
Гриды - таблицы что ль? Есть StdTables, например. А дополнительно очень многое в коллекции Зинна найдется (http://www.zinnamturm.de/).

Ещё вопросик по той же ссылке на форуме. Вы писали
>>> кладем несколько отображений-форм (FormViews),
>>> на них накидываем графики (я кинул из Excel
Excel как поддерживается - по OLE или на манер OpenOffice?
По OLE... В той ветке Вы не на то внимание обратили. Там ниже пример разработки отображения-контейнера для графика, поддерживающего "накидывание" форматированного текста - и непосредственное редактирование - всего в пару сотен строк кода...

У меня есть набор фокусов, которые я показываю обычно новичкам.
Даже самые простые вещи дельфистов приводят обычно в замешательство. Возможность прицепить поле ввода прямо к переменной - и то, что в то же мгновение связь установится и покажется значение. Изменили экспорт переменной на "только для чтения" - и поле тут же становится недоступным для редактирования. Автоматическое отсечение ввода по типу переменной, никаких специальных усилий для этого...
Открываем редактируемую форму в рабочем режиме (Controls->Open As Tool Dialog) - и видим сразу и разметку, и рабочий вид. Подвинули в разметке кнопку - она тут же синхронно поехала в диалоге... Дельфисты на этом месте уже выпадают в осадок :-)
Далее мой любимый фокус. Открываем вертящийся кубик из примеров (Obx->New Cube). Копируем его в буфер (Edit->Select Document, Copy). Создаем новый документ и вставляем в него несколько раз этот кубик. Можно поменять размеры - кубики клонируются, масштабируются, крутятся, ну, как положено.
Далее выделяем текстовый документ целиком (Select Document), копируем - и вставляем на форму...
Дельфисты в состоянии, близком к полуобморочному, наблюдают форму, открытую сразу в двух режимах, на которую попал форматированный текстовый документ, внутри которого продолжают крутиться кубики...
Остается "добить" - прямо на форме щелкнуть по тексту - и прямо там начать его редактировать.... Все. Гоголь, последний акт, немая сцена :-)))


№ 3114   13-03-2007 07:04 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3113« (Илья Ермаков)
___________________________

Вот далось Вам это наследование...
Как будто нет других схем повторного использования.
Не нужно делать "жирные" классы, наооборот - делить ответственность между небольшими классами.


Жирные классы спустя определенное время могут стать "тяжелым наследием прошлого". Их нужно мыслить как эдакие "супермодули" -- "тяжелые" кластеры классов, чье развитие должно быть сосредоточено по возможности в одних руках. А легкие классы -- это своего рода ниточки марионеток, за которые можно спокойно дергать. Они менее требовательны к композиционным ограничениям и более гибки в смысле развития и адаптации под изменение условий.

Вообще говоря, имеет смысл для линии Оберонов использовать термин "кластерно-модульное программирование" (а не просто "модульное" и не "компонентное"). Тому есть ряд оснований, как чисто исторических, так и архитектурно-методических. Фактически "каркасы" (frawework), активно применяемые в Оберон-технологиях, являются частным случаем "кластеров" (определенной совокупности модулей).

Что касается истории модульного программирования и его основ, то тем, кто еще не читал, рекомендую познакомиться с соответствующим разделом в классической книге Владислава Турского "Методология программирования". Она есть в новых поступлениях на EuroProg.


№ 3113   13-03-2007 06:27 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3109« (Сергей Перовский)
___________________________

Ответ на »сообщение 3106« (Как слышно? Приём!)
Причина одна - продуманное наследование по реализации сокращает общее количество кода и упрощает отладку. Переписать, например, Дельфовскую VCL без наследования по реализации мне представляется малоподъемным проектом даже для крупной компании, не говоря уже о сообществе энтузиастов.

Вот далось Вам это наследование...
Как будто нет других схем повторного использования.
Не нужно делать "жирные" классы, наооборот - делить ответственность между небольшими классами.
Тогда переписывается только тот маленький кусочек, который нужно заменить.
Пример - в BlackBox подсистема работы с текстами состоит из 4 модулей - TextModels, TextViews, TextSetters, TextControllers. Экспортируются из каждого модуля только интерфейсы, конкретная реализация сокрыта. Если мне нужен будет свой вариант текста, я перепишу реализацию только того класса (из четырех - Model, View, Setter, Controller), которого нужно, при этом для остальных изменение будет соврешенно прозрачным - они знают только интерфейс "соседа". Если мне нужно изменить совсем мелочь, я напишу обертку, которая будет делать эту мелочь, а все остальное перенаправлять экземпляру стандартного класса.
Если в Дельфе без наследования один графический класс не может делегировать запрос на обработку к другому, то тогда ясно, что там без наследования никуда...
Обероновская шина сообщений позволяет динамически делегировать что угодно кому угодно и как угодно... Не создавая при этом жестких статических зависимостей.


№ 3112   13-03-2007 06:24 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3111« (Илья Ермаков)
___________________________
Не обычную. А кто ж позволит Windows патчить?


№ 3111   13-03-2007 06:17 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3107« (Руслан Богатырев)
___________________________

Ответ на »сообщение 3105« (Kubanych)
Заодно вопрос: кто-нибудь пробовал BlackBox под Xen?

Так это ведь на Xen все равно надо устанавливать обычную OS, например, Windows. Ну и почему бы Блэкбоксу там не работать?


№ 3110   13-03-2007 06:15 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3105« (Kubanych)
___________________________

Ответ на »сообщение 3100« (Илья Ермаков)
___________________________
Вы где-то говорили, что пытаетесь использовать BlackBox
под wine, появлялись разные проблемы и в конце концев
Вы остановились на дистрибутиве ASP Linux Ладога.
Вы не пробовали Linux XP Desktop?

Лично я ни с чем кроме ASP не работал - он у меня сейчас настольная система...
В ОГУ у нас используется тоже он.
Не имеет значения, какой дистрибутив - имеет значение только версия Wine. В ASP 11.2 идет Wine 0.9.16. С ним никаких проблем у Блэкбокса не наблюдается, кроме того, что требуется подстроить шрифты. С растровыми Виновскими шрифтами, даже если повезет с кирилицей (а там раз на раз), все смотрится довольно коряво. Нужно залить в Wine обычные TTF-шрифты Windows (хотя бы Arial) - в папку /home/-user-/.Wine/drive_c/Windows/Fonts, затем подстроить шрифты в Edit->Preferences.
В ОГУ (где Винда изничтожена как факт) Блэкбокс для обучения используем под Wine, все нормально. (Правда, вылетает окошко исключения при закрытии стандартных диалогов Windows (Открыть, Сохранить...) через кнопку Отмена - разработчики Wine чего-то напортачили с возвращаемыми значениями, а в ББ на них стоит строгий ASSERT...)


№ 3109   13-03-2007 06:12 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3106« (Как слышно? Приём!)
___________________________
>>>Я тут про "поубивать наследование", про устаревший VCL, понимаешь ...
>>>Почему визуальные контролы могут быть только чисто ООП? Не вижу причин.
Причина одна - продуманное наследование по реализации сокращает общее количество кода и упрощает отладку. Переписать, например, Дельфовскую VCL без наследования по реализации мне представляется малоподъемным проектом даже для крупной компании, не говоря уже о сообществе энтузиастов.


№ 3108   13-03-2007 05:58 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3106« (Как слышно? Приём!)
___________________________

Значит или показалось или ТЕ ещё не отошли после 8 марта - не проснулись :)


Никак не могу понять о чем идет идет речь, ведь система Оберон (как раньше и Лилит) -- это принципиально GUI и мышь. (Вирт писал: "Это маленькое чудо -- мышь".)
Пришло в голову, что здесь какое-то недоразумение, основанное на утверждении, что пользовательский интерфейс Оберона "основан на тексте".
Но ведь "текст" в Обероне -- это не "голый" ASCII, он включает графику (также как и поддержку шрифтов).
 AVC


№ 3107   13-03-2007 04:40 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3105« (Kubanych)
___________________________

Вы где-то говорили, что пытаетесь использовать BlackBox
под wine, появлялись разные проблемы и в конце концев
Вы остановились на дистрибутиве ASP Linux Ладога.
Вы не пробовали Linux XP Desktop?


Заодно вопрос: кто-нибудь пробовал BlackBox под Xen?
Xen -- это виртуальная машина, которой очень хвалятся различные европейские ИТ-функционеры, называя ее в числе "жемчужин" европейского софта.

Офиц. сайт: http://www.cl.cam.ac.uk/research/srg/netos/xen/
Информация: http://en.wikipedia.org/wiki/Xen


<<<... | 3126—3117 | 3116—3107 | 3106—3097 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 315


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования