aldweb

Fermer I. aldweb

Fermer II. Gratuitiels PC

Fermer III. Gratuitiels Palm

Fermer IV. Partagiciels Palm

Fermer V. iziBasic Palm

Fermer VI. Connaissance Palm

Fermer VII. Ordinateur Poche

Fermer VIII. miniPortail

Spécial !



Version mobile
de l'aldweb Site

m.aldweb.com


Ni Français, ni Anglais ?

Essayez donc l'un de ces drapeaux :
[de] [es] [it] [pt]
Recherche




Météo / Spam / www

Météo Lyon


aldweb contre le SPAM


Newsletter
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner
298 Abonnés
Sites web de la famille

Webmaster - Infos
News Amis
Visites

   visiteurs

   visiteurs en ligne

Sondage
Comment trouve-tu le nouvel habillage de l'aldweb Site ?
 
Superbe !
Joli
Moyen
Moche...
Résultats
forum.gifForum - Palm - Sujet n°1200

Forum - Forum
Palm - Palm


Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 257

actif  Sujet n° 1200  Définir un StringPtr

le 25/04/2005 @ 23:45
par Alain

Anonyme



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
Ecrire à Alain   Poster une réponse  Haut

[]   

DébutPrécédent [ 1 2 ] SuivantFin

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 1
--------
le 28/04/2005 @ 22:49
par Alain

Anonyme

visiteur
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
Ecrire à Alain   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 2
--------
le 28/04/2005 @ 22:52
par aldweb

Anonyme

visiteur
Alain,

Voici la définition d'un StringPtr en Pascal :

Type
StringPtr = ^String;


Un peu moins tiré par les cheuveux

@+
aldweb
Ecrire à aldweb   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 3
--------
le 29/04/2005 @ 01:36
par Alain

Anonyme

visiteur
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
Ecrire à Alain   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 4
--------
le 29/04/2005 @ 01:59
par aldweb

Anonyme

visiteur
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
Ecrire à aldweb   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 5
--------
le 29/04/2005 @ 14:15
par Alain

Anonyme

visiteur
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
Ecrire à Alain   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 6
--------
le 29/04/2005 @ 17:55
par Alain

Anonyme

visiteur
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 ?
Ecrire à Alain   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 7
--------
le 29/04/2005 @ 21:29
par aldweb

Anonyme

visiteur
Et un truc du genre ?
MyStringP^:='Toto'+chr(0);


@+
aldweb
Ecrire à aldweb   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 8
--------
le 30/04/2005 @ 11:31
par Alain

Anonyme

visiteur
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
Ecrire à Alain   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 9
--------
le 30/04/2005 @ 12:10
par aldweb

Anonyme

visiteur
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
Ecrire à aldweb   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 10
--------
le 30/04/2005 @ 13:27
par Alain

Anonyme

visiteur
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 ....
Ecrire à Alain   Poster une réponse  Haut
DébutPrécédent [ 1 2 ] SuivantFin
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



 
^ Haut ^