
Playmobil (./28) :
Merci Rajah !
Bha mon code sans tes conseils et sans le décortiquement de tes sources, il en serait pas ou il en serait !![]()
Pour le moment je suis bloqué sur la gestion des RSC avec icônes couleurs... Je sait les charger, les afficher, mais certaines instructions comme :
CHAR{{OB_SPEC(adr%(arbre&),objet&)}}=texte$+chr$(0)
me font planter le programme !![]()
J'ai cerné le problème, c'est que mon adresse d'arbre change selon que je soit au début de mes initialisations (juste après avoir chargé le RSC) ou plus loin dans le programme... (l'adresse change bizareement de quelques octets vers le haut !)
Bref, encore une erreur de ma part, j'en suis sur, mais où ?
Sinon, quel est le rapport entre Mintnet/Gluestick/Sting ???
Je suis une brêle en réseau, j'ai juste suivi le tuto de ProTos pour faire la passerelle entre Windows et Aranym, et ça a fonctionné du premier coup...![]()
Ca me fait penser à ouvrir un nouveau topic d'ailleur !NetSurf = OK, Highwire, Cab, Wensuite = NADA !
Rajah (./31) :
CHAR{{OB_SPEC(adr%(arbre&),objet&)}}=texte$+chr$(0)
Déjà, tu peux virer le chr$(0), c'est en trop. Quand on fait un CHAR{}, un nullbyte est toujours écrit à la fin implicitement. Et secondo, la longueur du texte$ ne doit pas dépasser ce que tu as mis dans le RSC. Si l'adr%(arbre&) change, effectivement, ça va planter (OB_SPEC ne pointera pas sur une structure TEDINFO). Attention aussi à la nature de l'objet : vu comme ça, il ne doit pas être un STRING, mais un TEXT, FTEXT, BOXTEXT ou FBOXTEXT.
Gluestick est à lancer dans MiNT si tu veux émuler la couche STinG sous MiNTNet. NetSurf utilise d'emblée MiNTNet. Pour CAB et HighWire, il faut utiliser le module adéquat pour la couche TCP/IP. Pareil pour Wen.Suite dont la couche est propriétaire.
Comme je n'ai jamais réussis à ouvrir un RSC contenant des icônes couleurs avec un simple RSRC_LOAD, j'ai donc décortiqué ce que FaceValue faisait, car en l'utilisant, il ouvre sans sourciller un RSC couleurs...
FUNCTION get_rsc
$F%
RETURN RSRC_LOAD(rsc_path_name$)
ENDFUNC
c'est pourtant un simple RSRC_LOAD ! Il faut dire aussi qu'il y a un INLINE a merger donc celà vient surement de là ?
A quoi correspond le $F% ?
de même, j'ai un mal de chien à récupérer dans mon code l'adresse d'un arbre avec RSRC_GADDR, il me retourne toujours 0 !!! Je regarde le code de FaceValue et il fait appel a xrsrc_gaddr :
FUNCTION xrsrc_gaddr(type&,tree&)
$F%
LOCAL tree%
~RSRC_GADDR(type&,tree&,tree%)
RETURN tree%
ENDFUNC
IDEM, un simple RSRC_GADDR précédé de $F% !
Moi être perdu !

Pour le moment j'utilise donc un mix de code FaceValue (pour charger le RSC couleurs) + code GFAFLY4.9 (pour utiliser les objets étendus) et tout fonctionne jusqu'a ce que je veux changer un TEXT avec le fameux CHAR{{OB_SPEC(adr%(arbre&),objet&)}}=texte$
celà ne vient pas de la longueur, c'est bien un objet TEXT et pas STRING...
Je peux le changer sans faire planter le programme JUSTE après les initialisations de FaceValue, mais une fois passé les initialisations de GFAFLY, plus possible, plantage direct ! Et ce que ce soit que j'utilise le pointeur que je récupère avec un RSRC_GADDR, ou en utilisant le pointeur sauvegardé juste après les inittialisations de FaceValue...

Pourtant l'affichage fonctionne, le changement d'état de boutons, hide et autre changement d'état fonctionne sans broncher...