variable globale partagée

jannold2

Membre confirmé
11 Avril 2007
55
0
40
Bonjour
je me fais un petit programme en applescript studio.
pour faire quelque chose de "propre" j'ai voulu avoir 2 scripts différents (il y a 2 onglets, avec beaucoup de boutons dans chaque, et je voulais associer les événements de l'un à un script, et pareil pour l'autre)
manque de pot, il y a une variable qe j'aimerai partager entre les 2 scripts et je ne sais pas comment faire

il y a 2 fichiers : toto.applescript et tata.applescript
j'ai essayé global et property, ca marche pas.

dans toto :
property mavarglobal:"initial"

et dans tata
get mavarglobal of toto ou script "toto" ou script "toto.applescript"

et rien n'y fait


merci de m'aider

Thomas
 
Bonjour
je me fais un petit programme en applescript studio.
pour faire quelque chose de "propre" j'ai voulu avoir 2 scripts différents (il y a 2 onglets, avec beaucoup de boutons dans chaque, et je voulais associer les événements de l'un à un script, et pareil pour l'autre)
manque de pot, il y a une variable qe j'aimerai partager entre les 2 scripts et je ne sais pas comment faire

il y a 2 fichiers : toto.applescript et tata.applescript
j'ai essayé global et property, ca marche pas.

dans toto :
property mavarglobal:"initial"

et dans tata
get mavarglobal of toto ou script "toto" ou script "toto.applescript"

et rien n'y fait


merci de m'aider

Thomas


AppleScript a beaucoup de probleme avec les variables globales.
Personnellement j'utilise les "keys" :

set xxx to (call method "defaultObjectForKey:" with parameter "xxx") as yyy

avec xxx le nom de la variable et yyy le type.

Je passe par un petit module Obj-C dont voici le source :
Bloc de code:
#import "UserDefaults.h"


@implementation NSApplication (ASKAUserDefaults)

- (id)defaultObjectForKey:(NSString *)defaultName
{
	return [[NSUserDefaults standardUserDefaults] objectForKey:defaultName];
}

- (void)setDefaultObject:(id)value forKey:(NSString *)defaultName
{
	[[NSUserDefaults standardUserDefaults] setObject:value forKey:defaultName];
}

- (void)removeDefaultObjectForKey:(NSString *)defaultName
{
	[[NSUserDefaults standardUserDefaults] removeObjectForKey:defaultName];
}

- (void)registerDefaultObjects:(NSArray *)objects forKeys:(NSArray *)keys
{
	[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjects:objects forKeys:keys]];
}

@end

Cordialement
 
Comme jannold2, j'aimerais partager une variable entre plusieurs applescripts. J'ai bien noté la réponse de Didier Guillion, mais n'y a t'il pas une solution en applescript "pur" ?

Merci beaucoup d'avance, je m'arrache un peu les cheveux là...
 
AppleScript a beaucoup de probleme avec les variables globales.
Personnellement j'utilise les "keys" :

set xxx to (call method "defaultObjectForKey:" with parameter "xxx") as yyy

avec xxx le nom de la variable et yyy le type.

Je passe par un petit module Obj-C dont voici le source :
Bloc de code:
#import "UserDefaults.h"


@implementation NSApplication (ASKAUserDefaults)

- (id)defaultObjectForKey:(NSString *)defaultName
{
    return [[NSUserDefaults standardUserDefaults] objectForKey:defaultName];
}

- (void)setDefaultObject:(id)value forKey:(NSString *)defaultName
{
    [[NSUserDefaults standardUserDefaults] setObject:value forKey:defaultName];
}

- (void)removeDefaultObjectForKey:(NSString *)defaultName
{
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:defaultName];
}

- (void)registerDefaultObjects:(NSArray *)objects forKeys:(NSArray *)keys
{
    [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjects:objects forKeys:keys]];
}

@end
Cordialement

tu peux aussi travailler avec ton application delegate si tu veux storer des objets globaux

id AppDelegate = (id <NSApplicationDelegate>)[[NSApplication sharedApplication] delegate];

....

if ([[myAPP class]
instancesRespondToSelector:@selector(method:)]) {
[myAPP
performSelector:@selector(method:) withObject:self];
}
 
Comme jannold2, j'aimerais partager une variable entre plusieurs applescripts. J'ai bien noté la réponse de Didier Guillion, mais n'y a t'il pas une solution en applescript "pur" ?

Merci beaucoup d'avance, je m'arrache un peu les cheveux là...
Bonjour

Property en ASS n'est pas mémorisé comme avec AS (il me semble) quand on quitte l'application.

J'avais lue (ça doit dater de Panther) qu'il suffit d'écrire les variables a mémoriser dans un fichier texte et d'aller les modifier ou les chercher suivant la demande.

Si tu ne connait pas d'autres languages qu'AS, c'est à tester.

@+