Novembre 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 | | Calendrier |
|
|
| Justfication à droite et centrage de textes | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Justfication à droite et centrage de textes Mar 30 Oct 2012 - 23:01 | |
| Extraits de mon programme de gestion de ventes eBay, voici les procédures de cadrage de textes à droite et de centrage. Ces procédures fonctionnent pour n'importe quel objet Panoramic (EDIT, MEMO, cellule de GRID, etc). On leur passe le texte à cadrer, le numéro d'objet pour lequel il faut faire le cardrage, et la largeur en pixels maximale. Le texte est cadré en ajoutant des espaces devant le texte d'origine, et ce texte cadré est retourné dans une variable globale sjust$. Voici une démo incluant les deux procédures: - Code:
-
' demo_cadrage.bas
dim i%,s$,sjust$
grid 1 : grid_row 1,10 : grid_column 1,4 width 1,400 : height 1,400 grid_column_width 1,80 grid_write 1,1,2,"Gauche" grid_write 1,1,3,"Centré" grid_write 1,1,4,"Droite" for i%=1 to 9 grid_write 1,i%+1,1,str$(i%) s$ = s$ + str$(i%) grid_write 1,i%+1,2,s$ center_justify(s$,1,80) grid_write 1,i%+1,3,sjust$ right_justify(s$,1,80) grid_write 1,i%+1,4,sjust$ next i% end
sub right_justify(m$,g%,w%) dim_local x%, sp%, t% sp% = text_width(" ",g%) t% = text_width(m$,g%) x% = int((w%-sp%-t%)/sp%) if x%>0 sjust$ = string$(x%," ")+m$ else sjust$ = m$ end_if end_sub
sub center_justify(m$,g%,w%) dim_local x%,sp%, t% sp% = text_width(" ",g%) t% = text_width(m$,g%) ' *** bug dans Panoramic *** x% = int((w%-sp%-t%)/sp%/2) x% = int((w%-sp%-t%)/sp%*2) : ' *** contourner le bug dans PAnoramic *** if x%>0 sjust$ = string$(x%," ")+m$ else sjust$ = m$ end_if end_sub Et voici le résultat: | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 1 Nov 2012 - 3:19 | |
| Je me suis permis de reprendre ton code pour l'englober dans une seule procédure d' écriture. Comme je suis un peu fé..... cela ne me fait plus qu'un appel réutilisable... - Code:
-
dim v$,i%
grid 1 : grid_row 1,10 : grid_column 1,4 width 1,400 : height 1,400 grid_column_width 1,80 grid_write 1,1,2,"Gauche" grid_write 1,1,3,"Centré" grid_write 1,1,4,"Droite"
for i%=1 to 9 Write_Grid_Align(1,i%+1,1,str$(i%),"G",80) v$=v$+str$(i%) Write_Grid_Align(1,i%+1,2,v$,"G",80) Write_Grid_Align(1,i%+1,3,v$,"C",80) Write_Grid_Align(1,i%+1,4,v$,"D",80) next i%
end ' ------------------------------------------------------------------------------ sub Write_Grid_Align(No%,R%,C%,T$,Align$,WC%) If Variable("sjust$")=0 then Dim sjust$ Dim_Local sp%,x%,t% If Align$="G" Grid_Write No%,R%,C%,T$ Else If Align$="C" sp% = text_width(" ",No%) t% = text_width(T$,No%) ' *** bug dans Panoramic *** x% = int((w%-sp%-t%)/sp%/2) x% = int((WC%-sp%-t%)/sp%*2) : ' *** contourner le bug dans PAnoramic *** if x%>0 sjust$ = string$(x%," ")+T$ else sjust$ = T$ end_if Else If Align$="D" sp% = text_width(" ",No%) t% = text_width(T$,No%) x% = int((WC%-sp%-t%)/sp%) if x%>0 sjust$ = string$(x%," ")+T$ else sjust$ = T$ end_if End_If End_If Grid_Write No%,R%,C%,sjust$ End_If End_Sub Le résultat est le même | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 9:47 | |
| | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 10:00 | |
| Je me suis permis de modifier un peu la procédure - Code:
-
' ------------------------------------------------------------------------------ ' - - ' - Alignement de cellules: programme créé par Klaus - ' - - ' - Modifié par ygeronimi et jicehel le 01/11/2012 - ' - - ' ------------------------------------------------------------------------------ ' ' Déclaration des variables ' dim Chaine$ : ' Variable qui stockera la chaine de caractères à afficher dim Compteur% : ' Variable servant de compteur dans notre programme ' ' Création de la grille ' grid 1 :' La grille sera l'objet n°1 grid_row 1,10 : grid_column 1,4 : ' Définition du nombre de lignes à 10 et 4 colonnes width 1,400 : height 1,400 : ' Redéfinition de la taille de la grille en largeur et hauteur grid_column_width 1,80 : ' Redéfinition de la largeur de la colonne 1 grid_write 1,1,2,"Gauche" : ' Ecrit "Gauche" dans l'objet 1 (la grille), colonne 2, ligne 1 grid_write 1,1,3,"Centré" : ' Ecrit "Centré" dans la grille, colonne 3, ligne 1 grid_write 1,1,4,"Droite" : ' Ecrit "Droite" en c:4, l:1
' ' Boucle de remplissage de la grille ' for Compteur%=1 to 9 : ' Faire 9 fois la boucle en utilisant la vraible Compteur% de 1 à 9 Write_Grid_Align(1,Compteur%+1,1,str$(Compteur% ),"G",80) : ' Affiche le compteur dans la grille, dans la colonne 1 Chaine$=Chaine$+str$(Compteur% ) : ' Fabrique la chaine qui servira pour le test Write_Grid_Align(1,Compteur%+1,2,Chaine$,"G",80) : ' Affiche la chaine alignée à gauche dans la colonne 2 Write_Grid_Align(1,Compteur%+1,3,Chaine$,"C",80) : ' Affiche la chaine centrée dans la colonne 3 Write_Grid_Align(1,Compteur%+1,4,Chaine$,"D",80) : ' Affiche la chaine alignée à droite dans la colonne 4 next Compteur% : ' Fin de la boucle, recommencer jusqu'à ce que compteur% soit plus grand que 9
end : ' Fin du programme ' ' ------------------------------------------------------------------------------ ' Procédure de gestion de l'alignement appelé par le programme principal ' No% est le numéro de l'objet dans lequel on veut écrire ' R% correspond à ROW, le n° de la ligne dans laquelle on veut écrire ' C% correspond à COLOUMN, le n° de la colonne dans laquelle on veut écrire ' T$ est le texte que l'on veut y écrire ' Align$ est le type d'alignement demandé ' "C" correspond à centré ' "D" correspond à un alignement à droite ' "G" est l'alignement par défaut (à gauche) ' ------------------------------------------------------------------------------ ' sub Write_Grid_Align(No%,R%,C%,T$,Align$,WC%) Dim_Local sp%,x%,t%,sjust$ : ' Définition des variables locales sp% = text_width(" ",No%) : ' La variable sp% correspond à la taille d'un espace t% = text_width(T$,No%) : ' La variable t% correspond à la taille du texte
' Teste si l'on a demandé un affichage centré If Align$="C" ' *** bug dans Panoramic *** x% = int((w%-sp%-t%)/sp%/2) x% = int((WC%-sp%-t%)/sp%*2) : ' Calcul du nombre d'espaces à ajouter devant la chaine Else ' Teste si l'on a demandé un affichage à droite If Align$="D" Then x% = int((WC%-sp%-t%)/sp%) : ' Calcul du nombre d'espaces à ajouter devant la chaine End_If if x% > 0 then T$ = string$(x%," ")+T$ : ' On ajoute les espaces devant la chaine (0 si alignement à gauche) Grid_Write No%,R%,C%,T$ : ' On écrit la chaine dans la grille End_Sub | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 10:15 | |
| On peut faire de jolies choses avec ça, n'est-ce pas ? Mais n'oubliez pas: ce que j'ai posté initialement, est utilisable pour tout type d'objet Panoramic: grid, bien sûr, mais aussi edit, memo, caption d'un bouton ou d'une form ou d'un container, enregistrement dans un fichier, impressions, ... bref, tout ce qui accepte une chaîne de caractères et qui peut se mesurer en pixels. Ce n'est plus le cas avec vos procédures qui visent spécifiquement une cellude d'un grid. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 10:20 | |
| Absolument Là, la procédure est spécifique, je vais modifier pour faire 2 procédures Celle de la grille appellera la générale, tu as raison | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 10:31 | |
| Voilà, ça donnerait ça: - Code:
-
' ------------------------------------------------------------------------------ ' - - ' - Alignement de cellules: programme créé par Klaus - ' - - ' - Modifié par ygeronimi et jicehel le 01/11/2012 - ' - - ' ------------------------------------------------------------------------------ ' ' Déclaration des variables ' dim Chaine$ : ' Variable qui stockera la chaine de caractères à afficher dim Compteur% : ' Variable servant de compteur dans notre programme ' ' Création de la grille ' grid 1 :' La grille sera l'objet n°1 grid_row 1,10 : grid_column 1,4 : ' Définition du nombre de lignes à 10 et 4 colonnes width 1,400 : height 1,400 : ' Redéfinition de la taille de la grille en largeur et hauteur grid_column_width 1,80 : ' Redéfinition de la largeur de la colonne 1 grid_write 1,1,2,"Gauche" : ' Ecrit "Gauche" dans l'objet 1 (la grille), colonne 2, ligne 1 grid_write 1,1,3,"Centré" : ' Ecrit "Centré" dans la grille, colonne 3, ligne 1 grid_write 1,1,4,"Droite" : ' Ecrit "Droite" en c:4, l:1
' ' Boucle de remplissage de la grille ' for Compteur%=1 to 9 : ' Faire 9 fois la boucle en utilisant la vraible Compteur% de 1 à 9 Write_Grid_Align(1,Compteur%+1,1,str$(Compteur% ),"G",80) : ' Affiche le compteur dans la grille, dans la colonne 1 Chaine$=Chaine$+str$(Compteur% ) : ' Fabrique la chaine qui servira pour le test Write_Grid_Align(1,Compteur%+1,2,Chaine$,"G",80) : ' Affiche la chaine alignée à gauche dans la colonne 2 Write_Grid_Align(1,Compteur%+1,3,Chaine$,"C",80) : ' Affiche la chaine centrée dans la colonne 3 Write_Grid_Align(1,Compteur%+1,4,Chaine$,"D",80) : ' Affiche la chaine alignée à droite dans la colonne 4 next Compteur% : ' Fin de la boucle, recommencer jusqu'à ce que compteur% soit plus grand que 9
end : ' Fin du programme ' ' ------------------------------------------------------------------------------ ' Procédure de gestion de l'alignement d'un texte dans une grille ' No% est le numéro de l'objet dans lequel on veut écrire ' R% correspond à ROW, le n° de la ligne dans laquelle on veut écrire ' C% correspond à COLOUMN, le n° de la colonne dans laquelle on veut écrire ' T$ est le texte que l'on veut y écrire ' Align$ est le type d'alignement demandé ' "C" correspond à centré ' "D" correspond à un alignement à droite ' "G" est l'alignement par défaut (à gauche) ' WC% largeur disponible de l'objet ' ------------------------------------------------------------------------------ ' sub Write_Grid_Align(No%,R%,C%,T$,Align$,WC%) Align(No%,T$,Align$,WC%) T$ = Align_return$ Grid_Write No%,R%,C%,T$ : ' On écrit la chaine dans la grille End_Sub ' ' ------------------------------------------------------------------------------ ' Procédure de gestion de l'alignement dans un objet quelconque ' No% est le numéro de l'objet dans lequel on veut écrire ' T$ est le texte que l'on veut y écrire ' Align$ est le type d'alignement demandé ' "C" correspond à centré ' "D" correspond à un alignement à droite ' "G" est l'alignement par défaut (à gauche) ' WC% largeur disponible de l'objet ' ------------------------------------------------------------------------------ ' Sub Align(No%,T$,Align$,WC%) Dim_Local sp%,x%,t% : ' Définition des variables locales If Variable("Align_return$")=0 then Dim Align_return$ : ' On doit définir une variable globale pour retourner la chaine calculée sp% = text_width(" ",No%) : ' La variable sp% correspond à la taille d'un espace t% = text_width(T$,No%) : ' La variable t% correspond à la taille du texte
' Teste si l'on a demandé un affichage centré If Align$="C" ' *** bug dans Panoramic *** x% = int((w%-sp%-t%)/sp%/2) x% = int((WC%-sp%-t%)/sp%*2) : ' Calcul du nombre d'espaces à ajouter devant la chaine Else ' Teste si l'on a demandé un affichage à droite If Align$="D" Then x% = int((WC%-sp%-t%)/sp%) : ' Calcul du nombre d'espaces à ajouter devant la chaine End_If if x% > 0 then T$ = string$(x%," ")+T$ : ' On ajoute les espaces devant la chaine (0 si alignement à gauche) Align_return$ = T$ : ' On place la chaine modifiée dans la chaine de retour End_Sub | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 10:48 | |
| C'est pas mal, comme ça. J'ai intégré la procédure Align dans KGF_SUB.bas. Seule différence: pour respecter les conventions d'appel en cours avec KGF_SUB, j'ai nommé la variable de résultat Align$ (même nom que la procédure, avec un $ terminal), et donc le paramètre formel align$ est devenu alignement$. C'est devenu ainsi la première procédure "utilitaire" non liée à KGF.dll que j'ai intégré dans ce module. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 10:56 | |
| Cool | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 11:11 | |
| Et j'ai adapté demo_KGF_SUB.bas pour une démonstration (plus réduite) de cette fonction, dans un memo.
Juste une remarque: on ne peut pas utiliser le numéro d'un memo ou d'un bouton comme premier paramètre de la fonction Align. En effet, la fonction TEXT_WIDTH ne s'applique malheureusement pas à tous les objets Panoramic. Jack pourrait éventuellement élargir de domaine d'application de cette fonction.
Mais on peut contourner le problème en utilisant un ALPHA quelconque (avec police, style et taille appropriés) pour l'appel de la fonction Align, puis on utilise la variable Align$ pour l'objet véritablement ciblé. C'est ce que j'ai fait dans demo_KGF_SUB.bas, et ça marche parfaitement. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 11:23 | |
| Il faut juste bien entendu que les paramétrage de polices soient les même sur l'alpha et l'objet ... C'est évident, mais bon, mieux vaut quand même l'écrire quelque part | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 1 Nov 2012 - 13:40 | |
| On peut n'en faire qu'une en se servant de Object_type(N) en condition et changer la façon d'écrire selon l'objet. - Code:
-
if object_type(No%)=22 Grid_write........ else if object_type(No%)=3 Text No%,....... else If object_Type(No%)=4 or If object_Type(No%)=5 or If object_Type(No%)=8 Item_add No%,...... Else Caption No%,.......... End_if End_if End_if | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 13:58 | |
| Oui, mais est-ce vraiment utile ? N'est-ce pas plus simple d'envoyer le texte à justifier et de faire ce que l'on veut de la chaine préparée ? Je ne suis pas sûr que l'on y gagne beaucoup en lisibilité ou en simplicité. Par exemple les paramètres lignes et colonnes ne servent que pour la grille. En règle général avec la procédure qui t'envoie le texte formaté, tu fais juste Align(No%,T$,Align$,WC%) et tu envois directement Align$ dans le traitement que tu veux et ça fait 2 lignes dans ton code. Que gagnerais-tu à traiter l'affichage dans la procédure ? | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 14:07 | |
| Pour notre cas, en ne gardant que la procédure pour avoir le text aligné, ça donne ça: - Code:
-
' ------------------------------------------------------------------------------ ' - - ' - Alignement de cellules: programme créé par Klaus - ' - - ' - Modifié par ygeronimi et jicehel le 01/11/2012 - ' - - ' ------------------------------------------------------------------------------ ' ' Déclaration des variables ' dim Chaine$ : ' Variable qui stockera la chaine de caractères à afficher dim Compteur% : ' Variable servant de compteur dans notre programme ' ' Création de la grille ' grid 1 :' La grille sera l'objet n°1 grid_row 1,10 : grid_column 1,4 : ' Définition du nombre de lignes à 10 et 4 colonnes width 1,400 : height 1,400 : ' Redéfinition de la taille de la grille en largeur et hauteur grid_column_width 1,80 : ' Redéfinition de la largeur de la colonne 1 grid_write 1,1,2,"Gauche" : ' Ecrit "Gauche" dans l'objet 1 (la grille), colonne 2, ligne 1 grid_write 1,1,3,"Centré" : ' Ecrit "Centré" dans la grille, colonne 3, ligne 1 grid_write 1,1,4,"Droite" : ' Ecrit "Droite" en c:4, l:1
' ' Boucle de remplissage de la grille ' for Compteur%=1 to 9 : ' Faire 9 fois la boucle en utilisant la vraible Compteur% de 1 à 9 Align(1,str$(Compteur% ),"G",80) : Grid_Write 1,Compteur%+1,1,Align_return$ : ' Affiche le compteur dans la grille, dans la colonne 1 Chaine$=Chaine$+str$(Compteur% ) : ' Fabrique la chaine qui servira pour le test Align(1,Chaine$,"G",80) : Grid_Write 1,Compteur%+1,2,Align_return$ : ' Affiche la chaine alignée à gauche dans la colonne 2 Align(1,Chaine$,"C",80) : Grid_Write 1,Compteur%+1,3,Align_return$ : ' Affiche la chaine centrée dans la colonne 3 Align(1,Chaine$,"D",80) : Grid_Write 1,Compteur%+1,4,Align_return$ : ' Affiche la chaine alignée à droite dans la colonne 4 next Compteur% : ' Fin de la boucle, recommencer jusqu'à ce que compteur% soit plus grand que 9
end : ' Fin du programme
' ' ------------------------------------------------------------------------------ ' Procédure de gestion de l'alignement dans un objet quelconque ' No% est le numéro de l'objet dans lequel on veut écrire ' T$ est le texte que l'on veut y écrire ' Align$ est le type d'alignement demandé ' "C" correspond à centré ' "D" correspond à un alignement à droite ' "G" est l'alignement par défaut (à gauche) ' WC% largeur disponible de l'objet ' ------------------------------------------------------------------------------ ' Sub Align(No%,T$,Align$,WC%) Dim_Local sp%,x%,t% : ' Définition des variables locales If Variable("Align_return$")=0 then Dim Align_return$ : ' On doit définir une variable globale pour retourner la chaine calculée sp% = text_width(" ",No%) : ' La variable sp% correspond à la taille d'un espace t% = text_width(T$,No%) : ' La variable t% correspond à la taille du texte
' Teste si l'on a demandé un affichage centré If Align$="C" ' *** bug dans Panoramic *** x% = int((w%-sp%-t%)/sp%/2) x% = int((WC%-sp%-t%)/sp%*2) : ' Calcul du nombre d'espaces à ajouter devant la chaine Else ' Teste si l'on a demandé un affichage à droite If Align$="D" Then x% = int((WC%-sp%-t%)/sp%) : ' Calcul du nombre d'espaces à ajouter devant la chaine End_If if x% > 0 then T$ = string$(x%," ")+T$ : ' On ajoute les espaces devant la chaine (0 si alignement à gauche) Align_return$ = T$ : ' On place la chaine modifiée dans la chaine de retour End_Sub Là, le code de la fonction est court et lisible. Les paramètres d'appel sont courts. Pas évident que prévoir tous les cas d'objets apporterait un plus, mais c'est juste mon opinion | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 14:28 | |
| A mon avis, ça ne sert à rien de prévoir tous les types d'objets. Pour ma part, je préfère une fonction simple qui retourne une chaine de caractères qui, une fois envoyée à sa destination, apparaîtra cadrée selon ce que je veux. Cela pourrait être une zone rectangulaire que je choisis dans un picture pour y apposer une légende, ou une édition sur papier via mes fonctions de gestion d'imprimante, etc. La procedure Align() telle que je l'ai mise dans KGF_SUB.bas, est beaucoup plus générale et peut servir à des besoins très divers. Y compris le cadrade de textes dans un grid, mais c'est juste un cas particulier.
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 1 Nov 2012 - 23:03 | |
| Le premier regroupement concerné un grid car on a souvent une colonne entière avec le même alignement . La deuxième intervention était pour rappeler l'existence de la commande Object_type(N) qui pouvait en ce cas être utilisé. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 23:48 | |
| Tu as raison de donner ton avis et d'organiser tes programmes comme tu en as envie Après on partage ou pas ta façon de voir, mais le fait que tu donnes ton avis est bien car ça permet d'avoir une vision des choses et de réfléchir sous cet angle, même quand on adhère pas A quoi servirait un avis si tout le monde était d'accord ? Personnellement quand on travaille sur les grille avec des alignement, je ferais la procédure Grid_Align_Column(No%,LD%,LF%,C%,Align$,WC%) No%=> Numero de la grille, LD%: ligne de début, LF%: ligne de fin, C%: la colonne concernée, Align$: Type d'alignement et WC%, la taille de la colonne T$ disparait puisque fait à partir du contenu de la grille. Mais bon, ce type de procédure n'est interessant que dans certains cas puisque la justification n'est pas gardée. Il faut donc utiliser une fonction Align à chaque écriture pour que l'affichage reste correct. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 23:50 | |
| J'ai ajouté une fonction de cadrage dérivée dans KGF_SUB.bas:
AlignEX(T$,Alignement$,WC%,police$,taille%,gras%)
Cette fonction n'a plus besoin d'un numéro d'objet pour ses calculs. Elle crée automatiquement un ALPHA et lui applique la police, la taille et éventuellement l'attribut "gras". Ensuite, le cadrage sera fait par rapport à cet objet interne, et le résultat sera retournée dans la variable AlignEX$. Finalement, l'objet ALPHA interne est supprimé.
KGF_SUB.bas et demo_KGF_SUB.bas sont mis à jour. Et comme il s'agit de simples utilitaires, KGF.dll n'est pas en cause et n'a donc pas changé. Il n'est pas non plus nécessaire de charger KGF.dll ou d'utiliser KGF_initialize() pour se servir des procédures Align et AlignEX.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 23:54 | |
| @Jicehel: Regarde mon utilitaire ebay_ventes.bas. Je fais cela: je cadre systématiquement tous les montants à droite, et cela donne une belle présentation dans un GRID. Les textes (libellés etc) restent cadrés à gauche.
Dans la rubrique des souhaits d'amélioration, j'avais suggéré des fonctions de cadrage, en particulier pour les grid. On verra bien. En attendant, les eux fonctions Align et AlignEX permettent de faire beaucoup de choses ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Justfication à droite et centrage de textes Jeu 1 Nov 2012 - 23:57 | |
| Oui, pour moi, cela suffit, je pense. Mais en effet, si les cellule des grille pouvaient garder leur propre propriétés d'alignement, ce serait plus simple encore. | |
| | | Contenu sponsorisé
| Sujet: Re: Justfication à droite et centrage de textes | |
| |
| | | | Justfication à droite et centrage de textes | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |