Aide - Recherche - Membres - Calendrier
Version complète : FieldText naviguable
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Philippe_Dsf
Je suis rendu à la fin de mon projet sous le palm tout marche bien sauf que je voudrais faire des AIDE.. j'ai mon bouton instruction et je ne veux pas utiliser le HelpString et autre bidule.. Alors je me suis définit un TextField multiligne NONEDITABLE. Mais comment je fais pour insérer des "Sauts de ligne" et des "Tabs" et comment faire pour que mes boutons puise descendre et monter le textfield..

merci !

L'application Metro est mon modèle. Je veux de quoi du genre. icon_biggrin.gif


Phil !
olivier101
CITATION(Philippe_Dsf)
L'application Metro est mon modèle. Je veux de quoi du genre.  :D

Patrice ! C'est pour toi.. sleep.gif
Patrice
Ah mince, j'avais pas vu icon_lol2.gif

C'est à quoi que tu penses, dans Métro ?

Si ce sont les infos qui sont dans l'à propos (ou les infos générales sur la ville en cours), c'est relativement simple :
- le champ est un FIELD, déclaré MULTIPLELINES
- les boutons de défilement sont des boutons normaux
- les retours à la ligne sont simplement marqués par des 'n' standards (et j'imagine que des 't' pour les tabulations fonctionnent aussi)
- le texte est associé au FIELD par un FldSetTextHandle()
- le défilement doit être entièrement géré à la main (que ce soit en utilisant les boutons soft ou hard), à base de FldScrollField() ; pour gérer les boutons "désactivés", j'utilise FldScrollable()

Si tu penses aux infos détaillées affichées dans une sorte de pop-up, c'est carrément plus complexe. En fait, c'est une TABLE (pas un FIELD), tous les calculs de troncature des lignes sont fait "à la main" et de même pour tous les affichages de textes (et d'icônes).
Philippe_Dsf
icon_lol2.gif
C'était réellement la fenetre du type A propos.

Exemple j'ai choisi la ville MONTREAL et sur le petit logo (M) en haut à droite si je clic il explique quelques critères avec deux petits boutons Up/DOwn.

Merci !

Phil !
Live from Quebec !

présentement +4°C à l'extérieur... c'est moche icon_evil.gif
Patrice
Bon, alors 2 infos supplémentaires :

- Les boutons sont déclarés comme ça (format RCP pour PilRC) :
CODE
REPEATBUTTON "01" ID scupRbutID AT (X Y 11 8) FONT 5 NOFRAME

REPEATBUTTON "02" ID scdnRbutID AT (X PREVBOTTOM 11 8) FONT 5 NOFRAME

(Note l'utilisation de la police "symbole")

- La gestion du scrolling utilise la fonction suivante :

CODE
static void ScrollComment(FormPtr form, FieldPtr field, WinDirectionType dir)

{

    ControlPtr ctlArrow;



    // Scroll field up or down

    if (FldScrollable(field, dir))

    {

 FldScrollField(field, 1, dir);

    }



    // Is there a next page?

    ctlArrow = FrmGetObjectPtr(form, FrmGetObjectIndex(form, scdnRbutID));

    if (FldScrollable(field, winDown))

    {

 CtlSetLabel(ctlArrow, "x02");

 CtlSetEnabled(ctlArrow, true);

    }

    else

    {

 CtlSetLabel(ctlArrow, "x04");

 CtlSetEnabled(ctlArrow, false);

    }

    // Is there a previous page?

    ctlArrow = FrmGetObjectPtr(form, FrmGetObjectIndex(form, scupRbutID));

    if (FldScrollable(field, winUp))

    {

 CtlSetLabel(ctlArrow, "x01");

 CtlSetEnabled(ctlArrow, true);

    }

    else

    {

 CtlSetLabel(ctlArrow, "x03");

 CtlSetEnabled(ctlArrow, false);

    }

}

Le paramètre 'dir' correspond à la direction de défilement (winUp ou winDown). Par feignantise, cette fonction ne gère que le scroll par ligne (pas par page)...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.