FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Détection connexion internet
par JL35 Hier à 22:59

» Le parcours du cavalier sur un échiquier 8 x 8
par pascal10000 Dim 23 Juil 2017 - 13:26

» Casse-tête : Echanger les positions des cavaliers
par papydall Sam 22 Juil 2017 - 19:42

» Compilateur FBPano
par jean_debord Sam 22 Juil 2017 - 10:54

» demande pour recuperer un text speciale
par pascal10000 Ven 21 Juil 2017 - 22:04

» KGF_dll - nouvelles versions
par Klaus Ven 21 Juil 2017 - 14:29

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit   Ven 31 Mai 2013 - 12:17

Nouvelle version:
KGF.dll du 31/05/2013

Nouveautés:
- nouvelle fonction SelectRichEditText ==> sélectionner une portion de texte d'un RichEdit
- nouvelle fonction GetSelectedRichEditText ==> retourner le texte sélectionné
- nouvelle fonction SetSelectedRichEditText ==> remplacer le texte sélectionné
- nouvelles valeurs retournées par la fonction RichEditGetInformation
3 = position du début de la portion sélectionnée, ou position du curseur
4 = longueur de la portion sélectionnée, ou zéro


Modules modifiés:
KGF.dll
KGF_SUB.bas
KGF.chm, KGF.doc, KGF.pdf


Regardez la doc pour l'utilisation !


Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pan59

avatar

Nombre de messages : 367
Age : 60
Localisation : Wattignies
Date d'inscription : 16/10/2011

MessageSujet: Objet RichEdit.   Ven 31 Mai 2013 - 14:10

Bonjour.

Merci Klaus de regarder ce petit bout de code.

La couleur du texte sélectionné n'apparaît pas.

Peut-être ai-je omis quelque chose ?


Code:
dim hnd%, RE%, c%, res%, s$

s$="[1] Manges-tu du chocolat ? Oui je mange beaucoup de chocolat."
c%=255*256*256 + 0*256 + 0 : ' couleur bleue

dll_on "kgf.dll"

hnd%=handle(0)

width 0,1000
height 0,800

RE% = dll_call1("RichEditCreate",hnd%)
res% = dll_call5("RichEditGeometry",RE%,100,100,300,200)

res% = dll_call2("RichEditStringLoad",RE%,adr(s$))
res% = dll_call3("SelectRichEditText",RE%,5,6)
res% = dll_call3("RichEditFunction",RE%,7,c%)

dll_off
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit   Ven 31 Mai 2013 - 14:17

C'est parce que tu libères la DLL avant que la fonction de coloration ait fini son travail !

De plus, avant de décharger la DLL, il faut ABSOLUMENT supprimer l'objet StringList, sinon il y a des problèmes !

Regarde ceci:
Code:
dim hnd%, RE%, c%, res%, s$

s$="[1] Manges-tu du chocolat ? Oui je mange beaucoup de chocolat."
c%=255*256*256 + 0*256 + 0 : ' couleur bleue

dll_on "kgf.dll"

hnd%=handle(0)

width 0,1000
height 0,800

RE% = dll_call1("RichEditCreate",hnd%)
res% = dll_call5("RichEditGeometry",RE%,100,100,300,200)

res% = dll_call2("RichEditStringLoad",RE%,adr(s$))
res% = dll_call3("SelectRichEditText",RE%,5,6)
res% = dll_call3("RichEditFunction",RE%,7,c%)
res% = dll_call3("SelectRichEditText",RE%,11,0)


end

sortie:
res% = dll_call1("RichEditDelete",RE%)
dll_off


Là, ça marche bien !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pan59

avatar

Nombre de messages : 367
Age : 60
Localisation : Wattignies
Date d'inscription : 16/10/2011

MessageSujet: Objet RichEdit.   Ven 31 Mai 2013 - 14:22

Bonjour.

OK, un grand merci Klaus.

Tout fonctionne parfaitemenrt maintenant.

Bonne journée.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pan59

avatar

Nombre de messages : 367
Age : 60
Localisation : Wattignies
Date d'inscription : 16/10/2011

