ich möchte dieses Konstrukt flexibler gestallten:
Code: Alles auswählen
bCollBlock := {|oService,n| AADD(aInfos,{ n,;
oService:getProperty("AdapterType"),;
oService:getProperty("Caption"),;
oService:getProperty("Description"),;
oService:getProperty("DeviceID"),;
oService:getProperty("Index"),;
oService:getProperty("Name"),;
oService:getProperty("PhysicalAdapter") })}
Normalerweise würde ich es als Parameter des Codeblocks aufnehmen, aber der Aufbau ist festgelegt:
Code: Alles auswählen
oRange := oSheet:Range( "A1:C5" )
bBlock := { |oElem, n| /*... oElem benutzen*/ }
ComEvalCollection( oRange, bBlock ) // oRange ist erster Parameter von bBlock => oElem und n ist der automatische Parameter wie bei aEval
Code: Alles auswählen
aInfos := {}
nMaxI := len(aMSIitemList)
cCollBlock := "{|oService,n| AADD(aInfos,{ n, "
for nI := 1 to nMaxI
cCollBlock += "oService:getProperty('"+aMSIitemList[nI]+"')"
if nI < nMaxI
cCollBlock += ", "
else
cCollBlock += " })} "
endif
next
? "cCollBlock = ",cCollBlock
bCollBlock := &(cCollBlock)
Code: Alles auswählen
cCollBlock := "{|oService,n,aInfos| AADD(aInfos,{ n, "
Mit PRIVATE funktioniert es und ich werde es wohl so machen müssen