Weather / Spam / www |
Lyon Weather
aldweb against spam
|
|
|
|
|
|
|
- Forum - Palm
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 257
Topic # 1200 |
Définir un StringPtr |
25/04/2005 @ 23:45 by Alain
|
Bonsoir, j'aimerai utiliser la fonction ctlSetLabel pour attribuer un label à un bouton dans le prog. Le problème est que cette fonction accepte un StringPtr et je ne sais pas comment, à partir d'une string définir un pointeur de chaîne. Pouvez-vous m'aider ? Merci d'avance. Alain |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 1 -------- 28/04/2005 @ 22:49 by Alain
visitor |
j'ai trouvé un moyen en utilisant StrStr. Cette fonction renvoi un StringPtr sur le début d'une chaine contenu dans une chaine. Si on prend comme paramètre 2 fois la même chaine, le StringPtr pointe le début de la dite chaine. Un peu tiré par les cheveux mais ça marche. Un moyen plus simple ? Merci d'avance. Alain |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 2 -------- 28/04/2005 @ 22:52 by aldweb
visitor |
Alain,
Voici la définition d'un StringPtr en Pascal :
Type StringPtr = ^String;
Un peu moins tiré par les cheuveux
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 3 -------- 29/04/2005 @ 01:36 by Alain
visitor |
Merci mais j'ai bien peur de ne pas comprendre comment mettre ça en pratique. Supposons une variable string nommée MaChaine ayant pour valeur 'MonTexte' Le type StringPtr étant déjà défini dans PalmAPI1.pas (j'ai oublié de précisé que je programme sur PPcompiler ..), je ne vois pas comment faire ensuite avec ma variable. Merci encore Alain |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 4 -------- 29/04/2005 @ 01:59 by aldweb
visitor |
Reprenons. Tu peux faire un truc comme ceci :
Procedure SetMyLabel(MyObjID:UInt16); var MyString: String; FrmP: FormPtr; ObjI: UInt16; begin MyString:='Toto'; FrmP:=FrmGetActiveForm; ObjI:=FrmGetObjectIndex(FrmP,MyObjID); CtlSetLabel(FrmGetObjectPtr(FrmP,ObjI),@MyString); end. Note le @ devant MyString qui indique que je pointe vers son adresse
Ou alors, avec le StringPtr :
Procedure SetMyLabel(MyObjID:UInt16); type StringPtr = ^String; var MyStringP: StringPtr; FrmP: FormPtr; ObjI: UInt16; begin MyStringP^:='Toto'; FrmP:=FrmGetActiveForm; ObjI:=FrmGetObjectIndex(FrmP,MyObjID); CtlSetLabel(FrmGetObjectPtr(FrmP,ObjI),MyStringP); end.
Enfin, teste ça avant de le valider, c'est du code que je te tape à la volée à cette heure déjà matinale... donc sans garantie aucune ! Surtout que je me banane tout le temps sur ces foutus pointeurs
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 5 -------- 29/04/2005 @ 14:15 by Alain
visitor |
Bonjour, la solution avec l'@ fonctionne bien (je ne connaissais pas ...) Par contre, le MyStringP^:='Toto' me pose encore un problème (plantage du Palm) Je regarde ça de près et te tiens au courant. Merci de ton aide. Alain |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 6 -------- 29/04/2005 @ 17:55 by Alain
visitor |
Je confirme. MyStringP^:='Toto' provoque un plantage du Palm sauf si la chaine ne comprend que 1 ou 2 caractères. Dans ce cas il ne se passe rien du tout (je veux dire que le pushButton dont je modifie le libellé reste noir et il n'y a aucun plantage) Etonnant, non ? (comme dirait le regretté Desproges) Problème de compilateur ? Problème de programmeur ? |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 7 -------- 29/04/2005 @ 21:29 by aldweb
visitor |
Et un truc du genre ?
MyStringP^:='Toto'+chr(0);
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 8 -------- 30/04/2005 @ 11:31 by Alain
visitor |
pour obtenir une chaine se terminant par 0. j'ai essayé mais pour le moment, pas de changement. Je vais reprendre ça dans un programme plus dépouillé pour être sur de ne pas faire de bétise et je te tiens au courant. A tout hazard, j'ai posé la question à Philippe Guillot des fois que coté compilateur .... Merci de ton aide. A+ Alain |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 9 -------- 30/04/2005 @ 12:10 by aldweb
visitor |
Tu auras importuné Philippe pour rien, son compilo fonctionne dans ce domaine c'est sûr et certain !
C'est plus mon petit exemple de code qui doit avoir un petit bug quelque part, mais je l'avais écrit à 1 heure du matin de mémoire et je ne l'ai pas vraiment re-regardé depuis...
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 10 -------- 30/04/2005 @ 13:27 by Alain
visitor |
j'espère que non. J'ai juste laissé ma question sur le forum afin que d'autres newbies de mon espèce puisse éventuellement apprendre des bricoles (tel que le @ par exemple) @ suivre .... |
|
|
topic active
topic closed
Sticky
New message -
Correct message
Close topic
Make sticky
|
|
|
|
|
|