Тема: Oшu6ka: quit / exit abort

я только што начал програмировать в dcl
и в первой же проге
ошибка
текст проги DCL:
dd_radio : dialog {
label = "Тестирование переключателей";
fixed_height = true;
: boxed_column { label = "Выберите вариант";
: radio_column {
: radio_button {key = "radio1"; label = "Radio1"; value = 1;}
: radio_button {key = "radio2"; label = "Radio2"; }
: radio_button {key = "radio3"; label = "Radio3"; }
}
}
: row {
ok_button;
cancel_button;
}
}
ТЕКСТ ЛИПС КОДА:
(defun C:HELLO( / dcl_id )
  (setq dcl_id (load_dialog "hello.dcl")) ; Загрузка DCL файла
  (if (not (new_dialog "hello" dcl_id))   ; Инициализируется диалог.
    (exit)                               ; Выход, если диалог не работает
                                         ; Работа.
)
  (start_dialog)                          ; отображение диалога
   (unload_dialog dcl_id)                  ; выгрузка DCL файла.
  (princ)
)
проблемма как я понял в том что диологовое окно не загружаеться
я думал что это из-за того што дсл находится не в карневом каталоге
но и там тоже не работает
дсл не запускаеться
я пробовал в  r14,2000,2002,2004 версиях но и там пишет тоже самое может кто подскажет

Re: Oшu6ka: quit / exit abort

Примерно, так:

(defun c:hello (/ dcl_id)
  (if (and (setq dcl_id (load_dialog "<диск>/<путь>/<файл>.dcl")) ;_ Загрузка DCL файла, если не на путях поддержки, то с полным путём.
       (new_dialog "dd_radio" dcl_id) ;_ Инициализируется диалог.
      ) ;_ end of and
;;;    (exit) ;_ - бяка, тьфу на него, тьфу..!
    (progn
      (start_dialog) ;_ отображение диалога
;;; Работа.
      (unload_dialog dcl_id) ;_ выгрузка DCL файла.
    ) ;_ end of progn
  ) ;_ end of if
  (princ)
) ;_ end of defun

Re: Oшu6ka: quit / exit abort

> spook
Я бы FINDFILE  еще воткнул для поиска файла и посоветовал бы все-таки рабочие файлы заносить в папки путей поддержки

Re: Oшu6ka: quit / exit abort

Геннадий aka PG пишет:

Я бы FINDFILE еще воткнул для поиска файла

(load_dialog "<диск>/<путь>/<файл>.dcl")

вернёт nil, если не найдёт файл, ищи его - не ищи. Не вижу оснований применять 'FINDFILE' если путь указывается полностью.

и посоветовал бы все-таки рабочие файлы заносить в папки путей поддержки

При использовании некомпилированных лиспов, это, как правило - оправдано (есть нюансы), но лично я предпочитаю компилировать с включением DCL в VLX - дабы не потерялось.

Re: Oшu6ka: quit / exit abort

> spook
Тогда полный путь надо убирать, естес-но, из-за тех же нюансов

Re: Oшu6ka: quit / exit abort

Геннадий aka PG пишет:

Тогда полный путь надо убирать, естес-но, из-за тех же нюансов

Перед компиляцией - естественно.

Re: Oшu6ka: quit / exit abort

А если не компилировать, то зачем его вписывать принудительно.
Непрощесделать рабочую папку и прописать ее в пути поддержки. Ведь Denver только начал программировать, и проблема с сокрытием кода не так актуальна. ИМХО

Re: Oшu6ka: quit / exit abort

спасибо всем все получилось ,
но появилась новая проблема в DCL файле :
: edit_box { key = "edit1"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;label = "введите высоту изделия  :";}
выводит окно но запрос "введите высоту изделия " находится
на очень большом расстоянии от самого поля ввода
немогу разобраться почему

Re: Oшu6ka: quit / exit abort

Эти вещи рассстаскиваются на всю ширину окна, которое вычисляется в автомате. Посмотри что у тебя определяет эту ширину, может кнопочки внизу (Ok, Cancel...), но расстояние все равно будет не малым.
И еще для удобства: соблюдай последовательность записи, label - обычно пишется впереди

Re: Oшu6ka: quit / exit abort

Целиком код окна можно посмотреть?

Re: Oшu6ka: quit / exit abort

dd_edit : dialog {
label = "&#195;&#224;&#240;&#236;&#238;&#248;&#234;&#224; 1.6 ";
fixed_width = true;
fixed_height = true;
alignment = centered;
: column {
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#226;&#251;&#241;&#238;&#242;&#243; &#248;&#234;&#224;&#244;&#224;            :";key = "edit1"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#248;&#232;&#240;&#232;&#237;&#243; &#241;&#229;&#234;&#246;&#232;&#232; &#185;1    :"; key = "edit2"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#248;&#232;&#240;&#232;&#237;&#243; &#241;&#229;&#234;&#246;&#232;&#232; &#185;2    :"; key = "edit6"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#248;&#232;&#240;&#232;&#237;&#243; &#241;&#229;&#234;&#246;&#232;&#232; &#185;3    :"; key = "edit7"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#238;&#242;&#241;&#242;&#243;&#239; &#234;&#240;&#251;&#248;&#234;&#232; &#241;&#239;&#229;&#240;. :"; key = "edit10"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#238;&#242;&#241;&#242;&#243;&#239; &#234;&#240;&#251;&#248;. &#241;&#235;&#229;&#226;&#224;   :"; key = "edit11"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#238;&#242;&#241;&#242;&#243;&#239; &#234;&#240;&#251;&#248;. &#241;&#239;&#240;&#224;&#226;&#224;: "; key = "edit12"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#227;&#235;&#243;&#225;&#232;&#237;&#243; &#248;&#234;&#224;&#244;&#224;          :"; key = "edit5"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#226;&#251;&#241;&#238;&#242;&#243; &#246;&#238;&#234;&#238;&#235;&#255;            :"; key = "edit3"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#234;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#255;&#249;&#232;&#234;&#238;&#226;    :"; key = "edit8"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#226;&#251;&#241;&#238;&#242;&#243; &#244;&#224;&#241;&#224;&#228;&#224; &#255;&#249;&#232;&#234;.:"; key = "edit9"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: edit_box {label = "&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#248;&#232;&#240;&#232;&#237;&#243; &#196;&#209;&#207;               :"; key = "edit4"; value = "0";fixed_width = true; fixed_height = true; alignment = centered;}
: row {
fixed_width = true;
fixed_height = true;
alignment = centered;
    ok_button;
cancel_button;
}}
}
как видно из примера кнопки находяться в центре так что я не знаю

