hi,
brandelh hat geschrieben:
Ich frage mich jetzt ob das dann auch local Variablen sind, oder privates wie bei parameters. Aber "im" Codeblock geht es nicht.
hm ... eine PRIVATE müsste man mit
Code: Alles auswählen
MSGBOX( IF(IsMemvar(PValue(1),MEMVAR_PRIVATE),"PRIVATE","LOCAL") )
raus bekommen (s.u.)
brandelh hat geschrieben:
Für einen Codeblock kannst du aber 1 Array als einen Parameter übergeben und innerhalb dann auswerten
hm ja "im" Codeblock ein Array ... hm also vorhandens Array "umbaun"
brandelh hat geschrieben:
... allerdings frag ich mich wie man das noch warten soll, wenn die Parameterleiste alleine schon mehr als eine Zeile ausmacht ...
das war eher eine theoretische Frage "was-wäre-wenn"
zu den Parameter und PValue() vielleicht noch der Nachtrag mit
folgender Construktion :
Code: Alles auswählen
//
// NEW : 3st parameter "c"
//
AADD(::oMain:aAlarm,{cTime,{|a,b,c| SHOWTERMIN(a,b,c) }, cMsg,.F.})
...
//
// EVAL "nur" mit 2 Parameter
//
EVAL(::aAlarm[I,2], cTime,::aAlarm[I,3])
//
//
//
FUNCTION SHOWTERMIN()
LOCAL oThread := Thread():new()
LOCAL i,iMax
LOCAL aVar := {}
iMax := PCOUNT() // = 2
FOR i = 1 TO iMax
AADD(aVar,PValue(i) )
MSGBOX( IF(IsMemvar(PValue(i),MEMVAR_PRIVATE),;
"PRIVATE","LOCAL") )
NEXT
oThread:start( "SHOWMSG", aVar )
RETURN NIL
draus folgt Parameter "Anzahl" Codeblock >= "Anzahl" EVAL Parameter
d.h. die "Anzahl" muss nicht "gleich" sein ( was mir hilft )
trotzdem werde ich wohl deinem Rat folgen und meine "Alarm" Class
umschreiben damit die das Array, mit Array "im" Codeblock, verwendet
statt einzelne Parameter.
gruss by OHR
Jimmy