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
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|