Ces jours-ci, vous voyez beaucoup de logiciels affichant Windows de message dans le coin inférieur droit de l'écran actif fort> pendant quelques secondes ou jusqu'à ce qu'un bouton de fermeture soit cliqué (le fi norton le fait après avoir vérifié Un téléchargement) P> J'ai trouvé des messages ici sur les formulaires ne se concentrant pas, mais ce n'est qu'une partie du problème. Je pense également à la manière de déterminer la position exacte de cette fenêtre de message (sachant que l'utilisateur a pu mettre sa barre de tâches à droite de l'écran. P> thx à l'avance. P> et p> fpopupmessage.pas p> drorhan code> J'ai créé le formulaire suivant (dans Delphi 7) qui fonctionne si la barre des tâches est affichée à la bas, la droite, la gauche ou le haut du schreen. em> p> procedure TfrmMain.button1Click(Sender: TObject);
begin
DisplayPopup('Message displayed at ' + FormatDateTime('ddd mmm yy zzz', Now),'My Program');
beep;
end;
procedure TfrmMain.button2Click(Sender: TObject);
begin
DisplayPopup('Another message displayed at ' + FormatDateTime('hh:nn zzz', Now),'My Program');
end;
7 Réponses :
Ce que vous recherchez, ce sont des conseils de ballon dans un plateau système. Pour le général Winapi, voici un Nice Tutoriel pour cela, que vous ne devriez pas avoir de problèmes de traduire à Delphi. P>
Vous pouvez trouver du code prêt à utiliser pour les astuces de ballons dans Delphi ici A >. P>
Une belle implémentation est disponible ici . P>
Je pensais que les astuces de Bolloon dans la barre d'état système sont toujours connectées à une icône dans la barre d'état système. Peut-être faux cependant. Je voudrais avoir n'importe quel formulaire DELPHI (avec tout ce que je veux placer sur elle, texte, images, etc.) Pour être positionné en bas à droite de l'écran actif et pour l'afficher sans qu'elle reçoit la mise au point.
Vous pouvez vérifier où est la barre des tâches: puis montrer votre formulaire ... p> p>
Vous pouvez utiliser Growl pour Windows - Je ne pense pas qu'il y ait un Bibliothèque DELPHI Pour cependant, mais vous pouvez le contrôler via des messages UDP, de sorte que toute bibliothèque de réseau doit faire. P>
Mise à jour: Il semble y avoir du code pour contrôler Growl à growl.matf.de .
Thx pour la pointe, mais je veux contrôler les messages et voir moi-même sans que les utilisateurs ont à installer un logiciel d'addition.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
function TaskBarHeight: integer; // this is just to get the taskbar height to put
// my form in the correct position
var
hTB: HWND;
TBRect: TRect;
begin
hTB := FindWindow('Shell_TrayWnd', '');
if hTB = 0 then
Result := 0
else
begin
GetWindowRect(hTB, TBRect);
Result := TBRect.Bottom - TBRect.Top;
end;
end;
begin
Self.Left := Screen.Width - Self.Width;
Self.Top := Screen.Height-Self.Height-TaskBarHeight;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
TimeSleep: integer;
begin
TimeSleep := 5; // the speed you want to show/hide.Increase/descrease this to make it faster or slower
for i := 1 to Self.Height do
begin
Self.Top := Self.Top+1;
Sleep(TimeSleep);
end;
// now let's show it again(use this as code as the show code)
for i := 1 to Self.Height do
begin
Self.Top := Self.Top-1;
Sleep(TimeSleep);
end;
end;
end.
via http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_25043483.html
Vérifiez Snarl, semblable à Growl for Windows, mais j'ai trouvé mieux. Il existe un fichier PAS pour une interface facile et la façon dont il fonctionne est très simple, avec simplement envoyer des messages Windows. P>
Il permet également à l'utilisateur final une certaine quantité de contrôle de quels messages à voir, durée avant la décoloration, etc. p>
THX pour le lien, mais je ne veux pas forcer l'utilisateur final à installer un logiciel supplémentaire. Bien que l'idée de Snarl soit une bonne (juste pas ce que je cherche pour le moment).
Essayez d'utiliser le composant TJVDESKTOPALERT WICH est inclus dans le JVCL , vous pouvez trouver un exemple de JVCL \ Exemples \ JVDESKTOPALERT \ JVDESKTOPALERTDEMO.DPR P>
(source: agnisoft.com ) sub> p>
Thx pour la réponse. Malheureusement, je n'utilise pas les composants JVCL, je l'ai énoncé une fois. Je vais regarder le code pour voir comment ils le font, mais ils ont hérité de leur propre classe TJVexform. Je ne veux pas traîner dans beaucoup de code ou de classes juste pour cela.