Re[7]: Ссылки по Форту
От: DJ KARIES Россия  
Дата: 06.05.06 16:24
Оценка: 2 (1)
Здравствуйте, FR, Вы писали:

DK>>>Хотя, Форт — язык для создания прикладных языков...

VG>>...Вы не находите господа, что о чём бы ни начали разговор в этом форуме, всё в итоге сводится к DSL.

FR>Дык мода

FR>Хотя форт это совсем другая философия, ее современные любители DSL обычно не признают

Я вот сейчас ваяю конструктор со своим скриптом, редактором формочек, всё это в мскульной БД.

Пример:

Редактор записи вьюшки:
'ViewEditor.rec' uses

'ScriptList_VIEW.rec.form' form

'Form::Show' :
  'Name' dataset.getfield 'text' 'edName' setprop
  'Title' dataset.getfield 'text' 'edTitle' setprop
  'Text' dataset.getfield 'text' 'mText' setprop
;

'btnOK::Click' :
  dataset.edit
  'text' 'edName' getprop 'Name' dataset.setfield
  'text' 'edTitle' getprop 'Title' dataset.setfield
  'text' 'mText' getprop 'Text' dataset.setfield
  dataset.post
  'close' 'Form' call
;

'btnCancel::Click' :
  dataset.newcancel
  'close' 'Form' call
;

'btnDesigner::Click' :
  'text' 'mText' getprop designer.show
  'text' 'mText' setprop
;

'btnTest::Click' :
  'text' 'mText' getprop eval
  'showmodal' 'Form' call drop
;

'edName::Change' :
  'text' 'edName' getprop script.isform
  dup 'enabled' 'btnDesigner' setprop
  'enabled' 'btnTest' setprop
;

'show' 'Form' call


Форма редактора записи вьюшки:
'form' ctrl:
    'Form' 'name' :prop
    'Скрипт' 'text' :prop
    8 'border' :prop
    241 'left' :prop
    107 'top' :prop
    542 'width' :prop
    553 'height' :prop

'label' ctrl:
    '&Имя:' 'text' :prop
    0 'left' :prop
    0 'top' :prop
    520 'width' :prop
    16 'height' :prop
;ctrl

'label' ctrl:
    '&Название:' 'text' :prop
    0 'left' :prop
    40 'top' :prop
    520 'width' :prop
    16 'height' :prop
;ctrl

'label' ctrl:
    '&Текст:' 'text' :prop
    0 'left' :prop
    80 'top' :prop
    520 'width' :prop
    16 'height' :prop
;ctrl

'edit' ctrl:
    'edName' 'name' :prop
    'edName' 'text' :prop
    0 'left' :prop
    16 'top' :prop
    520 'width' :prop
    24 'height' :prop
;ctrl

'edit' ctrl:
    'edTitle' 'name' :prop
    'edTitle' 'text' :prop
    0 'left' :prop
    56 'top' :prop
    520 'width' :prop
    24 'height' :prop
;ctrl

'memo' ctrl:
    'mText' 'name' :prop
    'mText' 'text' :prop
    3 'scrollbars' :prop
    true 'fixedfont' :prop
    0 'left' :prop
    96 'top' :prop
    520 'width' :prop
    376 'height' :prop
;ctrl

'button' ctrl:
    'btnOK' 'name' :prop
    'OK' 'text' :prop
    true 'default' :prop
    352 'left' :prop
    480 'top' :prop
    80 'width' :prop
    24 'height' :prop
;ctrl

'button' ctrl:
    'btnCancel' 'name' :prop
    'Отмена' 'text' :prop
    true 'cancel' :prop
    440 'left' :prop
    480 'top' :prop
    80 'width' :prop
    24 'height' :prop
;ctrl

'button' ctrl:
    'btnDesigner' 'name' :prop
    'Дизайнер' 'text' :prop
    0 'left' :prop
    480 'top' :prop
    64 'width' :prop
    24 'height' :prop
;ctrl

'button' ctrl:
    'btnTest' 'name' :prop
    'Тест' 'text' :prop
    72 'left' :prop
    480 'top' :prop
    64 'width' :prop
    24 'height' :prop
;ctrl

;ctrl


Стековая машина на дельфях.
Пара тысяч строк кода.
Как основной тип данных Variant.
Удобно.
И скорость не особо низкая, т.к. компиляция + вызов не опкодов, а реальных процедур в виде методов объектов.
http://dkdens.narod.ru http://giref.forthworks.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.