Titolo: Accedere ad un array da metodi o processi diversi
Categoria: Stile |
|
Ultimo Aggiornamento: 29/09/04 |
In 4th Dimension non è possibile passare un array come parametro ad un metodo o ad un processo in maniera diretta. Esistono comunque due modi per superare questo ostacolo:
1) il più semplice è quello di passare come parametro al metodo chiamato un puntatore all'array. Questo sistema funziona solo con array processo o interprocesso. Ad esempio:
` Method1
Method2 (->MyArray)
` Method2
C_POINTER($1)
Questo metodo è molto usato anche perché i cambiamenti apportati dal Method2 sono condivisi dal Method1.
2) il metodo più affascinante è invece sicuramente quallo di riversare l'array in un blob. Questo approccio risulta molto utile soprattutto nelle chiamate fra processi diversi con array non interprocesso, e più in generale quando comunque non risulta necessario che gli array dei due metodi siano "lo stesso array", a differenza del caso precedente. Ovviamente, nella comunicazione tra processi diversi, il passaggio di un puntatore ad un array locale o di processo come parametro non funzionerebbe. Vediamo un esempio di questo uso:
` Method1:
VARIABLE TO BLOB (MyArray;vBlob)
$id_l:=
New process ("Method2";32000;"ProcessName";vBlob)
Il Method2 inizierà così:
` Method2
C_BLOB($1)
ARRAY LONGINT(MyArray;0)
BLOB TO VARIABLE ($1; MyArray)
Inviato da: PierPaolo Sichera |
|
Visite: 13155 |
Se accedi con utente e password, puoi aggiungere dei commenti.