|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Responsable de service informatique Inscription : avril 2011 Messages : 1 149 ![]() |
Bonjour,
Je suis à la recherche d'informations sur la création de composant, et surtout comment le composant est géré dans l'IDE. En effet, j'ai un problème avec un composant que je créé. Je voudrais que le composant se redessine si on change le Caption (normal, me direz-vous). Je suis reparti de TCustomControl qui contient Caption de TControl. Le problème que j'avais, c'est que si je redéfinissais SetCaption alors le nom du composant n'était plus automatiquement attribué au Caption. Je suis alors passé par une procedure Message sur CMTextChanged, que j'ai implémenté en appelant Paint tout simplement. Le soucis, c'est que maintenant, lors de la création du composant dans l'IDE, j'ai le message suivant: "Error setting the name of a componant". J'imagine que c'est l'appel à Paint alors que le composant n'est pas encore créé qui pose problème. Seulement, je ne sais qu'elle condition mettre pour que le Paint ne se fasse que si le composant est complètement créé. Sur les composants que j'avais déjà sur ma form, la méthode fonctionne nickel, donc, je tiens le bon bout. Je suppose que je dois jouer sur les ComponentState, ControlState, ControlStyle et ComponentStyle, mais là je nage un peu. Quelqu'un aurait des connaissances sur ces sujets ? Merci d'avance. JS
__________________
L'Amour est fort difficile à conjuguer. Au passé, il n'est jamais simple. Au présent, il n'est qu'indicatif. Et au futur, il n'est que conditionnel. (d'après Jean Cocteau) |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Responsable de service informatique Inscription : avril 2011 Messages : 1 149 ![]() |
Bon, j'ai résolu en remplaçant l'appel à Paint par un appel à Invalidate.
Je ne sais pas pourquoi ça marche ainsi, mais ça marche. Cool JS
__________________
L'Amour est fort difficile à conjuguer. Au passé, il n'est jamais simple. Au présent, il n'est qu'indicatif. Et au futur, il n'est que conditionnel. (d'après Jean Cocteau) |
|
|
00
|
|
|
#3 | ||||
|
Nouveau Membre du Club
![]() Benjamin Codeur Inscription : août 2012 Messages : 37 ![]() |
Bonjour,
Joli travail. Si je peux me permettre -et si cela fonctionne (sous Linux ?)-, je modifierais 2 choses
J'ai rencontré le même problème et je crois (toujours Linux à voir) l'avoir réglé ainsi : Code :
PS 1 : par rapport à Windev je vois que nos 2 boutons ont le même problème. Si tu fais un stretch horizontal alors en considérant un fond qui a au départ un bord épais de 1 pixel, le bord arrive à 2, 3 voire 4 pixels suivant le facteur multiplicatif... La fonction de stretching à mon avis est mal utilisable dans ce cas particulier... Malheureusement c'est celui dont j'ai besoin. Je regarde comment on peut émuler le modèle 9 images de notre référence de départ... PS 2 : Structurellement mon ébauche diffère beaucoup de ton travail. Le mien est également un TCustomControl mais il travaille non pas directement sur le canvas du Tcustom mais avec un Tlabel et 2 TBitMaps inclus pour gérer l'affichage... évidemment soumis à l'évolution qu'en fait Lazarus... Le tien est donc moins sensible à ces variations. Mais comme j'étais parti d'un TCustomPanel au départ, j'avais préféré utiliser cette structure et les ancrages. PS 3 : Pour le centrage du Caption, si cela présente un quelconque intérêt, je modifierais ton code ainsi : Code :
|
||||
|
|
10
|
|
|
#4 |
|
Membre Expert
![]() Responsable de service informatique Inscription : avril 2011 Messages : 1 149 ![]() |
Merci ApproxDev pour ces retours.
En effet, je n'arrivais pas à trouver comment rendre visuel les changements d'images lors de la conception. Pour le centrage du texte, j'en étais arrivé à la même réflexion que toi pour la place du texte, que je ne trouvais pas pertinent. Je vais corriger. Pour le stretching, c'est vrai que c'est un soucis, mais le mode 9 images me semble peu évident à mettre en œuvre. En plus, je t'avouerais que j'utilise les images en mode "TailleAuto". Mais, je vais regarder ça de plus près... Qui peut le plus peut le moins après tout. A+ JS
__________________
L'Amour est fort difficile à conjuguer. Au passé, il n'est jamais simple. Au présent, il n'est qu'indicatif. Et au futur, il n'est que conditionnel. (d'après Jean Cocteau) |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Responsable de service informatique Inscription : avril 2011 Messages : 1 149 ![]() |
@ApproxDev, je viens de voir le code que tu as mis pour la gestion du mode 9 images. Je me demandais si tu m'autoriserais à l'utiliser pour améliorer mon code ?
Je pense que nous devrions continuer la discussion sur le post concernant le composant ImagesBouton car celui-ci est marqué "Résolu". A+ JS
__________________
L'Amour est fort difficile à conjuguer. Au passé, il n'est jamais simple. Au présent, il n'est qu'indicatif. Et au futur, il n'est que conditionnel. (d'après Jean Cocteau) |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com