Accueil > Forum > > > > StayOnBottom
StayOnBottom
vendredi 13 juin 2008 à 16:13:22 |
StayOnBottom

L_art_ment
|
Mes cieux d'âmes...  J'dois avouer.. j'suis pas fier de moi sur ce coup... J'ai voulu faire une petit appli' qui allait me prendre deux minutes à la concevoir... Pensais-naïvement... Oé naïvement... Depuis ce matin je suis sur un truc bête : Comment faire un genre de StayOnBottom ? Que la fiche de mon appli' soit "ancrée" au bureau ? J'ai essayé pas mal de choses : - SetWindowLong(Application.Handle, HWND_BOTTOM,...); - D'intercepter le OnMinimize et de la restaurer - procedure TFrmPrincipale.CreateParams(var Params : TCreateParams); begin inherited CreateParams(Params); //Don't ever forget to do this!!! Params.WndParent := GetDesktopWindow; end; - etc.. Mais soit je les utilise mal, ou soit je procéde de la mauvaise maniére, parce que ma fiche se trouve bien derriére toutes les fenêtres, mais le soucis c'est que lorsque l'on clique sur l'icône "afficher le bureau", et bien là ca cache aussi mon appli'... J'ai vu dans mes recherche que windows ne faisait pas seulement que minimiser l'application lorsqu'on clique sur "Afficher le bureau", il déplace la fiche aussi... Je ne parviens pas à pallier à mon problème... Si vous pouviez me mettre sur la piste je vous en serai très reconnaissant, surtout que ca semble tout bête 
L'Armand joue, l'arme en joug... Mon site
|
|
vendredi 13 juin 2008 à 18:34:02 |
Re : StayOnBottom

cirec
|
Salut, regarde cette source (et les commentaires)  ça devrait, au minimum, te mettre sur la voie @+ Cirec
|
|
vendredi 13 juin 2008 à 23:34:42 |
Re : StayOnBottom

L_art_ment
|
Hum, merci Cirec de ta réponse, je connaissais ces procédures, je n'avais pas essayé dans ce programme alors c'est ce que j'ai fais, mais rien n'y fait, lorsqu'on clique sur "afficher le bureau" ma fiche est masquée :s j'ai pourtant fais un DeleteMenu de toutes les constantes pour être sûr lol Non mais je vois pas trop bien le paramétres que je puisse donner pour remédier à mon soucis :s Merci de ta réponse 
L'Armand joue, l'arme en joug... Mon site
|
|
samedi 14 juin 2008 à 14:19:26 |
Re : StayOnBottom

rt15
|
Salut, Un début de code. Testé sous Vista. Je créé une fenêtre avec le desktop en parente, et je lui applique le Ex style WS_EX_PALETTEWINDOW. J'ai mis aussi le FormStyle de la form sur fsStayOnTop. La fenêtre résiste à Windows+D.
unit dfmStayOnBottom; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var frmMain: TfrmMain; f2: TfrmMain; implementation {$R *.dfm}procedure TfrmMain.Button1Click(Sender: TObject); var nExStyle: Integer; begin // Même fenêtre mais avec le bureau comme parente f2:= TfrmMain.CreateParented(GetDesktopWindow); // Mise en place du ExStyle WS_EX_PALETTEWINDOW nExStyle:= GetWindowLong(f2.Handle, GWL_EXSTYLE); nExStyle:= nExStyle or WS_EX_PALETTEWINDOW; SetWindowLong(f2.Handle, GWL_EXSTYLE, nExStyle); // On signale à windows qu'on a changé le ExStyle SetWindowpos(f2.Handle, 0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_FRAMECHANGED); f2.Show; end; end.
|
|
samedi 14 juin 2008 à 14:32:15 |
Re : StayOnBottom

rt15
|
Avec une seule fenêtre :
unit dfmStayOnBottom; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var frmMain: TfrmMain; implementation {$R *.dfm}procedure TfrmMain.FormCreate(Sender: TObject); var nExStyle: Integer; begin ParentWindow:= GetDesktopWindow; FormStyle:= fsStayOnTop; // Mise en place du ExStyle WS_EX_PALETTEWINDOW nExStyle:= GetWindowLong(Handle, GWL_EXSTYLE); nExStyle:= nExStyle or WS_EX_PALETTEWINDOW; SetWindowLong(Handle, GWL_EXSTYLE, nExStyle); // On signale à windows qu'on a changé le ExStyle SetWindowpos(Handle, 0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_FRAMECHANGED); end; end.
|
|
samedi 14 juin 2008 à 14:42:00 |
Re : StayOnBottom

L_art_ment
|
-
Bouge pas Rt15, j'm'essuie les cheveux et je test 
L'Armand joue, l'arme en joug... Mon site
|
|
samedi 14 juin 2008 à 14:55:42 |
Re : StayOnBottom

