|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : StayOnBottom [ Système / Exécution ] (L_art_ment)
Informations & options pour cette discussion
|
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é 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
|
Téléchargements
Logiciels à télécharger sur le même thème :
|