|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 4 ![]() |
Est il possible de rendre une frame transparente pour voir l'image située en arrière plan.
Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Pour un textbox, c'est la propriété BackStyle = 0 mais je n'ai pas l'impression qu'il y ait l'équivamlent pour les frames.
Si tu poses la question, c'est sans doute que tu as un fond que tu veux conserver et là, à part mettre le frame de la même couleur je ne vois pas. Peut être un bout de l'image que tu as en fond (???) Juste pour que tu ne restes pas sans rien |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 4 ![]() |
Merci du conseil mais c'est clair que ce n'est pas très pratique de découper des morceaux d'images surtout quand il commence à y avoir beaucoup de frames ou quand on veut modifier l'agencement.
|
|
|
00
|
|
|
#4 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Je me doutais bien
|
|
|
00
|
|
|
#5 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Il faut utiliser des pictureboxes comme containers à la place des Frames et se servir ensuite de Paintpicture et des coordonnées de la picturebox pour reproduire dans la picturebox l'image qui, sur la Form, est au même endroit.
Les contrôles insérés dans la picturebox n'en seront pas affectés. Pour être complet : la PictureBox ne devra pas avoir de bordure. C'est tout et c'est facile. A étudier donc : la méthode PaintPicture (aide en ligne) Edit : je vien de le faire sans rencontrer le moindre problème (en quelques secondes) si VBA ne connait pas la méthode PaintPicture, on la remplace par une API (il y en a au moins 2 qui font celà) |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 4 ![]() |
Merci bien pour cette voie de recherche. Je vais essayer.
|
|
|
00
|
|
|
#7 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
OK,
Si tu n'y parviens pas, reviens avec ton code d'essai et je te montrerai alors. |
|
|
00
|
|
|
#8 |
![]() ![]() |
otez-moi d'un doute... cela existe les PictureBox en VBA ? je les trouve pas ...
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#9 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Bonjour Bbil,
Si VBA n'a pas de contrôle PictureBox, Notre ami Guile peut toujours télécharcher TrsPicture (Ocx pour VBA réagissant comme une pictureBox), depuis ce lien : http://throsn.tripod.com/CapturingViews.html EDIT : C'est gratuit. RE EDIT : on peut également faire un container avec une API |
|
|
00
|
|
|
#10 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Réflexion faite, après un bon déjeuner :
Ce sujet me plait car : 1) il donne l'occasion de montrer ce qu'est le développement bien pensé, en phase avec Microsoft, .. et pas forcément "récité".... 2) je vais ici travailler "en aveugle", ne connaissant absolument rien des possibilités offertes par un VBA "moderne" ... que je ne possède pas 3) apparemment, VBA n'a pas tout prévu... Mais je prétends personnellement que Microsoft à, lui, tout prévu.... 4) il va nous falloir faire preuve d'ingéniosité et de créativité pour faire face à certaines lacunes... 5) j'aime ce genre de défi. J'ai donc décidé de m'y intéresser de très près et demande à Bbil de se rappeler ici que ses interventions ne sont pas celles d'un modérateur mais bien (et uniquement) celles d'un intervenant, au même titre que celles de n'importe quel autre intervenant. J'ai simplement deux questions à poser à Guile afin d'économiser mes gestes au maximum, puisque je vais ici travailler en aveugle : - VBA connait-il la méthode Paintpicture ? - VBA gère-t'il des contrôle Image ? Le reste sera mon affaire (VBA ou non)... et j'attends que Guile me réponde pour m'y mettre, avec ma tenacité habituelle.... C'est là mon défi ! |
|
|
00
|
|
|
#11 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Hello jemefe, moi aussi je suis intéressé (comme lecteur
A propos de Paintpicture, peux-tu nous dire ce que fait la méthode Paintpicture ? Peut-être a-t-on l'équivalent en VBA Merci A+ |
|
|
00
|
|
|
#12 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Bonjour ousk
La méthode paintpicture sert à transférer un "rectangle" d'image Si elle existe sous VBA, tant mieux. Si elle n'existe pas, je m'en passe et utilise une API, et voilà tout ! |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 4 ![]() |
Si j'ai bien tout compris, pour PaintPicture c'est un peu mort. J'ai essayé rapidement et j'ai pas l'impression que ce n'est pas une bonne voie de recherche.
Par contre, si quelqu'un connait une API capable de faire ça, ce serait super cool. |
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : mai 2006 Messages : 272 ![]() |
Bonsoir guile7695
En faisant une recherche je suis tombé la dessus c'est pour acces mais il doit pas y avoir beaucoup de difference : http://cafeine.developpez.com/access/tutoriel/paint/ Tu peux peut etre allez y jeter un oeil je ne sait pas ce que ça vaut, car je n'ai deja pas tout lu et mon niveau est plusque modeste. Apparemment pour ton cas ce serait Gdi32.dll Par contre pour l'instant comment l'utiliser je nage, mais il y a du code d'exemple. |
|
|
00
|
|
|
#15 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Bon,
(je reviens d'un dîner) J'ai bien évidemment trouvé 4 façons différentes avec API, mais il me semble que j'en ai trouvé une encore plus simple, avec VBA uniquement. Avant de continuer (je suis en aveugle sans VBA), j'aimerais bien qu'un spécialiste VBA (Ousk, Bbil .. ?) réponde à ces quelques questions : 1) quel est l'événement d'initialisation d'une form ? Est-ce Userform-Initialize ? 2) Peut-on, sous VBA, attribuer le mot Me pour désigner la Form active ? (sinon : quel mot ?) 3) VBA connait-il le contrôle Image ? 4) VBA connait-il les Scalemode d'une Form et si oui, quels sont-ils ? Dès réponse à ces 4 questions simples, je serai en mesure de proposer à l'essai une chose également simple et très efficace. Merci à ceux qui, possédant VBA, voudront bien répondre à ces 4 questions. |
|
|
00
|
|
|
#16 |
![]() ![]() |
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#17 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Merci Bbil.
Ma réponse (le code à essayer) dans 5 minutes environ. |
|
|
00
|
|
|
#18 | ||
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Bbil,
Veux-tu essayer sous VBA et me dire ? Dans une UserForm : - propiété picture de la Userform avec une image à insérer comme d'habitude - un Frame nommé Frame1 avec, à l'intérieur, où l'on veut et avec les dimensions que l'on veut (tout petit) un contrôle image nommé image1 - les contrôles que l'on veut mettre dans le Frame, pour essayer (des boutons de commande, par exemple) et le code suivant : Code :
Merci d'essayer et me dire |
||
|
|
00
|
|
|
#19 |
![]() ![]() |
bon j'ai pas compris ce que tu voulais faire... sinon ce qui ce passe à l'éxecution ... la "petite" image disparait .. de l'écran .. le move ...-...
au sujet du scalemode vue plus haut... pour le contrôle image et le la form j'ai la propriété : PictureAlignment qui peu prendre les valeurs : - fmPictureAlignmentBottomLeft - fmPictureAlignmentBottomRight - fmPictureAlignmentCenter - fmPictureAlignmentTopLeft - fmPictureAlignmentRight et PictureSizeMode - fmPictureSizeModeClip - fmPictureSizeModeStretch - fmPictureSizeModeZoom autre chose... quand je met l'image dans le frame1.. en lui avec un Move (0,0 ) . je me retrouve dans le coin en haut à gauche... voila ... ..
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#20 | |||
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Citation:
Elle a tout simplement affiché dans le Frame la partie de l'image de la form qui correspondait à la zone occupée par le Frame. Enlève donc image1.picture = Me.Picture et tu verras la différence, ma foi enlève le move et tu reverras la petite l'image... Celà est parfaitement comptéhensible et très simple... Mon essai est fait avec une image sur la form mise en haut et à gauche. Si l'image de la Form est complète et si les contrôles mis dans le Frame s'affichent, tout est bon : c'est celà, l'effet Frame Transparent, et c'est ce que souhaite Guile : des contrôles dans un Frame mais sans que le Frame ne "bouffe" l'image de fond... Bon ... laissons Guile nous dire... si, comme je le pense maintenant, tout va bien, voilà le tout en procédure : Code :
Il me semble alors qu'un select case et un calcul élémentaire suffiraient, bien évidemment (le seul but à atteindre, et il est facile : donner à image1 la même position que celle de l'image de la form, et celà se calcule simplement en fonction de la position du Frame par rapport à l'image, c'est tout !) Si vraiment vous n'y parvenez pas seuls, je me rendrai demain chez le voisin (qui possède VBA) et ferait aussi ce select case, ma foi ! Bonne nuit, maintenant. |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com