в таком случае - несоответствие типа... (иначе-бы и вопроса не было :о)
с "простым" типом все нормально, с
array of string не прокатывает...
точне далее, на операторе присвоения - ошибка!
я использую структуру для работы с
RunCommandIndir... все остальные поля заполняются нормально, вот с массивом строк проблема... в инете пишут, что надо специльно определять тип и использовать его, для определения типа параметра... не понятно, почему в лоб нельзя? или я то-то опять не так все понимаю? :о)
Код: Выделить всё
type
RunCmdStruct = record
dir : string ; // in : directory
cmd : string ; // in : cmd to exec
arg : array of string ; // in : аргументы ком.строки для cmd
str : string ; // out : выхлоп скрипта
ret : integer ; // out : exit-code
opt : TProcessOptions ; // in : [poWaitOnExit,poUsePipes,poStderrToOutPut];
end;
type PRunCmdStruct = ^RunCmdStruct;
...
var
p_run_struct : PRunCmdStruct ; // указатель на run-структуру
...
p_run_struct^.dir := _dir; // in :
p_run_struct^.cmd := _cmd; // in :
p_run_struct^.arg := _arg; // in : <- this error
p_run_struct^.str := '' ; // out : clear
p_run_struct^.ret := 0 ; // out : clear
Код: Выделить всё
app.pas(155,22) Error: Incompatible types: got "{Open} Array Of AnsiString" expected "RunCmdStruct.{Dynamic} Array Of AnsiString"