pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 2019
-
6 oct. 2003 à 17:10
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
10 août 2006 à 18:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 10 août 2006 à 18:09
Salut mister Bouv
En utilisant DrawText en lieu et place de TextOut, on peut greffer très facilement l'alignement, en utilisant DT_CENTER DT_LEFT et DT_RIGHT...
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 10 août 2006 à 17:57
Hum, j'étais passé à côté de cette source. Il ne manque qu'une propriété Alignment et c'est impec. Surement dans la V2 ;-)
++
astuceur
Messages postés38Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention21 septembre 2008 29 août 2005 à 10:24
impec je cherchais depuis longtemps
davidauche
Messages postés150Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention 8 janvier 2008 11 oct. 2004 à 22:49
Salut,
J'ai résolu ce truc avec un code beaucoup plus simple que celui-ci. Mon ocx permet d'afficher les textes dans tous les angles possibles (de 0° à 360°) sans les bugs de l'entour ni de l'emplacement. Vous trouvez cette ocx sur cette adresse :
http://www.vbfrance.com/code.aspx?ID=26755
Ta source reste bien aussi, sauf elle est un peu limité et compliquer pour moi au niveau code ;) :p.
Alors cher Renfird, tu peux enlever la tache de rotation et le placement de ta liste des taches ;), c'est déjà fait maintenant.
A++ et merci a vous.
davidauche
Messages postés150Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention 8 janvier 2008 4 oct. 2004 à 10:11
Bravo chef!,
ta source est super bien!!!, sauf quand on utilise le style transparent avec des polices lisser, il reste qlq pixels du backcolor à l'entour du text (surtout quand les deux couleurs (backcolor, forecolor) sont tres différentes).
pour le placement avec les angles 45 ..., il y a les api getcharabcwidths, GetTextExtentPoint32, GetCharacterPlacement avec un peu 2 calculs mathématiques, peut etre resoudre le probleme!!?
9.5 / 10 en attendant si possible la mise a jour (2 l'entour) pour met 10/10 :p
feuillou
Messages postés48Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 6 juillet 20071 31 août 2004 à 14:45
Tant pis, je desespere pas...
en tout cas merci d'avoir repondu si vite...
Feuillou
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 31 août 2004 à 14:34
je fait ici joujou avec les tableaux de bits....
désolé, je sais pas ce qui est dispo en C# pour ces taches....
feuillou
Messages postés48Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 6 juillet 20071 31 août 2004 à 14:26
Salut Renfield,
je travail en C# sur visual studio et je debute grave!! J'aimerais aussi pouvoir realiser une rotation a 90 degre d'un label.... Sais tu si ta source me conviendra? (c peut etre une question con mais je me rend pas bien compte...)
Feuillou
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 août 2004 à 02:38
l'on m'a déjà rapporté ce travers..... je ne me souviens pas exactement de tous les détails, mais un BitBlt a partir du Use'rcontrol me semble envisageable....
sous reserve d'y inclure :
Public Property Get hDc() As Long: hDc = UserControl.hDc: End Property
tu pourrais egalement voir a regarder le contenu du module_rotation... dans le quel se trouve les fonctions utilisées ici.... esperant que cela puisse t'aider quelques peu.....
il faudrait en fait
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 23 août 2004 à 00:49
SLt reinfield!!!
j'ai un petit prob avec ce formidable ocx.
En effet je comptai m'en servir pour un editeur de pochette CD pour ecrire le texte des arrete du boitier 90°.
Mais lorsque j'envoie ton label avec un print sur une picturebox il me le replace a l'horizontale, idem avec un print vers l'imprimante!!!
Je suis donc bloqué y aurait-il un moyen d'arriver a resoudre mon bléme, sachant que j'ecrit ce texte verticale sur une picture box avec image de fond derriére!!!
Enfin si qq a une solution a mon probléme, elle serait la bienvenue!!!
Ps: sinon ce controle est supperbe, mis a part ce probléme d'envoie vers une image du label.... re 10/10
Bravo...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 oct. 2003 à 10:11
J'avais, dans une pre-release, laissé un angle de rotation libre.
Je l'ai dans un premier temps supprimé, car j'etais embete avec le placement. (la flemme, oui, je sais !!) Mais ce controle n'etait au depart qu'une reponse au Forum.
Puis la technique de rotation a completement changé. un angle libre, voire meme 4 angles suplémentaires (45 et consors) seraient implémentables, mais c'est relativement galère a faire.
Ca veux pas dire que je le ferais pas, mais c'est bien loin dans ma liste des choses a faire !!!!!
Allez, bonne continuation !
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 8 oct. 2003 à 02:14
Pas mal c'est sur, dommage que sa puisse pas faire en 45 mais bon c'est bien ;)
@+
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 7 oct. 2003 à 13:20
Chapeau bas, 10/10 mm + pour la qualité et surtout le suivi de ce composant qui pour moi tous bug regler!! sera d'une aide immense!!
merci!!! et bravo
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 oct. 2003 à 12:03
et voila toutes les polices maintenant compatibles...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 oct. 2003 à 10:04
Je te remercie patcui, j'avais remarqué ce travers ;-)
certaines polices plantent meme carrement le composant...
je vais tacher de regler ca ;-)
patcui
Messages postés53Date d'inscriptionmardi 25 décembre 2001StatutMembreDernière intervention20 août 2008 7 oct. 2003 à 09:21
Salut,
Ton contrôle est très bien!
J'ai trouvé un gros bug! Essai d'utiliser la polie MS Sans Sérif et tu verras le bug!
Ton contrôle ne fonctionnement plus!!!
J'ai déjà eu le problème pour faire une barre de titre orientable et je me suis aperçu que cela venait de la police utilisée. La fonction API permettant de dessiner verticalement ne supporte que les polices de type True Type!
Si tu trouve le moyen de le faire avec n'importe quelles polices ou d'afficher que les polices True Type dans la propriété Font , je suis preneur : moi je n'y suis pas arrivé!
A+,
Patrice
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 oct. 2003 à 00:02
Voila, encore une mise a jour d'importance ;-)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 6 oct. 2003 à 23:37
les sources du controles sont dispo !! (voir fichier .Ctl)
en ce qui concerne le flexgrid, se serait possible, je pense, a condition de pouvoir specifier que tu veux dessiner toi meme ta cellule.
Au boulot, on utilisait le controle Spread, qui permettait de definir un type de cellule perso, que l'on s'amusait soit-même a dessiner.....
mais je ne connais pas le FlexGrid..... Peut être que tu pourrqis te contenter de labels au dessus du dit Tableau.
Dans la source, j'ai bridé les angles de rotation, mais il est possible d'utiliser n'importe quel angle.....
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 6 oct. 2003 à 23:21
Bravo pour la transparence, mais pour vraiment remplacer le label de crosoft tu devrai aussi mettre la possibilité de changer le fontsize en mode lecture.
Si tu le modifie pour avoir les fonctions de base du label alors moi j adopte le tiens, car la rotation est franchement top!!!
Encore Bravo...
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 6 oct. 2003 à 23:17
"Profiter des sources de l'OCX"
Pardon, en fait, c'est du contrôle dont je veux parler (mais c'est toi qui utilise le terme d'OCX dans ton titre).
Si le contrôle a été réalisé via VB, j'aimerais pouvoir étudier le code-source de celui-ci pour comparer par exemple avec une source que j'avais mise aussi sur le site en mars 2003 "IMPRIMER DU TEXTE QUI TOURNE" http://www.vbfrance.com/code.aspx?ID=6342 (histoire de voir si tu utilises la même technique ou une autre).
Ceci dit, je viens de relire ton desscriptif (que j'avais survolée rapidement) et je m'en vais aller voir ta source "Ecrire dans ton les sens" qui, me semble-t-il, est à l'origine de ton contrôle...
"Faire la même chose avec un flexgrid"
Prenons l'exemple suivant, je dois présenter un cahier de présences sous forme d'un tableau où dans la colonne A se trouverait les dates du mois et dans la ligne 1 le nom des personnes écrit de manière à occuper un minimum de largeur. Pour réaliser cela, je pensais utiliser un flexgrid mais ce dernier, d'après mes connaissances actuelles, ne permet pas de pouvoir orienter le texte des cellules de telle manière que celui-ci se présente verticalement et non plus horizontalement.
Voilà pour l'explication de mon message...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 6 oct. 2003 à 21:47
les controles possedent desormais un affichage avec transparence.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 6 oct. 2003 à 21:35
> PcPunch : tu devrais réutiliser la fonction TournerTexte. Pour la transparence, oriente toi vers l'API SetBkMode
>Programmix : qu'entends tu par "profiter des sources de mon OCX ?". je n'ai de plus pas bien saisi ta requête quant aux FlexGrid.....
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 6 oct. 2003 à 20:20
Vois-tu, Renfield, je n'ai rien contre les OCX mais ceux-ci n'étanche pas ma soif d'apprendre. Donc, pourrait-on profiter des sources de ton OCX ?
Est-il possible de réaliser quelque chose du genre avec un flexgrid, un peu comme Excel le permet avec son alignement dans le format de cellule ? J'aurais besoin de ce genre de truc pour une ou deux applications...
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 6 oct. 2003 à 17:18
Apres verification pour etre parfait ton ocx devrait pouvoir conserver la transparence ? est ce possible..
Car pour moi il est inutile car je m en sert pour faire un petit editeur d image!!! don cbesoin de la transparence???
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 6 oct. 2003 à 17:10
franchement top!!! je cherché ca depuis qq temps j'utiliser une api pour dessiner le text a l angle voulu mais ca c parfais!!!
Encore merci!!! 10/10
10 août 2006 à 18:09
En utilisant DrawText en lieu et place de TextOut, on peut greffer très facilement l'alignement, en utilisant DT_CENTER DT_LEFT et DT_RIGHT...
10 août 2006 à 17:57
++
29 août 2005 à 10:24
11 oct. 2004 à 22:49
J'ai résolu ce truc avec un code beaucoup plus simple que celui-ci. Mon ocx permet d'afficher les textes dans tous les angles possibles (de 0° à 360°) sans les bugs de l'entour ni de l'emplacement. Vous trouvez cette ocx sur cette adresse :
http://www.vbfrance.com/code.aspx?ID=26755
Ta source reste bien aussi, sauf elle est un peu limité et compliquer pour moi au niveau code ;) :p.
Alors cher Renfird, tu peux enlever la tache de rotation et le placement de ta liste des taches ;), c'est déjà fait maintenant.
A++ et merci a vous.
4 oct. 2004 à 10:11
ta source est super bien!!!, sauf quand on utilise le style transparent avec des polices lisser, il reste qlq pixels du backcolor à l'entour du text (surtout quand les deux couleurs (backcolor, forecolor) sont tres différentes).
pour le placement avec les angles 45 ..., il y a les api getcharabcwidths, GetTextExtentPoint32, GetCharacterPlacement avec un peu 2 calculs mathématiques, peut etre resoudre le probleme!!?
9.5 / 10 en attendant si possible la mise a jour (2 l'entour) pour met 10/10 :p
31 août 2004 à 14:45
en tout cas merci d'avoir repondu si vite...
Feuillou
31 août 2004 à 14:34
désolé, je sais pas ce qui est dispo en C# pour ces taches....
31 août 2004 à 14:26
je travail en C# sur visual studio et je debute grave!! J'aimerais aussi pouvoir realiser une rotation a 90 degre d'un label.... Sais tu si ta source me conviendra? (c peut etre une question con mais je me rend pas bien compte...)
Feuillou
23 août 2004 à 02:38
sous reserve d'y inclure :
Public Property Get hDc() As Long: hDc = UserControl.hDc: End Property
tu pourrais egalement voir a regarder le contenu du module_rotation... dans le quel se trouve les fonctions utilisées ici.... esperant que cela puisse t'aider quelques peu.....
il faudrait en fait
23 août 2004 à 00:49
j'ai un petit prob avec ce formidable ocx.
En effet je comptai m'en servir pour un editeur de pochette CD pour ecrire le texte des arrete du boitier 90°.
Mais lorsque j'envoie ton label avec un print sur une picturebox il me le replace a l'horizontale, idem avec un print vers l'imprimante!!!
Je suis donc bloqué y aurait-il un moyen d'arriver a resoudre mon bléme, sachant que j'ecrit ce texte verticale sur une picture box avec image de fond derriére!!!
Enfin si qq a une solution a mon probléme, elle serait la bienvenue!!!
Ps: sinon ce controle est supperbe, mis a part ce probléme d'envoie vers une image du label.... re 10/10
Bravo...
8 oct. 2003 à 10:11
Je l'ai dans un premier temps supprimé, car j'etais embete avec le placement. (la flemme, oui, je sais !!) Mais ce controle n'etait au depart qu'une reponse au Forum.
Puis la technique de rotation a completement changé. un angle libre, voire meme 4 angles suplémentaires (45 et consors) seraient implémentables, mais c'est relativement galère a faire.
Ca veux pas dire que je le ferais pas, mais c'est bien loin dans ma liste des choses a faire !!!!!
Allez, bonne continuation !
8 oct. 2003 à 02:14
@+
7 oct. 2003 à 13:20
merci!!! et bravo
7 oct. 2003 à 12:03
7 oct. 2003 à 10:04
certaines polices plantent meme carrement le composant...
je vais tacher de regler ca ;-)
7 oct. 2003 à 09:21
Ton contrôle est très bien!
J'ai trouvé un gros bug! Essai d'utiliser la polie MS Sans Sérif et tu verras le bug!
Ton contrôle ne fonctionnement plus!!!
J'ai déjà eu le problème pour faire une barre de titre orientable et je me suis aperçu que cela venait de la police utilisée. La fonction API permettant de dessiner verticalement ne supporte que les polices de type True Type!
Si tu trouve le moyen de le faire avec n'importe quelles polices ou d'afficher que les polices True Type dans la propriété Font , je suis preneur : moi je n'y suis pas arrivé!
A+,
Patrice
7 oct. 2003 à 00:02
6 oct. 2003 à 23:37
en ce qui concerne le flexgrid, se serait possible, je pense, a condition de pouvoir specifier que tu veux dessiner toi meme ta cellule.
Au boulot, on utilisait le controle Spread, qui permettait de definir un type de cellule perso, que l'on s'amusait soit-même a dessiner.....
mais je ne connais pas le FlexGrid..... Peut être que tu pourrqis te contenter de labels au dessus du dit Tableau.
Dans la source, j'ai bridé les angles de rotation, mais il est possible d'utiliser n'importe quel angle.....
6 oct. 2003 à 23:21
Si tu le modifie pour avoir les fonctions de base du label alors moi j adopte le tiens, car la rotation est franchement top!!!
Encore Bravo...
6 oct. 2003 à 23:17
Pardon, en fait, c'est du contrôle dont je veux parler (mais c'est toi qui utilise le terme d'OCX dans ton titre).
Si le contrôle a été réalisé via VB, j'aimerais pouvoir étudier le code-source de celui-ci pour comparer par exemple avec une source que j'avais mise aussi sur le site en mars 2003 "IMPRIMER DU TEXTE QUI TOURNE" http://www.vbfrance.com/code.aspx?ID=6342 (histoire de voir si tu utilises la même technique ou une autre).
Ceci dit, je viens de relire ton desscriptif (que j'avais survolée rapidement) et je m'en vais aller voir ta source "Ecrire dans ton les sens" qui, me semble-t-il, est à l'origine de ton contrôle...
"Faire la même chose avec un flexgrid"
Prenons l'exemple suivant, je dois présenter un cahier de présences sous forme d'un tableau où dans la colonne A se trouverait les dates du mois et dans la ligne 1 le nom des personnes écrit de manière à occuper un minimum de largeur. Pour réaliser cela, je pensais utiliser un flexgrid mais ce dernier, d'après mes connaissances actuelles, ne permet pas de pouvoir orienter le texte des cellules de telle manière que celui-ci se présente verticalement et non plus horizontalement.
Voilà pour l'explication de mon message...
6 oct. 2003 à 21:47
6 oct. 2003 à 21:35
>Programmix : qu'entends tu par "profiter des sources de mon OCX ?". je n'ai de plus pas bien saisi ta requête quant aux FlexGrid.....
6 oct. 2003 à 20:20
Est-il possible de réaliser quelque chose du genre avec un flexgrid, un peu comme Excel le permet avec son alignement dans le format de cellule ? J'aurais besoin de ce genre de truc pour une ou deux applications...
6 oct. 2003 à 17:18
Car pour moi il est inutile car je m en sert pour faire un petit editeur d image!!! don cbesoin de la transparence???
6 oct. 2003 à 17:10
Encore merci!!! 10/10