MessageSujet: Objet RichEdit.   Sam 1 Juin 2013 - 9:02

Bonjour.

Je ne parviens pas à changer la police et la taille des caractères d'un texte saisi dans un objet RichEdit.

Peut-être ai-je encore omis un paramètre ?

Merci de ton aide Klaus à la résolution du problème.


Code:
dim RichEdit%, couleur_rouge%, res%, s$, a$, b$

s$="Manges-tu du chocolat ?"
couleur_rouge% = 0*256*256 + 0*256 + 255

dll_on "kgf.dll"

width 0,1000
height 0,800

RichEdit% = dll_call1("RichEditCreate",handle(0))
res% = dll_call5("RichEditGeometry",RichEdit%,100,100,300,200)

a$="Times New Roman"
b$ = dll_call3("RichEditFunction",RichEdit%,5,adr(a$))
res% = dll_call3("RichEditFunction",RichEdit%,6,24)

res% = dll_call2("RichEditStringLoad",RichEdit%,adr(s$))
res% = dll_call3("SelectRichEditText",RichEdit%,1,6)
res% = dll_call3("RichEditFunction",RichEdit%,7,couleur_rouge%)

' Obligatoire: annule le texte sélectionné.
res% = dll_call3("SelectRichEditText",RichEdit%,1,0)

end

sortie:

' Il ne faut pas libérer la DLL avant que la fonction de coloration ait fini son travail !
' Avant de décharger la DLL, il faut ABSOLUMENT supprimer l'objet RichEdit, sinon il y a des problèmes !

res% = dll_call1("RichEditDelete",RichEdit%)
dll_off
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pan59

avatar

Nombre de messages : 367
Age : 60
Localisation : Wattignies
Date d'inscription : 16/10/2011

MessageSujet: Objet RichEdit.   Sam 1 Juin 2013 - 9:22

Bonjour.

Je viens de découvrir l'erreur.

Il fallait juste créer la chaîne s$ avant d'appliquer une modification de la police.

Autant pour moi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit   Sam 1 Juin 2013 - 9:27

Smile Smile Smile Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pan59

avatar

Nombre de messages : 367
Age : 60
Localisation : Wattignies
Date d'inscription : 16/10/2011

MessageSujet: Objet RichEdit.   Dim 2 Juin 2013 - 19:36

Bonjour.

Merci Klaus de regarder le petit code suivant:

Le texte affiché dans la boîte de message est raccourci par rapport au texte initial de l'objet RichEdit.

Je ne vois vraiment pas où se situe le problème.

Merci de ton aide.


Code:
dim RichEdit%, chaine$, couleur%, couleur_rouge%, hauteur_police%, kk%, res%, s$, a$, b$, taille%, texte_traduit$

s$="Manges-tu du chocolat ?"
couleur_rouge% = 0*256*256 + 0*256 + 255

dll_on "kgf.dll"

width 0,1000
height 0,800

RichEdit% = dll_call1("RichEditCreate",handle(0))
res% = dll_call5("RichEditGeometry",RichEdit%,100,10,800,300)

res% = dll_call2("RichEditStringLoad",RichEdit%,adr(s$))
res% = dll_call3("SelectRichEditText",RichEdit%,1,6)

hauteur_police%=15