L_art_ment
|
Merci Rt15, ca fonctionne dans le sens où ca ne disparait plus lorsque je clique sur "afficher le bureau" mais maintenant le soucis c'est que ca reste au dessus de toutes les fenêtres, hors je souhaiterais que ce reste en dessous de toutes les fenêtres lol, j'ai essayé en enlevant le fsStayOnTop et là ca reviens comme avant... 
L'Armand joue, l'arme en joug... Mon site
|
|
samedi 14 juin 2008 à 20:15:36 |
Re : StayOnBottom

rt15
|
Arf.
Sous Windows, on peut faire des barre genre la barre des tâches, qui viennent se coller contre les bords d'écrans.
L'aide de la msdn au niveau de ces barres se trouve ici.
On peut télécharger un exemple poussiéreux, en C, ici.
Cependant, les Appbars ne résoudraient pas ton problème : topmost elles restent devant les autres fenêtres, et pas topmost, elles disparraissent lorsque l'on demande le bureau (J'ai fait l'éssai avec le C).
D'ailleurs sous Vista, si je clique droit sur la barre des tâches, propriété, et que je décoche "Conserver la barre des tâches au dessus des autre fenêtres" -> Quand je demande le bureau (Windows + D ou le shortcut parfois présent dans la barre des tâches), la barre des tâches disparaît brievement avant de rapparaître. Lors d'une deuxième tout de suite après la première, la disparition est invisible.
J'en conclus que la barre des tâche rattrape plus le coup qu'autre chose lors que l'on demande le bureau et qu'elle n'est pas topmost.
Il faudrait essayer de faire pareil... La question c'est comment. Peut être avec un hook clavier, si le raccourci d'affichage du bureau génère un appui de touche.
|
|
lundi 16 juin 2008 à 08:37:45 |
Re : StayOnBottom

L_art_ment
|
Bonjour Rt15, Merci pour tes réponses, décidement tu m'octrois pas mal de temps entre ce poste ci, celui sur les utilisateurs connéctés, etc... Je m'étais fais cette refléxion, que j'allais être obligé de passé par la méthode d'intercepter la procédure de l'affichage du bureau, mais c'est quand même étrange qu'il n'y ai pas de fonction prévue pour le "StayOnBottom", pourquoi il y en a une pour le StayOnTop et pas Bottom ?
L'Armand joue, l'arme en joug... Mon site
|
|
Cette discussion est classée dans : appli, bureau, params, fiche, stayonbottom
Répondre à ce message
Sujets en rapport avec ce message
Bug avec une fiche dans une dll et thème XP [ par rt15 ]
Bonjour,Je ne parviens pas à utiliser une fiche dans une dll possédant un GroupBox utilisée dans une appli utilisant le thème XP. (Rien n'est option
Appli Delphi7 sur serveur avec BD et concurrence utilisateurs [ par arrnno ]
Bonjour, Appli en Delphi7 et paradox qui tourne très bien chez un client (postes WinXP) mais pas chez un autre (postes wXP et Win2000)
fiche non MDI, qu'est-ce que c'est? [ par arno15 ]
Bonjour.J'ai un problème de création de form. J'ai une form principale qui est de style 'fsMDIForm'.Je souhaite créé une autre form qui doit prendre p
Proxy et webbrowser [ par manu00 ]
Bonjour,Je souhaite faire passer les connections effectuées dans mon appli dans un composant webbrowser via un proxy.J'ai bien reussi a utiliser un pr
Application MDI et sauvegarde [ par christophedlr ]
Bonjour à tous,Dans mon programme, j'utilise ls système d'application MDI.Mon problème, c'est que la fiche MDI enfant est créer dynamiquement(créer ju
Ombre et Form Modal [ par phoenyx ]
Bonjour à tous,il est possible d'ajouter une ombre à une form avec:procedure CreateParams(var Params: TCreateParams); override;begin Params.WindowCla
Décharger une DLL de la mémoire [ par EricDD ]
Bonjour,Je travaille avec une appli ecommerce en asp, qui fait appel à une DLL Delphi, enregistrée comme composant COM+ : Je n'ai pas d'exe.Je suis a
Mettre une appli en réseau. [ par codial ]
Bonjour,j'ai écrit une appli mono poste mais je voudrais pouvoir l'utiliser en réseau. C'est à dire partager ma base access vers 4 PC. cette base acce
Erreur BDE [ par TahitianSkunk ]
Bonjour je travaille actuellement sur une appli de gestion sous delphi et j'ai le problème suivant : dès que je veux sélectionner un article a mettre
Aligner une fiche par rapport à un TEDit [ par codial ]
Bonjour,j'ai une fiche principale avec un TEDit et je cherche à aligner une autre fiche (Une liste à de sélection de produits) au dessus juste au dess
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|