Тема: Есть ли у нас в Delphi аналог vbCr ?
Есть ли у нас в Delphi аналог vbCr ?
vbCr — это перевод строки ("\n" в Lisp и C++) как написал уважаемый Александр Ривилис
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Delphi → Есть ли у нас в Delphi аналог vbCr ?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Есть ли у нас в Delphi аналог vbCr ?
vbCr — это перевод строки ("\n" в Lisp и C++) как написал уважаемый Александр Ривилис
> Alexys
Могу предположить, что это: #13
#10#13 - перевод на новую строку, например при передаче в диалоговое окно.
можно наоборот
#13 - нажатие Enter. Если из Delphi посылать в AutoCAD строку, которая должна выполниться через SendCommand, то строку надо завершать #13. То есть выполнить отправленную строку. При этом сама строка должна быть LISP-выражением и внутри нее могут быть \n, которые уже будут интерпретироваться самим LISP как внутренние управляющие символы.
Примеры:
1. Библиотечная функция
function ruMakeLoadString(LspFileName: string): string; begin Result := ChangeFileExt(LspFileName, ''); StrReplace(Result, '\', '/', [rfReplaceAll, rfIgnoreCase]); Result := '(load "' + Result + '")' + #13; end;
Здесь учитывается еще и необходимость замены слэшей на обратные.
2. Применение
AcadApplication.ActiveDocument.SendCommand(ruMakeLoadString(FAcadDocLsp));
Применение перехода на новую строку внутри Delphi-программы
Application.MessageBox(pchar('Не найден' + #10#13 + TemplateName + #10#13 + 'Запуск AutoCAD невозможен!'), 'Ошибка', MB_OK + MB_ICONHAND + MB_DEFBUTTON1 + MB_APPLMODAL);
Часто #10#13 заменяют на константу в каком-нибудь модуле
const CRLF = #13#10;
Тогда
Application.MessageBox(pchar('Не найден' + CRLF + TemplateName + CRLF + 'Запуск AutoCAD невозможен!'), 'Ошибка', MB_OK + MB_ICONHAND + MB_DEFBUTTON1 + MB_APPLMODAL);
Уважаемый ShaggyDoc, а не подскажите в продолжении по данной теме () ? Вы использовали GetString в своих программах ? Можно ли посредством настраиваемого меню автокада (тулбара) вводить значения в коммандную строку на приглашение getstring ?
Вот здесь топик перекресный https://www.caduser.ru/forum/topic30083.html
Я дельфист. У меня и еще одного товарища не получается число прописать и загнать в getstring.
А вот у дорогого Александр Ривилис и другого товарища получается.
Как решить trouble ?
> Alexys
Использовать любые макросы (просто символы) в любом меню (toolbar, screen, pop) можно. Все, что там написано, передается в командную строку и обрабатывается интерпретатором. Надо только, чтобы пользователь, с умом, в нужный момент, нажимал нужные кнопки.
Но зачем это вообще делать, работая в Delphi? Уж если есть программа, то в ней может быть форма, а к форме могут быть привязаны свои кнопки, вызывающие словари, справочники и т.п. Незачем впутывать в это дело AutoCAD - все легко решается внутри программы.
Единственная уважительная причина - взять какое-то значение строки из чертежа, указав на существующее "что-то похожее на строку" (текст, атрибут блока, размер). Но это делать надо на LISP (проще), вернув результат обратно в программу.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Delphi → Есть ли у нас в Delphi аналог vbCr ?
Форум работает на PunBB, при поддержке Informer Technologies, Inc