| KGF_dll - nouvelles versions | |
|
+12JL35 Oscaribout bignono Pedro pascal10000 silverman Jicehel papydall Minibug Marc Yannick Klaus 16 participants |
|
Auteur | Message |
---|
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 18 Avr 2017 - 23:51 | |
| Oui,oui, rassures toi Klaus. J' ai pris la bonne version. On a encore eu un petit souci avec Laurent sur les chemins de fichiers. C' est résolu et j' ai mis à jour le zip sur mon webdav. Tu pourras y voir l' utilisation que j' ai faite de l' objet select color. Il y a plein d' objets dans Lazarus qui sont, même si je ne sais pas les utiliser avec ce langage, très intéressant. | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Avr 2017 - 0:51 | |
| J' ai vu qu' il était possible de rajouter des Highlighter à synedit. Que penserais tu d' en ajouter un pour les opérateurs { + - * / and or = } ? Ce n' est pas une demande, j' ouvre juste la discussion. | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 19 Avr 2017 - 1:12 | |
| La notion de "highlighter" concerne l'ensemble des règles de mise en forme pour un langage donné. Ainsi, nous utilisons un highlighter "général" que j'ai customisé pour Panoramic. Dans ce outil, rien de particulier n'est prévu pour les opérateurs. Mais je peux regarder ce que cela représente comme travail... lorsque j'aurai fini ce que je suis en train de faire sur Synedit, justement. | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Avr 2017 - 11:20 | |
| Ok Klaus. Le seul truc que je reprocherai à Panoramic c' est l' utilisation abusive des parenthèses. il y a des situations où on s' y perd un peu. On aurait pu avoir des {} pour les procédures et des [] pour les paramètres des commandes. Mais bon, c' est comme çà. | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 20 Avr 2017 - 0:55 | |
| Nouvelle version: KGF.dll V7.46 du 19/04/2017Nouveautés: - nouvelle fonction: FontSelectorModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cete fonction implémente un nouvel objet de sélecteur de polices de caractères. C'est une création entièrement nouvelle, pas un objet Windows ou Delphi rendu accessible via la DLL. Il y a bien un sélecteur de polices accesible par Delphi, mais il y a une série de problèmes piur l'utilisation avec Panoramic. Les plus importants sont: - plusieurs des effets graphiques proposés ne sont pas utilisables en Panoramic - les couleurs de police proposées ne sont pas paramétrables J'ai donc créé mon propre sélecteur de polices, permettant de choisir, dans une seule fenêtre modale, la police, sa taille et sa couleur ainsi que les attributs gras, italique, souligné et barré. Pour la couleur, j'utilise le sélecteur de couleurs de KGF.dll, et ainsil les couleurs personnalisées sont paramétrables et peuvent être récupérées et sauvegardées. La fonction retourne toutes les valeurs (sauf le nom de la police) dans des variables de type entier dont l'adresse est passée en paramètre. On passe aussi le handle d'un mémo en paramètre, et ce mémo reçoit un texte de 7 lignes selon le format suivant: - Citation :
- Nom de la police
Taille de la police Couleur de la police (en hexa) gras (valeur 1 ou 0) italique(valeur 1 ou 0) souligné(valeur 1 ou 0) barré(valeur 1 ou 0) Voici une démo: - Code:
-
' test_FontSelector.bas label clic dim res%, clr%, R%, G%, B%
dll_on "KGF.dll" width 0,700 button 1 : top 1,10 : left 1,10 : caption 1,"Police" : on_click 1,clic
memo 6 : top 6,40 : left 6,10 : width 6,200 : height 6,300 alpha 7 : top 7,370 : left 7,10 : caption 7,"AaBbYyZz"
end
clic: res% = dll_call6("FontSelector",handle_application,adr(R%),adr(G%),adr(B%),adr(clr%),handle(6)) if res%=0 font_name 7,item_read$(6,1) font_size 7,val(item_read$(6,2)) font_color 7,R%,G%,B% : ' la ligne 3 du mémo contient la couleur en hexa font_bold_off 7 : if item_read$(6,4)="1" then font_bold 7 font_italic_off 7 : if item_read$(6,5)="1" then font_italic 7 font_underline_off 7 : if item_read$(6,6)="1" then font_underline 7 font_strike_off 7 : if item_read$(6,7)="1" then font_strike 7 end_if return Voici une capture en cours de sélection de la couleur de police: et le résultat après validation: On voit bien les valeurs appliquées au alpha "témoin" dans la fenêtre principale, et les valeurs retournées dans le mémo. | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Avr 2017 - 9:43 | |
| J' avais vu un jumeau chez Lazarus mais j' osez pas le demander... Bravo Klaus c' est un objet qui sera très utile et encore plus utile avec le Memo_rich que Jack nous prépare. Le retour de la couleur en hexa est un peu bizarre... 8 caractères au lieu de 6 et rouge => 000000FF au lieu de FF0000 | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 20 Avr 2017 - 10:56 | |
| La valeur hexa retournée est bien la bonne ! Et de façon interne, les couleurs sont en 32 bits. Le dernier octet sert à Windows dans certains cas de figure. | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Avr 2017 - 11:13 | |
| La couleur est peut être la bonne mais pas son affichage
sur ta capture
Couleur = Bleu Affichage = 00FF0000
si je fais extraction des 2 premiers 00 ( dont je ne comprends pas le signification) Bleu = FF0000 or cet affichage correspond au rouge
tu as inversé RGB en BGR | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 20 Avr 2017 - 11:26 | |
| Non, Yannick. Ce n'est pas parce qu'on parle de couleur RGB que le "R" est à "gauche" dans la représentation hexa ! Les couleurs RGB sonc codées comme quit: - Citation :
- SSBBGGRR
SS = valeurs système (couleurs Windows) BB _ composante bleue GG = composante verte RR = composante rouge D'ailleurs, la formule pour calculer la valeur RBG à partir des R, G et B individuels est: - Code:
-
RGB% = ((BB%*256)+GG%)*256+RR% | |
|
| |
papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Jeu 20 Avr 2017 - 12:15 | |
| Pour gérer les couleurs, Delphi utilise le format Tcolor , qui comporte 4 octets et correspond à la structure RGBQUAD de l'API Windows. BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved;
En effet, au lieu d'utiliser seulement les 3 octets nécessaires (RGBTRIPLE) il est plus performant de manipuler de entités de 32 bits que les 24 bits qui ne sont pas multiples de mot (16 bits ou 32 bits).
Rappel sur la notation hexadécimale
Les trois premiers octets représentent respectivement l'intensité RGB des couleurs bleu, vert et rouge.
Exemples : $00FF0000 représente un bleu pur de pleine intensité, $0000FF00 représente un vert pur de pleine intensité, $000000FF représente un rouge pur de pleine intensité. $00000000 représente le noir et $00FFFFFF représente le blanc.
@Klaus Merci pour cette nouvelle fonction de KGF.DLL | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Avr 2017 - 12:55 | |
| Essaies de passer la couleur bleu comme tu la représentes dans le code html d' un fond de page web et tu verras le souci. si pour avoir un fond bleu tu passes #FF0000 tu risques d' avoir une surprise... Ton fond ne correspondra pas du tout à ce que tu attends. Cela est peut être comme çà avec delphi mais l' utilisateur n' utilise pas delphi... donc on s' attend à une sortie normalisée. http://www.javascripter.net/faq/rgbtohex.htm | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 20 Avr 2017 - 13:12 | |
| NE confond pas les couleurs HTML et les couleurs dans Panoramic. Ce n'est pas la même chose. Les couleurs dans Panoramic sont bien celles utilisées par Delphi et correspondent au codage indiqué ci-dessus. D'ailleurs, dans la représentation SSBBGGRR, RR représente l'octet de poids faible. Donc, c'est le premier octet de la valeur 32 bits de la couleur. Voici la représentation en mémoire: - Citation :
bits: 31...24 23...16 15...8 7...0 offsets: 3 2 1 0 composante: SS BB GG RR Tu vois que dans la mémoire, l'ordre R->G->B est bien respecté. | |
|
| |
silverman
Nombre de messages : 968 Age : 51 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: KGF_dll - nouvelles versions Jeu 20 Avr 2017 - 17:14 | |
| En effet, en HTML les couleurs se lisent RRVVBB, tandis qu'en panoramic ça se lit à l'envers soit: AABBVVRR. Il y a 8 caractères, 2 par code couleur, c'est de l'hexadécimal. AA = alpha, c'est la transparence(et oui! Tu n'as jamais vu de form transparent? ) BB = bleu VV = vert RR = rouge | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 21 Avr 2017 - 2:42 | |
| Nouvelle version: KGF.dll V7.47 du 21/04/2017
Nouveautés: - GetWindowsVersion, GetWindowsVersionAndFamily, GetWindowsInfo: reconnaître Windows 10
Modules modifiés: KGF.dll
La doc est inchangée. Les sources seront à jour vendredi dans la journée. | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 21 Avr 2017 - 22:20 | |
| Nouvelle version: KGF.dll V7.48 du 21/04/2017Nouveautés: - IsolateWordsFromString: ajout d'un paramètre "code action" - SetAlphabet: gestion de 2 nouveaux aphabets de séparateursModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. En voici une démo qui montre, à l'aide d'une phrase, les possibilités de cette fonctiion: - Code:
-
dll_on "kgf"
dim res%, b$, s$
b$="le chat(ms) est(v) blanc."
width 0,1300 : height 0,700
edit 1 : top 1,10 : width 1,900 font_size 1,12 font_bold 1 text 1,b$
list 2 : top 2,40 width 2,300 height 2,300 font_size 2,12 font_bold 2
list 12 : top 12,40 : left 12,310 width 12,300 height 12,300 font_size 12,12 font_bold 12
list 22 : top 22,40 : left 22,620 width 22,300 height 22,300 font_size 22,12 font_bold 22
list 32 : top 32,40 : left 32,930 width 32,300 height 32,300 font_size 32,12 font_bold 32
list 42 : top 42,340 width 42,300 height 42,300 font_size 42,12 font_bold 42
res%=dll_call4("IsolateWordsFromString",adr(b$),3,handle(2),0) res%=dll_call4("IsolateWordsFromString",adr(b$),3,handle(12),1) res%=dll_call4("IsolateWordsFromString",adr(b$),3,handle(22),2) res%=dll_call4("IsolateWordsFromString",adr(b$),3,handle(32),3)
s$ = "-'()" res% = dll_call3("SetAlphabet",0,6,0) res% = dll_call3("SetAlphabet",2,6,adr(s$)) res%=dll_call4("IsolateWordsFromString",adr(b$),3,handle(42),0)
| |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 22 Avr 2017 - 8:19 | |
| Klaus, Il y a un souci avec l' enregistrement d' un source replié par la fonction 13. On note une perte de ligne à la ré-ouverture du fichier. Dans certains cas, et pour des raisons aussi aléatoires qu' inexplicables on a la création d' un dossier vide nommé RETURN. | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 22 Avr 2017 - 9:38 | |
| | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 22 Avr 2017 - 10:01 | |
| Petite précision.
Les lignes perdues ne sont pas celles repliées mais les lignes suivantes. | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 24 Avr 2017 - 2:07 | |
| Nouvelle version: KGF.dll V7.49 du 22/04/2017
Nouveautés: - début de restructuration générale (purement technique, sans incidence sur les fonctionnalités) - InitializePanoramicArray: retrait de la fonction - SyneditSaveToFile: correction d'un bug avec segments pliés
Modules modifiés: KGF.dll
La doc est inchangée. Les sources seront à jour demain dans la journée.
Ceci devrait aider en particulier Yannick - le problème de pertes de lignes dans 'objet Synedit en sauvegardant un texte avec des segments pliés est corrigé. | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Lun 24 Avr 2017 - 2:42 | |
| Merci Klaus. Je charge la dll maintenant et je testerai cela dès demain. Heu...tout à l' heure... | |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 24 Avr 2017 - 20:52 | |
| Klaus, Est il possible de savoir la position (lig/col) du premier caractère d' une plage sélectionnée par l' utilisateur ? Heu...non,non...tires pas ! | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 24 Avr 2017 - 23:29 | |
| Oui, je vais faire ça - par un nouveau code opération à SyneditFunction. | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 25 Avr 2017 - 0:08 | |
| Nouvelle version: KGF.dll V7.50 du 24/04/2017Nouveautés: - suitede restructuration générale (purement technique, sans incidence sur les fonctionnalités) - SyneditFunction: nouveau code opération 42Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ce nouveau code permet de connaître les adresses de début et fin de la sélection dans un objet Synedit. Le code retour renvoyé par la fonction et -1 en cas d'erreur, ou n>0 représentant la longueur de sélection, en caractères, y compris les CR LF des fin de lignes. Le paramètre par% de la fonction doit être une adresse d'un tableau d'entiers de 4 éléments, comme ceci: - Code:
-
dim selection%(3), res% ... res% = dll_call3("SyneditFunction",SE%,42,adr(selection%)) ' selection%(0) contient la colonne du début de sélection ' selection%(1) contient la ligne du début de sélection ' selection%(2) contient la colonne de la fin de sélection ' selection%(3) contient la ligne de la fin de sélection
| |
|
| |
Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Mar 25 Avr 2017 - 0:11 | |
| Super Klaus !
Je charge tout de suite. | |
|
| |
Klaus
Nombre de messages : 12298 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 25 Avr 2017 - 1:20 | |
| Juste une petite info: les indices (0) et (1) contiennent le "début" de séléction (coordonnées au début de l'action de sélection) les indices (2) et (3) contiennent la "fin" de séléction (coordonnées lorsque le bouton de souris est relâché) Et ce, dans tous les cas, même si l'on a sélectionné "à l'envers". Dans ce cas, physiquement, la "fin" est devant le "début", dans le texte. Donc, pour avoir les coordonnées du début "physique" de la sélection, il faut faire: - Code:
-
dim selection%(3), res%, debut% ... res% = dll_call3("SyneditFunction",SE%,42,adr(selection%)) ' selection%(0) contient la colonne du début de sélection ' selection%(1) contient la ligne du début de sélection ' selection%(2) contient la colonne de la fin de sélection ' selection%(3) contient la ligne de la fin de sélection if selection%(3)>selection%(1) debut%(0) = selection%(2) debut%(1) = selection%(3) else if selection%(3)=selection%(1) if selection%(2)>=selection%(0) debut%(0) = selection%(2) debut%(1) = selection%(3) else debut%(0) = selection%(0) debut%(1) = selection%(1) end_if else debut%(0) = selection%(0) debut%(1) = selection%(1) end_if end_if Ainsi, en cas de pliage, on a toujours dans debut%(1) le numéro de la ligne dans laquelle apparaît la marque de pliage. | |
|
| |
Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
|
| |
| KGF_dll - nouvelles versions | |
|