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

Delphi Discussion :

Créer une fenêtre au fond transparent


Sujet :

Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut Créer une fenêtre au fond transparent
    Bonjour,

    quelqu'un(e) sait-il comment on fait une TForm au fond transparent dans lequel on ne peut pas clicker à travers ? Pour l'instant, toutes mes tentatives permettent de clicker à travers la fenêtre.

    Merci. D'avance. Gilles
    Dernière modification par Invité ; 23/03/2018 à 16h48. Motif: Mauvaise formulation corrigée

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    Un canal alpha à 1 (sur 255). Il faut un minimum d'opacité.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu veux dire AlphaBblendValue =1 et AlphaBlend = true ?
    Si tel est le cas, les bordures de la fenêtre n'apparaissent plus or il me faudrait simplement le fond transparent.

  4. #4
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    Bonjour,

    comme ceci ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Form1.AlphaBlend := False;
      Form1.Color := clRed;
      Form1.TransparentColor := True;
      Form1.TransparentColorValue := clRed;
    Cordialement,
    @+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour Cirec,

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    with Form1 do
      begin
        FormStyle             := fsStayOnTop;
        AlphaBlend            := False;
        Color                 := clRed;
        TransparentColor      := True;
        TransparentColorValue := clRed;
      end;
    end;
    Sans succès. Je "traverse" toujours le fond de la Form. Mais peut-être que ce que je cherche à faire est impossible : si Transparent = "vide" c'est à dire "pas de fond dans la fenêtre", il n'y a pas de solution.

  6. #6
    Invité
    Invité(e)
    Par défaut
    En quelque sorte, je crois que c'est le cas :
    Adding transparency to a form also means that all areas that are color-keyed will not capture mouse clicks. Those clicks will be directed to whatever is on the screen at this place.

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Une parade est donc pê de faire un ScreenShot de l'écran et d'afficher en fond de fiche ce qu'il y a en dessous ? Si la fiche ne bouge pas trop et ce qu'il y a en dessous ne change pas trop, ça doit passer...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Merci à tous.

    J'ai combiné les méthodes de Cirec et d'AndNotOr. La première pour la Form et la seconde pour le Panel que j'ai placé dessus. Et en plus cela fonctionne sous FMX.

    Un grand merci aux 3. Je passe au problème suivant : je dessine à main levée. Je vais rester sous FMX. Le dessin apparaît bien mais quand je quitte le TPanel. J'ouvre une nouvelle discussion.

    Justement Toulourou, je ne veux pas de cette méthode.

    Cordialement. Gilles
    Dernière modification par tourlourou ; 24/03/2018 à 13h28.

  9. #9
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    re,

    content que tu ais pu trouver une solution.

    le problème doit venir de FMX parce que en VCL pure ça fonctionne parfaitement
    et impossible de cliquer sur ce qui se trouve en dessous
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une fenêtre sans bords
    Par N3odyme dans le forum C++
    Réponses: 2
    Dernier message: 06/07/2006, 00h27
  2. [C# 2.0] Créer une fenêtre non redimensionnable
    Par sqlnoob dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/06/2006, 11h22
  3. Réponses: 2
    Dernier message: 08/06/2006, 15h49
  4. Créer une fenêtre
    Par RaygKross dans le forum Qt
    Réponses: 12
    Dernier message: 08/02/2006, 09h34
  5. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46

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