IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Probleme de transparence dans une forme


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2014
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 187
    Points : 45
    Points
    45
    Par défaut Probleme de transparence dans une forme
    Bonjour
    j'ai appliquer une transparence a une forme qui contient un bouton.
    Nom : Capture d’écran 2024-09-28 211831.png
Affichages : 149
Taille : 283,6 Ko
    après j'ai remarqué que je peux pas cliquer sur la partie en haut du bouton.

    est ce que c'est normal ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 256
    Points : 41 640
    Points
    41 640
    Billets dans le blog
    64
    Par défaut
    Sans code, sans la version utilisée, la fête est plus folle !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2014
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 187
    Points : 45
    Points
    45
    Par défaut
    La version: 12
    ya aucun code
    le projet est sans code contient une forme et un bouton
    j'ai jouer seulement sur les propriétés de la forme
    Nom : Capture d'écran 2024-09-28 212206.png
Affichages : 114
Taille : 4,6 Ko
    et le bouton ne contient aucun code

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 422
    Points : 323
    Points
    323
    Par défaut
    J'ai l'impression que la forme est transparente et que l'on ne voit que le bouton ?

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2014
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 187
    Points : 45
    Points
    45
    Par défaut
    ma question est:
    pourquoi je peux pas cliquer sur la partie en haut du bouton ?

  6. #6
    Membre averti
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 321
    Points : 303
    Points
    303
    Par défaut
    Citation Envoyé par ABBAN270 Voir le message
    ma question est:
    pourquoi je peux pas cliquer sur la partie en haut du bouton ?
    En effet, j'ai le même souci avec Delphi 11.2, à l'époque de Delphi 10, ce problème n'existait pas.

    Personnellement, il n'y a pas grand intérêt à créer un TForm transparent, sauf pour créer un SplashScreen.
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.
    Ce n’est pas un bogue - c’est une fonctionnalité non documentée.

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 256
    Points : 41 640
    Points
    41 640
    Billets dans le blog
    64
    Par défaut
    Citation Envoyé par ABBAN270 Voir le message
    ya aucun code
    Le dfm c'est aussi du code

    et le bouton ne contient aucun code
    Ah, vous voulez parler du bouton de cloture de forme ?

    Pour un splashscreen, j'aurais tendance à n'utiliser un TForm Transparent sans bordure (borderstyle:=bsnone)
    Pour une forme avec utilisation des icones systeme effectivement je constate que dans ce cas un clic (quelqu'il soit) sur la barre système implique la perte de focus de la dite fenêtre, ce qui fait que si je clique sur une incone du bureau située sous la forme transparente celui-ci est actif, ce qui me fait dire que c'est certainement voulu.

    Normal ? Je ne sais pas, cela fait longtemps que je ne suis plus très VCL ! Deux nouveaux composants TTitlebarPanel et TFormTabsBar (à partir de 10.4) ont été ajoutés qui sont peut-être une réponse ou du moins une piste à explorer
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 827
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 827
    Points : 13 570
    Points
    13 570
    Par défaut
    Ca le fait sur le haut du bouton mais aussi sur la gauche. Par contre ce n'est pas un problème Delphi, même comportement si on passe par API directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SetWindowLongPtr(Handle, GWL_EXSTYLE, GetWindowLongPtr(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
      SetLayeredWindowAttributes(Handle, Color, 0, LWA_COLORKEY);
    end;
    Le problème vient des bordures qui entraînent un décalage des coordonnées, BorderStyle = bsNone le résout.

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 256
    Points : 41 640
    Points
    41 640
    Billets dans le blog
    64
    Par défaut
    Suite de mes constatations sur ce problème.
    Le comportement est diiférent selon les versions 12.1 / 12.2 (comme quoi il faut être précis)
    Dans le cas de la 12.1 deux problèmes dûs à la tranparence :
    1. La barre de fenêtre ne focalise pas, donc impossible d'utiliser les icones de fermeture et autres, un clic sur cette barre de fenêtre -> perte de focalisation de l'application sauf en cas d'utilisation d'un TTitlebarPanel (chose que j'ai très mal maitrisée).
    2. Le focus sur un controle (dans notre cas un bouton mais je subodore que ce serait valable pour tout controle se perd si la position de la souris est dans sa partie haute, je dirais dans la zone correspondant à la hauteur de la barre de fenêtre mais c'est à vérifier.

    Nom : Video_2024-09-30_113059.gif
Affichages : 87
Taille : 273,2 Ko

    avec la version 12.2 la constation 1 n'est plus d'actualité, reste la n°2
    Nom : Video_2024-09-30_113716.gif
Affichages : 87
Taille : 110,8 Ko

    en pj mon programme de test. Il me reste un tas d'idées de test à réaliser
    Fichiers attachés Fichiers attachés
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2014
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 187
    Points : 45
    Points
    45
    Par défaut
    merci pour les tests
    mais je vois que ce problème se trouve dans plusieurs version
    je pense que ya pas une autre sauf si on enlève les bordures....!!
    Qu'est ce que vous pensez ?

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 256
    Points : 41 640
    Points
    41 640
    Billets dans le blog
    64
    Par défaut
    Citation Envoyé par ABBAN270 Voir le message
    Qu'est ce que vous pensez ?
    Je ne pense rien, je constate.
    Plus même si je fais le même programme en FMX, transparency=true fait disparaitre la barre de fenêtre (bon moyen de ne pas avoir le problème )
    Nom : Video_2024-10-01_085527_edit.gif
Affichages : 68
Taille : 159,1 Ko

    Cela étant, signaler un bogue Andnotor signale que ce serait plutôt un problème Windows puisque en passant par l'API c'est identique

    D'autres essais en 12.1 ce matin m'ont fait constater 2 choses :
    1- Si le bouton est aligné en bas (align albottom avec marges right-left-top-bottom) le bouton entier a bien le focus (le truc c'est le align:=albottom).
    2- Si la fenêtre est agrandie (wsmaximized) les boutons de la barre de titre fonctionnent .

    Cela contradierait le fait que ce serait un problème windows :
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 697
    Points : 25 559
    Points
    25 559
    Par défaut
    Sinon, on peut utiliser les Region pour faire un Trou dans la fenêtre
    Par contre, c'est un vrai "Trou", si tu cliques dans la région, ça clic à travers ... avec ce que tu montres en laissant la barre système c'est plus que déroutant comme Design
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  13. #13
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2014
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 187
    Points : 45
    Points
    45
    Par défaut
    j'ai pas essayer ce truc avec une ancienne version de windows
    pour confirmer que c'est un bug de system ou il vient de Delphi

  14. #14
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 827
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 827
    Points : 13 570
    Points
    13 570
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Cela contredirait le fait que ce serait un problème windows :
    A partir du moment où la même application fonctionne comme attendu sous Windows 7, oui c'est dû à une évolution Windows, sans doute de DWM.


    Bien sûr qu'il n'est pas très logique d'avoir une bordure et barre de titre sur une fenêtre 100% transparente mais si on ne souhaitait masquer que certaines zones (à l'aide de TShape par exemple) il faut les conserver. C'est pas possible d'automatiser le masquage.

Discussions similaires

  1. probleme sur execute_query dans une forms pour AS 10g
    Par PierrikLeGuennec dans le forum Forms
    Réponses: 4
    Dernier message: 01/07/2009, 18h12
  2. Probleme de couleur dans une form
    Par BuzzLeclaire dans le forum Débuter
    Réponses: 1
    Dernier message: 14/05/2009, 16h43
  3. [c#]probleme avec les menu toolStripItem dans une form mdi??
    Par must19 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/11/2006, 00h02
  4. [C#] Problème de requetes en Sql dans une form fille
    Par padodanle51 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/05/2006, 12h32
  5. Réponses: 1
    Dernier message: 24/04/2006, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo