Form non rectangulaire [Résolu]

Signaler
Messages postés
58
Date d'inscription
vendredi 24 décembre 2004
Statut
Membre
Dernière intervention
13 avril 2005
-
Messages postés
58
Date d'inscription
vendredi 24 décembre 2004
Statut
Membre
Dernière intervention
13 avril 2005
-
salut à tous

je souhaite créer une "form" non rectangulaire :
pour cela, j'ai créer une image BMP de forme non rectangulaire. Sur cette image, les pixels que je souhaite voir disparaitre dans mon appli son en vert (dlLime) (je précise que tous les pixels de mon bmp sont des pixels opaques : pas d'opacité réduite, pas de flou sur les bords etc...)

dans delphi, sur ma "form", je crée une TImage, j'y mets mon BMP et je définis, dans l'inspecteur d'objets :
Form1.TransparentColorValue : = dlLime
Form1.TransparentColor : = true

ca fonctionne mais, j'ai, tout autour, de ma 'form' une ligne verte de largeur 1 pixels...
comment faire pour ne plus voir cette ligne ?

deuxieme chose : (en supposant que je réussisse à me débarasser de cette ligne verte)
j'aimerai ajouter une ombre portée à ma form, c'est à dire que sur le bureau par exemple ou sur toute autre fenetre sous celle de mon appli soit projeter l'ombre de ma forme...mais une ombre projeté n'est pas une couleur opaque mais transparent à 75% par exemple...
donc comment définir une transparence à 75% par exemple de certains pixels de ma 'form' ??

merci de vos réponses...

3 réponses

Messages postés
58
Date d'inscription
vendredi 24 décembre 2004
Statut
Membre
Dernière intervention
13 avril 2005

salut à tous...

désolé pour le dérangement...ma méthode fonctionne.....

le seul probleme, c'est que photoshop, pour éviter l'aliasing, rajoute
une sorte de dégradé plus ou moins transparent autour de l'image....

donc à l'export au format bitmap,
certains pixels ne sont ni verts (ma couleur de fond) ni noirs (la
couleur du bord) mais vert foncé disons...ce sont ces pixels qui
apparaissent autour de ma forme



merci tout de même pour vos réponses
Messages postés
23
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
3 mars 2005

Lorsqu'il s'agit d'une forme simple (jusqu'à une vingtaine d'angles on va dire), on peux utiliser les fonctions SetWindowRgn() etc... mais s'il faut le faite à partir d'une image cela s'avère extremement compliqué. Le principe serait de scanner l'image avec une boucle, et de créer un tableau avec les coordonées de chacun des angles...

Par contre il existe un composant qui le fait très bien, son nom : CoolForm !
en plus c'est gratuit !

http://www.delphipages.com/result.cfm?SR=coolform&AO=and&RequestTimeout=500

Salutations
Messages postés
449
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
2
Il y a dans les sources déposées un exemple d'usage de régions (setWindowsRegion) qui scan la photo de départ en fct d'une couleur clef.

Mais je sais plus lequel....

gnh !