olegy123 писал(а):Вот бы с паскалем так..
Свят, свят, свят... и так уже слишком много паскалей для одного компилятора. ($MODE FPC, $MODE TP, $MODE OBJFPC,$MODE DELPHI...)
Модератор: Модераторы
olegy123 писал(а):Вот бы с паскалем так..
function DrawLine_com(operands:TCommandOperands):TCommandResult;
var
pline:PGDBObjLine;
p1,p2:gdbvertex;
begin
if commandmanager.get3dpoint('Specify first point:',p1) then//просим первую точку
if commandmanager.get3dpoint('Specify second point:',p2) then//просим вторую точку
begin
pline := AllocEnt(GDBLineID);//выделяем память
pline^.init(nil,nil,0,p1,p2);//инициализируем
zcSetEntPropFromCurrentDrawingProp(pline);//присваиваем текущие слой, вес и т.п
zcAddEntToCurrentDrawingWithUndo(pline);//добавляем в чертеж
end;
result:=cmd_ok;
end;
CreateCommandFastObjectPlugin(@DrawLine_com,'DrawLine',CADWG,0);
zub писал(а):Зачем при объявлении 100500 функций надо писать полную декларацию? Потом приспичивает добавить например arg2 и приходится 100500 раз копипастить.
какнибудь так было бы гораздо логичней:
zub писал(а):всё получается. но много копипасты + в режиме delphi нет контроля аргументов = можно прокопипастится
Лекс Айрин писал(а):Дак это от отсутствия стандартов))
zub писал(а):Похоже вы путаете мои "команды" и скрипты.
zub писал(а):function command1(arg1:TMyArg):TMyCommandResult;
zub писал(а): Проблема в том что нельзя (без костылей) централизовано определить множество одинаковых функций
zub писал(а):var
com:TMyCommand;
..
com:=GetNeededCommand;
res:=com(arg1:TMyArg)
type TMyArgArray = array of TMyArg;
TMyCommand=function(arg1:TMyArgArray):TMyCommandResult
..
com:=GetNeededCommand;
res:=com(arg1:TMyArgArray);
zub писал(а):это усложняет содержимое команд. и добавляет кучу проблем с синтаксисом в рантайме
zub писал(а):уж незнаю почему, но макросы и инклуды - отношу к костылям
case ACommand of
cmd1: Result := 1+1;
cmd2: Result := 2*2;
cmdN: Result := 100500 div 100500;
end;
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2