Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12295 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit Ven 31 Mai 2013 - 11: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 !
| |
| | | pan59
Nombre de messages : 367 Age : 66 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Objet RichEdit. Ven 31 Mai 2013 - 13: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 | |
| | | Klaus
Nombre de messages : 12295 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit Ven 31 Mai 2013 - 13: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 ! | |
| | | pan59
Nombre de messages : 367 Age : 66 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Objet RichEdit. Ven 31 Mai 2013 - 13:22 | |
| Bonjour.
OK, un grand merci Klaus.
Tout fonctionne parfaitemenrt maintenant.
Bonne journée. | |
| | | pan59
Nombre de messages : 367 Age : 66 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Objet RichEdit. Sam 1 Juin 2013 - 8: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 | |
| | | pan59
Nombre de messages : 367 Age : 66 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Objet RichEdit. Sam 1 Juin 2013 - 8: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. | |
| | | Klaus
Nombre de messages : 12295 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit Sam 1 Juin 2013 - 8:27 | |
| | |
| | | pan59
Nombre de messages : 367 Age : 66 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Objet RichEdit. Dim 2 Juin 2013 - 18: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 | |
| | | Klaus
Nombre de messages : 12295 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit Lun 3 Juin 2013 - 0: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. | |
| | | Klaus
Nombre de messages : 12295 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit Lun 3 Juin 2013 - 0: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. | |
| | | Contenu sponsorisé
| Sujet: Re: 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit | |
| |
| | | | 2.40 du 31 mai 2013: nouvelles fonctions pour RichEdit | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |