Autor Beitrag
Gesus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Mi 30.06.04 08:40 
Hi.

Ich bin (tut mir Leid) ein Neueinsteiger.
Erste Projekte haben auch schon funktioniert!
Nun wollte ich eine Art Popup blocker erstellen, welche die Werbung auf meiner Lieblingsseite immer schliesst.

Ansich ist das auch kein Problem, doch es traten schönheitsfehler auf.

Ich möchste, dass das Programm weder sichtbar auf dem Desktop ist (habe ich hinbekommen) und das es nicht in der Startleiste zusehen ist.
Es soll nur ein Symbol neben in der Uhr zusehen sein.
Also wie bei ICQ, das man, wenn das Programm läuft, nur die Blume sieht.

Danke.

Mfg Gesus


Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Mi 30.06.2004 um 22:10
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 30.06.04 10:24 
Zitat:

Anwendung im SysTray anzeigen


Wie kann ich meine Anwendung in den Systry bringen (Icon neben der Uhr)?
Dies ist ein bischen komplizierter, aber machbar:

Definiere zuerst folgende globale Konstante:
ausblenden Delphi-Quelltext
1:
2:
const
  WM_TASKBAREVENT = WM_USER+1;


Dann musst Du eine Procedure im Private-Abschnitt deklarieren:
ausblenden Delphi-Quelltext
1:
2:
3:
  private
    procedure WMTASKBAREVENT(var message: TMessage); 
        message WM_TASKBAREVENT;


Jetzt fehlen noch die dazugehörigen Proceduren:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
procedure TForm1.WMTASKBAREVENT(var message: TMessage);
begin
  case message.LParamLo of
    WM_LBUTTONDOWN    : BEGIN
                          Showmessage('Linksclick');
                        end;
    WM_RBUTTONDOWN    : begin
                          Showmessage('Rechtsclick');
                        end;
    WM_LBUTTONDBLCLK  : begin
                          Showmessage('Doppelclick');
                        end;
  end;
end;

procedure TaskBarAddIcon;
var
  tnid: TNOTIFYICONDATA ;
begin
  with tnid do
  begin
    cbSize := sizeof(TNOTIFYICONDATA);
    Wnd := Form1.handle;
    uID := 1;
    uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    uCallbackMessage := WM_TASKBAREVENT;
    hIcon := application.icon.handle;
  end;

  strcopy(tnid.szTip,'Tooltipp');
  Shell_NotifyIcon(NIM_ADD, @tnid);
end;

procedure TaskBarRemoveIcon;
var
  tnid: TNOTIFYICONDATA ;
begin
  tnid.cbSize := sizeof(TNOTIFYICONDATA);
  tnid.Wnd := Form1.handle;
  tnid.uID := 1;
  Shell_NotifyIcon(NIM_DELETE, @tnid);
end;


Anzeigen tut man das Icon im SysTray durch den Aufruf der Procedure TaskBarAddIcon.
Entfernen tut man es durch den Aufruf der Procedure TaskbarRemoveIcon.


Moderiert von user profile iconMotzi: Delphi-Tags hinzugefügt.
Gesus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Mi 30.06.04 12:15 
Spätestens hier zeigt der mir an das er
ausblenden Delphi-Quelltext
1:
  tnid: TNOTIFYICONDATA ;					

nicht kennt!

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 30.06.04 13:24 
Vermutlich hast du im uses Abschnitt noch die ShellApi vergessen! war schon lange her als ich diese Funktion benötigt habe, suche aber die entsprechenden Sourcen jetzt mal...

Gruss
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 30.06.04 22:10 
Hallo Gesus und :welcome: hier im Delphi-Forum.de!

Hier im Forum findest du reichlich Sourcecode Teile zum Thema Suche in: Delphi-Library TNA OR TRAYICON.

Gruß
Tino
Gesus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Sa 03.07.04 13:37 
Danke! Es geht jetzt!
please closed

mfg gesus