DCL&LISP
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > DCL&LISP

DCL&LISP

Ответ
Поиск в этой теме
Непрочитано 14.07.2007, 14:21 #1
DCL&LISP
Holon
 
CNC
 
Israel
Регистрация: 07.07.2007
Сообщений: 302

Pochemu kod nerabotaet ?
Eato dcl

//---------------------------------------------------------------------------------------------------------
// MyEditText
//---------------------------------------------------------------------------------------------------------
MyEditText : dialog {
key = "Title";
label = "";//Title$ from lsp file
initial_focus = "Edit1";
spacer;
: row {
: column {
width = 5.09;
fixed_width = true;
spacer;
: text {
key = "Prompt";
label = "";//Prompt from lsp file
}
}
: edit_box {
key = "Edit1";//Edit1$ from lsp file
edit_width = 26.42;
fixed_width = true;
}
}
spacer;
: row {
fixed_width = true;
alignment = centered;
: ok_button {
width = 11;
}
: cancel_button {
width = 11;
}
}
}//MyEditText

Eato lisp:
;----------------------------------------------------------------------------------------------------------
; MyEditText - Dialog to edit text
; Arguments: 2
; Title$ = Dialog Title
; Edit1$ = Text to edit
; Syntax: (MyEditText " My Edit Text" "")
;----------------------------------------------------------------------------------------------------------
(defun MyEditText (Title$ Edit1$ / Dcl_Id% NewText$ Return#)
(princ "\nMyEditText")
(princ)
; Set Default Variables
(setq NewText$ Edit1$)
; Load Dialog
(setq Dcl_Id% (load_dialog "D:\\LISP\\MyEditText.dcl"))
(new_dialog "MyEditText" Dcl_Id%)
; Set Dialog Initial Settings
(set_tile "Title" Title$)
(set_tile "Prompt" "Text:")
(set_tile "Edit1" Edit1$)
; Dialog Actions
(action_tile
"accept"
"(setq NewText$ (get_tile \"Edit1\"))(done_dialog 1)"
)
(action_tile "cancel" "(done_dialog 0)")
(setq Return# (start_dialog))
; Unload Dialog
(unload_dialog Dcl_Id%)
(if (= Return# 0)
(setq NewText$ nil)
)
NewText$
) ;defun MyEditText
Просмотров: 1989
 
Непрочитано 14.07.2007, 15:01
#2
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


>Holon
Добрый день.
Первое, что тебе необходимо, это приобрести книгу по ЛИСП, фактически выбора здесь немного, поэтому - Н.Н.Полещук
Там, кстати, работа с диалоговыми окнами очень подробненько рассмотрена.
Ты находишся в самом начале пути и пишешь свои первые тексты, поэтому для начала (до тех пор пока разберешься,
где должны находиться какие файлы) размещай файлы ресурсов в рабочей папке, т.е. в той где файл чертежа, с которым работаешь.
Перенеси файл в рабочую папку и замени строку
(setq Dcl_Id% (load_dialog "D:\\LISP\\MyEditText.dcl"))
на
(setq Dcl_Id% (load_dialog "MyEditText.dcl"))
Удачи тебе в LISP"е.
Кайф программирования не сравним ни с чем,
разве только чашечка утреннего кофе, ну и еще кое что... ЯТД
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 14.07.2007, 16:35
#3
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


; 1 form loaded from #<editor "D:/LISP/MyEditText.LSP">
_$ (MyEditText)
; error: too few arguments
_$


Rezultat totzhe _failes.lsp & _.dsl nahodjatsja v odnom kataloge,
v moem sluchae utilita _inspect daet 1, a posle ispravlenija daet -1, a
knigu ja objazatel'no kuplju.
Holon вне форума  
 
Автор темы   Непрочитано 14.07.2007, 17:32
#4
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Mozhet but' problema v eatom

...............
LOG Watch
...............
(SET_TILE "Title" TITLE$) = <*** ERROR ***>
...............


...............
LOG Watch
...............
(SET_TILE "Edit1" EDIT1$) = <*** ERROR ***>
...............
Holon вне форума  
 
Непрочитано 14.07.2007, 21:51
#5
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Holon
; 1 form loaded from #<editor "D:/LISP/MyEditText.LSP">
_$ (MyEditText)
; error: too few arguments
_$


Rezultat totzhe _failes.lsp & _.dsl nahodjatsja v odnom kataloge,
v moem sluchae utilita _inspect daet 1, a posle ispravlenija daet -1, a
knigu ja objazatel'no kuplju.
Ваша беда еще и в том, что текст не ваш! :evil:
Такие случаи бывают, когда приходится рабирать чужой в порядке обучения.
Тогда хотя бы, внимательно его смотрите. Разбирайте работу функции,
анализируйте дианостику и исправляйте ошибки.
P.S. Я эту минипрограммку не смотрел, не анализировал и не исправлял ошибки. Я только посоветовал, как её запустить.
:shock: Пример вызова функции есть в тексте.
; Syntax: (MyEditText " My Edit Text" "")
Она вызывается с параметрами и диагностика ошибки (см.красненький текст) прямо об этом говорит
...
_$ (MyEditText)
; error: too few arguments
_$
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 15.07.2007, 13:05
#6
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Holon
А что не получается-то? Попробовал запустить код - всё нормально работает!
Alan Твой совет, по-моему, по поводу адрессации - это дурной тон для программиста к которому не надо привыкать. (http://www.autocad.ru/cgi-bin/f1/board.cgi?t=36804zP)
Евгений А. вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > DCL&LISP