Re: Oшu6ka: quit / exit abort

да у сайта явная проблема с кодировками

Re: Oшu6ka: quit / exit abort

> denver
Нет, это проблемы у Била Гейтса...:)
Из XP в буфер нужно копировать в соответствующей раскладке...:)
Хотя с Билом я погорячился...как раз у него проблем меньше всего...:)))))))

Re: Oшu6ka: quit / exit abort

1. Зачем создавать row из ok и cancel, есть же готовое: ok_cancel
2. как вариант можно пробелами подогнать поля ввода примерно в линию, но так как ширина символов разная, точность будет примерная. И это "деревянный вариант" :) Да и выровнять всё в таком случае нужно по левому краю.

dd_edit : dialog {
label = "Aa?iioea 1.6 ";
fixed_width = true;
fixed_height = true;
alignment = left;
: column {
: edit_box {label = "Aaaaeoa aunioo oeaoa :           ";key = "edit1"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa oe?eio naeoee ?1 :    "; key = "edit2"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa oe?eio naeoee ?2 :    "; key = "edit6"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa oe?eio naeoee ?3 :    "; key = "edit7"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa ionooi e?uoee nia?. : "; key = "edit10"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa ionooi e?uo. neaaa :  "; key = "edit11"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa ionooi e?uo. ni?aaa:  "; key = "edit12"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa aeoaeio oeaoa :         "; key = "edit5"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa aunioo oieiey :           "; key = "edit3"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa eiee?anoai yueeia :   "; key = "edit8"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa aunioo oanaaa yuee.:"; key = "edit9"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
: edit_box {label = "Aaaaeoa oe?eio ANI :               "; key = "edit4"; value = "0";fixed_width = true; fixed_height = true; alignment = left;}
}
ok_cancel;
}

3. объединить названия полей как text в колонку, сами edit_box тоже в колонку без label. Оба столбца объединить в строку.

dd_edit1 : dialog {
label = "Aa?iioea 1.6 ";
fixed_width = true;
fixed_height = true;
alignment = left;
:boxed_row {
: column {
:text {label = "Aaaaeoa aunioo oeaoa :";fixed_width = true;}
:text {label = "Aaaaeoa oe?eio naeoee ?1 :";fixed_width = true;}
:text {label = "Aaaaeoa oe?eio naeoee ?2 :";fixed_width = true;}
:text {label = "Aaaaeoa oe?eio naeoee ?3 :";fixed_width = true;}
:text {label = "Aaaaeoa ionooi e?uoee nia?. :";fixed_width = true;}
:text {label = "Aaaaeoa ionooi e?uo. neaaa :";fixed_width = true;}
:text {label = "Aaaaeoa ionooi e?uo. ni?aaa:";fixed_width = true;}
:text {label = "Aaaaeoa aeoaeio oeaoa :";fixed_width = true;}
:text {label = "Aaaaeoa aunioo oieiey :";fixed_width = true;}
:text {label = "Aaaaeoa eiee?anoai yueeia :";fixed_width = true;}
:text {label = "Aaaaeoa aunioo oanaaa yuee.:";fixed_width = true;}
:text {label = "Aaaaeoa oe?eio ANI :";fixed_width = true;}
}
: column {
: edit_box {key = "edit1"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit2"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit6"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit7"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit10"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit11"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit12"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit5"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit3"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit8"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit9"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
: edit_box {key = "edit4"; value = "0";fixed_width = true; fixed_height = true; alignment = left;edit_limit = 6;}
spacer_1;
}
}
spacer_1;
ok_cancel;
}

Я бы сделал примерно так. Успехов!

Re: Oшu6ka: quit / exit abort

запрос "введите высоту изделия " находится
на очень большом расстоянии от самого поля ввода

А попробуй ка подсократить эту глубокомысленную подпись до лаконичного "Высота:" или еще лучче "H" При коротких подписях расстояние уменьшается почему то... Скорей всего это из за системных шрифтов (кирпич в огород Билла?)
По кодировкам...
В 2000 винде при копировании тоже надо переключаться на RU, а в 98 кажется не обязательно. А лучше перед отправкой смотреть в текст smile
.... и когда же будет обешанная регистрация или хотя бы предпросмотр.....

Re: Oшu6ka: quit / exit abort

ok спасибо всем
я разобрался с помощью СТАСА