Form non rectangulaire [Résolu]

emmanuelgo 62 Messages postés vendredi 24 décembre 2004Date d'inscription 13 avril 2005 Dernière intervention - 2 mars 2005 à 01:09 - Dernière réponse : emmanuelgo 62 Messages postés vendredi 24 décembre 2004Date d'inscription 13 avril 2005 Dernière intervention
- 8 mars 2005 à 00:07
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...
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
emmanuelgo 62 Messages postés vendredi 24 décembre 2004Date d'inscription 13 avril 2005 Dernière intervention - 8 mars 2005 à 00:07
3
Merci
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

Merci emmanuelgo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de emmanuelgo
jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention - 2 mars 2005 à 07:45
0
Merci
Hello,



Pour l'utilisation de timage comme form regarde cette source :

http://www.delphifr.com/code.aspx?id=29293



Sinon je me souviens que sur www.phidels.com il y a un code source sur les form non rectangulaire.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
krypto2000 23 Messages postés vendredi 16 janvier 2004Date d'inscription 3 mars 2005 Dernière intervention - 3 mars 2005 à 16:32
0
Merci
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
Commenter la réponse de krypto2000
DeltaFX 459 Messages postés lundi 19 avril 2004Date d'inscription 8 avril 2009 Dernière intervention - 6 mars 2005 à 14:03
0
Merci
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 !
Commenter la réponse de DeltaFX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.