OCX - LABEL VERTICAL....

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 - 6 oct. 2003 à 17:10
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 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.

https://codes-sources.commentcamarche.net/source/16896-ocx-label-vertical

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
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és 38 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 21 septembre 2008
29 août 2005 à 10:24
impec je cherchais depuis longtemps
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Derniè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és 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Derniè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és 48 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 6 juillet 2007 1
31 août 2004 à 14:45
Tant pis, je desespere pas...
en tout cas merci d'avoir repondu si vite...

Feuillou
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 48 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 6 juillet 2007 1
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Derniè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és 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 oct. 2003 à 12:03
et voila toutes les polices maintenant compatibles...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 53 Date d'inscription mardi 25 décembre 2001 Statut Membre Dernière intervention 20 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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 oct. 2003 à 00:02
Voila, encore une mise a jour d'importance ;-)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
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és 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 oct. 2003 à 21:47
les controles possedent desormais un affichage avec transparence.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
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és 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
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és 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
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
Rejoignez-nous