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 :

Ouvrir la visionneuse de Windows en avant plan !


Sujet :

Delphi

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut Ouvrir la visionneuse de Windows en avant plan !
    Bonjour à toutes et à tous,

    J'ai une forme qui a la propriété d'être en arrière plan (FormStyle = fsNormal), j'appelle la visionneuse de Windows pour consulter ma photo et elle se met derrière la forme.

    Y a t'il un moyen soit d'appeler cette visionneuse dans une fiche Delphi ou de faire en sorte de l'avoir au 1er plan.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    if ComboBoxURL.Text = chappli + 'CamArriere.html' then
     fname:= chemin + pchar('\CamArriere.jpg') else fname:= chemin + pchar('\CamAvant.jpg'); //op1.FileName ;
     
     prevu :='C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen ' + fname;
     
     ShellExecute(0,'open','rundll32.exe',pchar(prevu) ,nil, SW_SHOW);
    J'avais aussi testé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SetWindowPos(0, HWND_TOPMOST, 0, 0, 0, 0,  
     SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
    Merci pour une éventuelle aide.

    @+,

    cincap

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    Après plusieurs tests, j'ai trouvé une solution qui m'agrée.

    En effet, avec le Tbutton qui appelle la visionneuse de Windows et avant le code de ShellExecute, je force la fenêtre principale à resté à l'arrière plan et donc la fenêtre de la visionneuse se trouve à l'avant plan.

    @+,

    cincap

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 468
    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 468
    Points : 24 893
    Points
    24 893
    Par défaut
    Cela me rappel un vieux DEV en Delphi 7
    A l'époque pour afficher des TIFF, j'utilisais cela mais selon la version de Windows shimgvw ne gérait pas les paramètres
    ou même n'existait pas encore et cela lançait Windows 2000 Kodak Image Viewer pour visualiser un TIFF

    as-tu essayé SW_SHOWMAXIMIZED ou SW_SHOWNORMAL ?

    Ton image est une JPG ! pourquoi ne pas utiliser TImage + TJPEGImage ?
    TJPEGImage est dispo en D7, il faut soit même effectuer la conversion

    Sinon, tu peux aussi utiliser le TWebBrowser, en faisant un Navigate sur le chemin de l'image, il l'affichera
    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

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ ShaiLeTroll merci pour ta suggestion, la fiche principale appelle le lecteur Vlc et donc c'est une vue de la caméra en direct, la visionneuse se place automatiquement derrière et comme je n'ai pas accès à sa propriété, je force la fiche principale à l'arrière le temps de l'appel de cette visionneuse.

    Forcément, j'avais déjà essayé plusieurs solutions dont celles que tu préconises.

    J'aime mieux utilise le viewer de Windows.

    Le fait de rappeler que la forme principale doit resté en arrière de tout, il ne suffit pas de mettre sa propriété FormStyle := fsnormal, cela ne fonctionnait pas.

    @+,

    cincap

  5. #5
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    hide et show
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ edam, merci pour ta suggestion mais j'ai préféré la commande "SendToBack".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ComboBoxURL.Text = chappli + 'CamArriere.html' then
     fname:= chemin + pchar('\CamArriere.jpg') else fname:= chemin + pchar('\CamAvant.jpg'); //op1.FileName ;
     
     prevu :='C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen ' + fname;
    
    FViewerH264.SendToBack ; 
    
     ShellExecute(0,'open','rundll32.exe',pchar(prevu) ,nil, SW_SHOW);
    En effet lorsque je consulte ma caméra en temps réel, je n'ai qu'une fiche ouverte sur le bureau de Windows, avec cette commande ma fiche principale est forcée à l'arrière plan et donc la visionneuse de Windows est à l'avant plan.

    @+,

    cincap

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2011, 13h49
  2. [Système] Ouvrir un repertoire sous windows explorer
    Par maxxou dans le forum Général Java
    Réponses: 6
    Dernier message: 18/01/2006, 22h01
  3. Mode console toujours en avant plan ....
    Par Alice9 dans le forum MFC
    Réponses: 10
    Dernier message: 27/09/2005, 13h38
  4. Comment faire pour qu'une Form reste en avant-plan?
    Par Bodom-Child dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/08/2005, 10h28
  5. Mettre en avant plan une autre application...
    Par loupdeau dans le forum MFC
    Réponses: 13
    Dernier message: 19/05/2005, 13h26

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