initialiser_police_objet_Rich_Edit(s$)
definir_couleur_objet_RichEdit()

    chaine$="[1] Manges-tu du chocolat ? Oui je mange beaucoup de chocolat."
    chaine$=chaine$+"[2] Buvez-vous du vin (VS) ? Non, je ne bois jamais de vin."
    chaine$=chaine$+"[3] Mangez-vous du chocolat (TP) ? Non, nous ne mangeons pas de chocolat."
    chaine$=chaine$+"[4] Buvez-vous du vin (VP) ? Non, nous ne buvons jamais de vin."
    chaine$=chaine$+"[5] Je ne mange jamais de soupe. Jamais je ne mange de soupe."
    chaine$=chaine$+"[6] Que bois-tu maintenant ? Maintenant, je bois de la bière."
    chaine$=chaine$+"[7] Buvez-vous tout le lait (VS) ? Oui, je bois tout le lait."
    chaine$=chaine$+"[8] Buvez-vous de la bière (TP) ? Non, nous ne buvons pas de bière."
    chaine$=chaine$+"[9] Buvez-vous du lait (VP) ? Non, nous ne buvons jamais de lait."
    chaine$=chaine$+"[10] Je ne bois jamais de bière. Jamais je ne bois de bière."
    chaine$=chaine$+"[11] Tu ne manges rien. Moi je mange beaucoup de chocolat."
    chaine$=chaine$+"[12] Tu ne bois rien. Moi je bois beaucoup de bière."
    chaine$=chaine$+"[13] Vous ne mangez rien (TP) . Nous, nous mangeons beaucoup."

    initialiser_police_objet_Rich_Edit(chaine$)
    definir_couleur_objet_RichEdit()

    taille% = dll_call2("RichEditGetInformation",RichEdit%,1)

    texte_traduit$ = string$(taille%," ")
    res% = dll_call2("RichEditStringSave",RichEdit%,adr(texte_traduit$))

    message texte_traduit$

end

sub initialiser_police_objet_Rich_Edit(param1$)

    res% = dll_call2("RichEditStringLoad",RichEdit%,adr(param1$))

    res% = dll_call3("SelectRichEditText",RichEdit%,1,len(param1$))
    a$="Times New Roman"
    ' Appel de la 5è fonction de RichEditFunction.
    res% = dll_call3("RichEditFunction",RichEdit%,5,adr(a$))
    ' Appel de la 6è fonction de RichEditFunction.
    res% = dll_call3("RichEditFunction",RichEdit%,6,hauteur_police%)

    ' Texte en gras.
    ' Appel de la 1ère fonction de RichEditFunction.
    ' 3è paramètre: 1=gras.
    res% = dll_call3("RichEditFunction",RichEdit%,1,1)

    ' Obligatoire: annule le texte sélectionné.
    res% = dll_call3("SelectRichEditText",RichEdit%,1,0)

end_sub

sub definir_couleur_objet_RichEdit()

    file_open_read 999,"couleur2.dat"

    for kk%=1 to 3
        file_readln 999,a$

        select kk%
              case 1: couleur%=val(a$)
              case 2: couleur%=couleur%+val(a$)*256
              case 3: couleur%=couleur%+val(a$)*256*256
        end_select

    next kk%

    file_close 999

    res% = dll_call3("SelectRichEditText",RichEdit%,1,len(chaine$))
    res% = dll_call3("RichEditFunction",RichEdit%,7,couleur%)
    ' Obligatoire: annule le texte sélectionné.
    res% = dll_call3("SelectRichEditText",RichEdit%,1,0)

end_sub

sortie:

' Il ne faut pas libérer la DLL avant que la fonction de coloration ait fini son travail !
' Avant de décharger la DLL, il faut ABSOLUMENT supprimer l'objet RichEdit, sinon il y a des problèmes !

res% = dll_call1("RichEditDelete",RichEdit%)
dll_off
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit   Lun 3 Juin 2013 - 1:22

Je viens de voir ça. Bluffant. J'ai une idée de ce qui se passe. En attendant, ajoute 50 à la longueur de la variable texte_traduit$ et ça marche. Mais je corrigerai le bug.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit   Lun 3 Juin 2013 - 1:42

J'ai trouvé, et c'est corrigé. Recharge KGF.dll et ce sera bon.

Le problème ? Windows me dit bien combien de caractères il y a dans le RichEdit. Or, lorsque je construis la chaîne de caractères à retourner à Panoramic, j'y insère CR LF entre les lignes, et cela n'a pas été compte dans la fonction RichEditGetInformation code 1 ! Ceci est corrigé maintenant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit   

Revenir en haut Aller en bas
 
2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» La future gamme ideo du 26 août chez Bouygues Telecom ?
» se preparer à l'examen 2013 exercices 5°ap
» plus de fond de carte sur mon nuvi 550
» 2.16 du 22 avril 2013: nouvel objet RichEdit
» Nouveauté Forumactif: Découvrez 3 nouvelles options pour vos forums!

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: